From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tonghao Zhang Subject: [PATCH] net: core: improve the tx_hash calculating Date: Thu, 31 May 2018 03:14:01 -0700 Message-ID: <1527761641-22034-1-git-send-email-xiangxia.m.yue@gmail.com> Cc: Tonghao Zhang To: netdev@vger.kernel.org Return-path: Received: from mail-qk0-f193.google.com ([209.85.220.193]:46464 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754311AbeEaKOO (ORCPT ); Thu, 31 May 2018 06:14:14 -0400 Received: by mail-qk0-f193.google.com with SMTP id k86-v6so16759700qkh.13 for ; Thu, 31 May 2018 03:14:13 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: Use the % instead of while, and it may simple code and improve the calculating. The real_num_tx_queues has been checked when allocating and setting it. Signed-off-by: Tonghao Zhang --- net/core/dev.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 1844d9b..edc5b75 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2617,15 +2617,13 @@ void netif_device_attach(struct net_device *dev) */ static u16 skb_tx_hash(const struct net_device *dev, struct sk_buff *skb) { - u32 hash; u16 qoffset = 0; u16 qcount = dev->real_num_tx_queues; if (skb_rx_queue_recorded(skb)) { - hash = skb_get_rx_queue(skb); - while (unlikely(hash >= qcount)) - hash -= qcount; - return hash; + /* When setting the real_num_tx_queues, we make sure + * real_num_tx_queues != 0. */ + return skb_get_rx_queue(skb) % qcount; } if (dev->num_tc) { -- 1.8.3.1