net: fix cpu_max_bits_warn() usage in netif_attrmask_next{,_and}
authorYury Norov <yury.norov@gmail.com>
Mon, 19 Sep 2022 21:05:54 +0000 (14:05 -0700)
committerYury Norov <yury.norov@gmail.com>
Sat, 1 Oct 2022 17:22:57 +0000 (10:22 -0700)
The functions require to be passed with a cpu index prior to one that is
the first to start search, so the valid input range is [-1, nr_cpu_ids-1).
However, the code checks against [-1, nr_cpu_ids).

Acked-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Yury Norov <yury.norov@gmail.com>
include/linux/netdevice.h

index 05d6f3facd5a5e6935f2ae94114a40f5365df669..4d6d5a2dd82e65a482d0e485ed0426566632dea1 100644 (file)
@@ -3643,9 +3643,8 @@ static inline bool netif_attr_test_online(unsigned long j,
 static inline unsigned int netif_attrmask_next(int n, const unsigned long *srcp,
                                               unsigned int nr_bits)
 {
-       /* -1 is a legal arg here. */
-       if (n != -1)
-               cpu_max_bits_warn(n, nr_bits);
+       /* n is a prior cpu */
+       cpu_max_bits_warn(n + 1, nr_bits);
 
        if (srcp)
                return find_next_bit(srcp, nr_bits, n + 1);
@@ -3666,9 +3665,8 @@ static inline int netif_attrmask_next_and(int n, const unsigned long *src1p,
                                          const unsigned long *src2p,
                                          unsigned int nr_bits)
 {
-       /* -1 is a legal arg here. */
-       if (n != -1)
-               cpu_max_bits_warn(n, nr_bits);
+       /* n is a prior cpu */
+       cpu_max_bits_warn(n + 1, nr_bits);
 
        if (src1p && src2p)
                return find_next_and_bit(src1p, src2p, nr_bits, n + 1);