From patchwork Tue Apr 7 10:22:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "gregkh@linuxfoundation.org" X-Patchwork-Id: 228181 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07F96C2BB85 for ; Tue, 7 Apr 2020 10:23:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D47EB2082D for ; Tue, 7 Apr 2020 10:23:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586255025; bh=kRAFIVrOFJYN7K1JCfavhQ9CnsGKo7eEipc5+stHJdk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=vIfjvyvMY24rgmRStSIj1uhahVi7tCGNl9Rb52tBYk/LcNuxPWUMfaPuScs9HmgUa 95u3yuAWimRz7iXHYaJeOuz2eAqxLWrnVGoVXajYfP9T8NFcSnUIBqpnQJOo2w3tDI NiicPmVsHAku8LMbvnZxu1L6jGljXDPuYSQf8tJg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728533AbgDGKXo (ORCPT ); Tue, 7 Apr 2020 06:23:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:33626 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728550AbgDGKXo (ORCPT ); Tue, 7 Apr 2020 06:23:44 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 107E22082D; Tue, 7 Apr 2020 10:23:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586255023; bh=kRAFIVrOFJYN7K1JCfavhQ9CnsGKo7eEipc5+stHJdk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Aa7XoNdIYpdNyH8tF4SX9ADB5LccI0xnup7RZqUEFEiiHB5VZWe6HA8F+qYhFDYp8 vBIkXJOkaoCidsGYFDqoOER8DI0loeHDepgEyALZl/re3SiYwv7Or/QCH6ow1esgfv 2HGyRXV7HKjcNoEvofTbOoeClb+HXWPeJiRXuPeU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Amritha Nambiar , Alexander Duyck , Sridhar Samudrala , "David S. Miller" Subject: [PATCH 5.4 35/36] net: Fix Tx hash bound checking Date: Tue, 7 Apr 2020 12:22:08 +0200 Message-Id: <20200407101458.682372081@linuxfoundation.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200407101454.281052964@linuxfoundation.org> References: <20200407101454.281052964@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Amritha Nambiar commit 6e11d1578fba8d09d03a286740ffcf336d53928c upstream. Fixes the lower and upper bounds when there are multiple TCs and traffic is on the the same TC on the same device. The lower bound is represented by 'qoffset' and the upper limit for hash value is 'qcount + qoffset'. This gives a clean Rx to Tx queue mapping when there are multiple TCs, as the queue indices for upper TCs will be offset by 'qoffset'. v2: Fixed commit description based on comments. Fixes: 1b837d489e06 ("net: Revoke export for __skb_tx_hash, update it to just be static skb_tx_hash") Fixes: eadec877ce9c ("net: Add support for subordinate traffic classes to netdev_pick_tx") Signed-off-by: Amritha Nambiar Reviewed-by: Alexander Duyck Reviewed-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/core/dev.c | 2 ++ 1 file changed, 2 insertions(+) --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2795,6 +2795,8 @@ static u16 skb_tx_hash(const struct net_ if (skb_rx_queue_recorded(skb)) { hash = skb_get_rx_queue(skb); + if (hash >= qoffset) + hash -= qoffset; while (unlikely(hash >= qcount)) hash -= qcount; return hash + qoffset;