net: make SO_BUSY_POLL available to all users
authorEric Dumazet <edumazet@google.com>
Thu, 6 Apr 2023 19:46:34 +0000 (19:46 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 8 Apr 2023 03:07:07 +0000 (20:07 -0700)
After commit 217f69743681 ("net: busy-poll: allow preemption
in sk_busy_loop()"), a thread willing to use busy polling
is not hurting other threads anymore in a non preempt kernel.

I think it is safe to remove CAP_NET_ADMIN check.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20230406194634.1804691-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/sock.c

index c258887..5440e67 100644 (file)
@@ -1396,15 +1396,10 @@ set_sndbuf:
 
 #ifdef CONFIG_NET_RX_BUSY_POLL
        case SO_BUSY_POLL:
-               /* allow unprivileged users to decrease the value */
-               if ((val > sk->sk_ll_usec) && !sockopt_capable(CAP_NET_ADMIN))
-                       ret = -EPERM;
-               else {
-                       if (val < 0)
-                               ret = -EINVAL;
-                       else
-                               WRITE_ONCE(sk->sk_ll_usec, val);
-               }
+               if (val < 0)
+                       ret = -EINVAL;
+               else
+                       WRITE_ONCE(sk->sk_ll_usec, val);
                break;
        case SO_PREFER_BUSY_POLL:
                if (valbool && !sockopt_capable(CAP_NET_ADMIN))