diff mbox series

[net-next,v2,1/2] net: Catch invalid index in XPS mapping

Message ID 20230321150725.127229-1-nnac123@linux.ibm.com (mailing list archive)
State Accepted
Commit 5dd0dfd55baec0742ba8f5625a0dd064aca7db16
Delegated to: Netdev Maintainers
Headers show
Series [net-next,v2,1/2] net: Catch invalid index in XPS mapping | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net-next, async
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 26 this patch: 26
netdev/cc_maintainers fail 4 maintainers not CCed: kuba@kernel.org edumazet@google.com pabeni@redhat.com davem@davemloft.net
netdev/build_clang success Errors and warnings before: 18 this patch: 18
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 26 this patch: 26
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Nick Child March 21, 2023, 3:07 p.m. UTC
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 <nnac123@linux.ibm.com>
Reviewed-by: Piotr Raczynski <piotr.raczynski@intel.com>
---
Changes since v1 (respond to Jakubs review):
 - send to net-next instead of net
 - use WARN_ON_ONCE instead of a conditonal returning error

v1 - https://lore.kernel.org/netdev/20230320215229.53b7dfa7@kernel.org/

 net/core/dev.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

patchwork-bot+netdevbpf@kernel.org March 23, 2023, 5:50 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 21 Mar 2023 10:07:24 -0500 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/2] net: Catch invalid index in XPS mapping
    https://git.kernel.org/netdev/net-next/c/5dd0dfd55bae
  - [net-next,v2,2/2] netdev: Enforce index cap in netdev_get_tx_queue
    https://git.kernel.org/netdev/net-next/c/1cc6571f5627

You are awesome, thank you!
diff mbox series

Patch

diff --git a/net/core/dev.c b/net/core/dev.c
index c7853192563d..c278beee6792 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2535,6 +2535,8 @@  int __netif_set_xps_queue(struct net_device *dev, const unsigned long *mask,
 	struct xps_map *map, *new_map;
 	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;