From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5AE53C7EE2D for ; Thu, 4 May 2023 20:02:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232518AbjEDUCQ (ORCPT ); Thu, 4 May 2023 16:02:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52656 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232338AbjEDUBP (ORCPT ); Thu, 4 May 2023 16:01:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72FBF18925; Thu, 4 May 2023 12:51:29 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 872CD6381F; Thu, 4 May 2023 19:50:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87764C433A1; Thu, 4 May 2023 19:50:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1683229802; bh=6Ib8lTMl+/wfrbntAicLw14O8OjFjn7oXL0w5u7nifM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y19BEo+c+oGu6em1Jcgzx7eIb7ynkcSvibTlY1sp4SjgFy+FwMJN0bk1vS+/sb7ur xQMfr78nSc1228TgXLRxMmy6O8TnReVCwjavs2VbhggYYpXfdWj+WcmHkcCfnvtsP5 3PRmJYvLOuv3REWddr49lw7pETLAHLwWqIdQjct1QI/IFRfq4GOgU9egq0FWtUGx4z Fz/x7m41qYyC69SfKyGD/K+gvDXIEmZcBZ0VUM+yUnO2SWd54Vr8p0PLYqAzi2hQkM UAmAecHnG+M6ljl/Onnm0tcuV8agQHKThWm567WlbQJdcuUx7AsKi7RsuKe4htpRO3 eRgEZZvOYXBDw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Nick Child , Piotr Raczynski , Jakub Kicinski , Sasha Levin , davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, kuniyu@amazon.com, liuhangbin@gmail.com, jiri@resnulli.us, andy.ren@getcruise.com, netdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.10 08/24] net: Catch invalid index in XPS mapping Date: Thu, 4 May 2023 15:49:21 -0400 Message-Id: <20230504194937.3808414-8-sashal@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230504194937.3808414-1-sashal@kernel.org> References: <20230504194937.3808414-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nick Child [ Upstream commit 5dd0dfd55baec0742ba8f5625a0dd064aca7db16 ] When setting the XPS value of a TX queue, warn the user once if the index of the queue is greater than the number of allocated TX queues. Previously, this scenario went uncaught. In the best case, it resulted in unnecessary allocations. In the worst case, it resulted in out-of-bounds memory references through calls to `netdev_get_tx_queue( dev, index)`. Therefore, it is important to inform the user but not worth returning an error and risk downing the netdevice. Signed-off-by: Nick Child Reviewed-by: Piotr Raczynski Link: https://lore.kernel.org/r/20230321150725.127229-1-nnac123@linux.ibm.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- net/core/dev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index 413c2a08d79db..daa3098075ffa 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2628,6 +2628,8 @@ int __netif_set_xps_queue(struct net_device *dev, const unsigned long *mask, bool active = false; unsigned int nr_ids; + WARN_ON_ONCE(index >= dev->num_tx_queues); + if (dev->num_tc) { /* Do not allow XPS on subordinate device directly */ num_tc = dev->num_tc; -- 2.39.2