netdev: Enforce index cap in netdev_get_tx_queue
authorNick Child <nnac123@linux.ibm.com>
Tue, 21 Mar 2023 15:07:25 +0000 (10:07 -0500)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Mar 2023 05:38:25 +0000 (22:38 -0700)
When requesting a TX queue at a given index, warn on out-of-bounds
referencing if the index is greater than the allocated number of
queues.

Specifically, since this function is used heavily in the networking
stack use DEBUG_NET_WARN_ON_ONCE to avoid executing a new branch on
every packet.

Signed-off-by: Nick Child <nnac123@linux.ibm.com>
Link: https://lore.kernel.org/r/20230321150725.127229-2-nnac123@linux.ibm.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/netdevice.h

index 7621c51..674ee5d 100644 (file)
@@ -2484,6 +2484,7 @@ static inline
 struct netdev_queue *netdev_get_tx_queue(const struct net_device *dev,
                                         unsigned int index)
 {
+       DEBUG_NET_WARN_ON_ONCE(index >= dev->num_tx_queues);
        return &dev->_tx[index];
 }