From patchwork Fri Jan 27 14:24:55 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akinobu Mita X-Patchwork-Id: 138234 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 51B4AB6EEC for ; Sat, 28 Jan 2012 01:26:20 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755491Ab2A0O0B (ORCPT ); Fri, 27 Jan 2012 09:26:01 -0500 Received: from mail-pw0-f46.google.com ([209.85.160.46]:38756 "EHLO mail-pw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754856Ab2A0OZJ (ORCPT ); Fri, 27 Jan 2012 09:25:09 -0500 Received: by mail-pw0-f46.google.com with SMTP id a10so1654975pba.19 for ; Fri, 27 Jan 2012 06:25:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=VbYmQBZCzH+nD6aNWpR7gr1KMxJ0+4CzLl6d7oQfqtk=; b=eKmau72pr7KnnbXNTWsH3s4FvFCSY1m+Wa3C0OVG7gN5DmqMgabzVG+0sB1+OqRmu9 S/zxfa6BN7OK3lQGQyPvGZRStgFnqNxT1bP8vwSKYHiTpSdqWvcErmcKAb5/CbuzoCNG zsmgeeuLfy0/TuMSaFTfUMiyJf2yA4v0ho7d0= Received: by 10.68.135.1 with SMTP id po1mr15132017pbb.16.1327674309675; Fri, 27 Jan 2012 06:25:09 -0800 (PST) Received: from localhost.localdomain (p2046-adsao01yokonib2-acca.kanagawa.ocn.ne.jp. [61.214.148.46]) by mx.google.com with ESMTPS id lk11sm20385743pbb.0.2012.01.27.06.25.06 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 27 Jan 2012 06:25:09 -0800 (PST) From: Akinobu Mita To: linux-kernel@vger.kernel.org, akpm@linux-foundation.org Cc: Akinobu Mita , Karsten Keil , netdev@vger.kernel.org Subject: [PATCH] mISDN: use memchr_inv Date: Fri, 27 Jan 2012 23:24:55 +0900 Message-Id: <1327674295-3700-8-git-send-email-akinobu.mita@gmail.com> X-Mailer: git-send-email 1.7.4.4 In-Reply-To: <1327674295-3700-1-git-send-email-akinobu.mita@gmail.com> References: <1327674295-3700-1-git-send-email-akinobu.mita@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use memchr_inv to check if the data contains all same bytes. It is faster than looping for each byte. Signed-off-by: Akinobu Mita Cc: Karsten Keil Cc: netdev@vger.kernel.org --- drivers/isdn/mISDN/l1oip_core.c | 16 +++------------- 1 files changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/isdn/mISDN/l1oip_core.c b/drivers/isdn/mISDN/l1oip_core.c index 22f8ec8..04f115a 100644 --- a/drivers/isdn/mISDN/l1oip_core.c +++ b/drivers/isdn/mISDN/l1oip_core.c @@ -1112,7 +1112,7 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb) struct l1oip *hc = bch->hw; int ret = -EINVAL; struct mISDNhead *hh = mISDN_HEAD_P(skb); - int l, ll, i; + int l, ll; unsigned char *p; switch (hh->prim) { @@ -1128,13 +1128,8 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb) break; } /* check for AIS / ulaw-silence */ - p = skb->data; l = skb->len; - for (i = 0; i < l; i++) { - if (*p++ != 0xff) - break; - } - if (i == l) { + if (!memchr_inv(skb->data, 0xff, l)) { if (debug & DEBUG_L1OIP_MSG) printk(KERN_DEBUG "%s: got AIS, not sending, " "but counting\n", __func__); @@ -1144,13 +1139,8 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb) return 0; } /* check for silence */ - p = skb->data; l = skb->len; - for (i = 0; i < l; i++) { - if (*p++ != 0x2a) - break; - } - if (i == l) { + if (!memchr_inv(skb->data, 0x2a, l)) { if (debug & DEBUG_L1OIP_MSG) printk(KERN_DEBUG "%s: got silence, not sending" ", but counting\n", __func__);