From patchwork Mon Dec 11 13:26:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: yuan linyu X-Patchwork-Id: 847000 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=163.com header.i=@163.com header.b="KNxrTYRS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywNzP3hy8z9s71 for ; Tue, 12 Dec 2017 00:27:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752840AbdLKN1L (ORCPT ); Mon, 11 Dec 2017 08:27:11 -0500 Received: from m12-15.163.com ([220.181.12.15]:56067 "EHLO m12-15.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752439AbdLKN1K (ORCPT ); Mon, 11 Dec 2017 08:27:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=OD89I 1SM8MhsvD3KDugTmqzMWMfh2ALgc1PdftC9yww=; b=KNxrTYRS7YSZBXwHgpwoo BnecblxQAWByiTRuAKrWwjvIptrS6LsJ2RRGm/Qqd01R4VkRcqJ4Ce7mJf4z2rTs I+Z70XDtyOAiWBMWyOB0/hRB712fSroEdyFwppBSqP9azBPDScYrh2s4sV5t7I8z 19j7oovYjJ+iS8FcRFnolc= Received: from localhost.localdomain (unknown [36.102.236.202]) by smtp11 (Coremail) with SMTP id D8CowAAH2ninhy5agEnbDA--.44796S2; Mon, 11 Dec 2017 21:27:04 +0800 (CST) From: yuan linyu To: netdev@vger.kernel.org Cc: "David S . Miller" , yuan linyu Subject: [PATCH net-next 1/2] net: tap: replay while() loop with % operator in tap_get_queue() Date: Mon, 11 Dec 2017 21:26:41 +0800 Message-Id: <1512998801-17852-1-git-send-email-cugyly@163.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-CM-TRANSID: D8CowAAH2ninhy5agEnbDA--.44796S2 X-Coremail-Antispam: 1Uf129KBjvdXoWrtF43JF48KryfWry3WFy7GFg_yoWxuFXE9w 18Xr1xKrWDtr12krsrKrsxJasY9FWDuFs5uayxt39xZ39rCwn5Zrn7ZrZxC3yagw18CFW3 CFyq9FWSy3s5XjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU5TCJJUUUUU== X-Originating-IP: [36.102.236.202] X-CM-SenderInfo: pfxj5zr16rljoofrz/xtbBEQir41aDvoiG7wAAsb Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: yuan linyu Signed-off-by: yuan linyu --- drivers/net/tap.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 0a886fda..78900a0 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -275,11 +275,7 @@ static struct tap_queue *tap_get_queue(struct tap_dev *tap, if (likely(skb_rx_queue_recorded(skb))) { rxq = skb_get_rx_queue(skb); - - while (unlikely(rxq >= numvtaps)) - rxq -= numvtaps; - - queue = rcu_dereference(tap->taps[rxq]); + queue = rcu_dereference(tap->taps[rxq % numvtaps]); goto out; } From patchwork Mon Dec 11 13:27:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: yuan linyu X-Patchwork-Id: 847003 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=163.com header.i=@163.com header.b="AwMIGw6g"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ywP0q3sk7z9s71 for ; Tue, 12 Dec 2017 00:28:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752723AbdLKN2Z (ORCPT ); Mon, 11 Dec 2017 08:28:25 -0500 Received: from m12-13.163.com ([220.181.12.13]:51507 "EHLO m12-13.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752439AbdLKN2X (ORCPT ); Mon, 11 Dec 2017 08:28:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=QZ1Pi ngCbaxPYR5YTxSQQIedDH4I2baKv61a8D9v4Fw=; b=AwMIGw6g7Y51mK5ysEJ2z /14w161Y0gD0ZTElj4HHqUbcanU8gClgIuEFc7UvlQS+Gg3Vr2EIZkcgybLh8buB RgOkx+E6ZGwyZvBO8un5k2/o8f0qKG1HqNYoz08ZMvgDgkkyxxAE9vULJF3imr2K r/jis3G9kZUgzqaQnXxdIg= Received: from localhost.localdomain (unknown [43.243.148.212]) by smtp9 (Coremail) with SMTP id DcCowAD3fGbuhy5aGR3HAQ--.564S2; Mon, 11 Dec 2017 21:28:15 +0800 (CST) From: yuan linyu To: netdev@vger.kernel.org Cc: "David S . Miller" , yuan linyu Subject: [PATCH net-next 2/2] net: tap: fix POLLOUT condition in tap_poll() Date: Mon, 11 Dec 2017 21:27:46 +0800 Message-Id: <1512998866-17966-1-git-send-email-cugyly@163.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-CM-TRANSID: DcCowAD3fGbuhy5aGR3HAQ--.564S2 X-Coremail-Antispam: 1Uf129KBjvdXoW7Jr1furW3uw15Gw47tw4xWFg_yoWfGwb_Gr 45Wrn7KFyqyryqkrnrCr43X3sYka1UuF48ur1IqrZxZwnrX3ZYkr1kZ3srAwsxCryFkFn2 kws0qrWSy34j9jkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU8SAp5UUUUU== X-Originating-IP: [43.243.148.212] X-CM-SenderInfo: pfxj5zr16rljoofrz/1tbiqw+r41UMHL+yCwAAsv Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: yuan linyu from logical view, if sock_writeable(&q->sk) return false, original second condition will false too, change it and make second condition can return true. Signed-off-by: yuan linyu --- drivers/net/tap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 78900a0..b809405 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -583,8 +583,7 @@ static unsigned int tap_poll(struct file *file, poll_table *wait) mask |= POLLIN | POLLRDNORM; if (sock_writeable(&q->sk) || - (!test_and_set_bit(SOCKWQ_ASYNC_NOSPACE, &q->sock.flags) && - sock_writeable(&q->sk))) + !test_and_set_bit(SOCKWQ_ASYNC_NOSPACE, &q->sock.flags)) mask |= POLLOUT | POLLWRNORM; out: