netlink: smaller nla_attr_minlen table
authorAlexey Dobriyan <adobriyan@gmail.com>
Sat, 19 Nov 2016 00:59:07 +0000 (03:59 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 Nov 2016 03:11:25 +0000 (22:11 -0500)
Length of a netlink attribute may be u16 but lengths of basic attributes
are much smaller, so small we can save 16 bytes of .rodata and pocket
change inside .text.

16-bit is worse on x86-64 than 8-bit because of operand size override prefix.

add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-19 (-19)
function                                     old     new   delta
validate_nla                                 418     417      -1
nla_policy_len                                66      64      -2
nla_attr_minlen                               32      16     -16
Total: Before=154865051, After=154865032, chg -0.00%

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

index fce1e9afc6d97a3a27787d44b48590a5850138aa..b42b8577fc2346045c4d88ede93960bf1cd8f3e7 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/types.h>
 #include <net/netlink.h>
 
-static const u16 nla_attr_minlen[NLA_TYPE_MAX+1] = {
+static const u8 nla_attr_minlen[NLA_TYPE_MAX+1] = {
        [NLA_U8]        = sizeof(u8),
        [NLA_U16]       = sizeof(u16),
        [NLA_U32]       = sizeof(u32),