soreuseport: use "unsigned int" in __reuseport_alloc()
authorAlexey Dobriyan <adobriyan@gmail.com>
Sun, 2 Apr 2017 22:18:23 +0000 (01:18 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 4 Apr 2017 02:06:38 +0000 (19:06 -0700)
Number of sockets is limited by 16-bit, so 64-bit allocation will never
happen.

16-bit ops are the worst code density-wise on x86_64 because of
additional prefix (66).

Space savings:

add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3 (-3)
function                                     old     new   delta
reuseport_add_sock                           539     536      -3

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock_reuseport.c

index 9a1a352fd1ebe598e4925bcda037dc0e4a2288bc..eed1ebf7f29d0fac552074b127e5636fecede65f 100644 (file)
@@ -13,9 +13,9 @@
 
 static DEFINE_SPINLOCK(reuseport_lock);
 
-static struct sock_reuseport *__reuseport_alloc(u16 max_socks)
+static struct sock_reuseport *__reuseport_alloc(unsigned int max_socks)
 {
-       size_t size = sizeof(struct sock_reuseport) +
+       unsigned int size = sizeof(struct sock_reuseport) +
                      sizeof(struct sock *) * max_socks;
        struct sock_reuseport *reuse = kzalloc(size, GFP_ATOMIC);