• Geert Uytterhoeven's avatar
    ipv4: Fix runtime WARNING in rtmsg_ifa() · 63b5f152
    Geert Uytterhoeven authored
    On m68k/ARAnyM:
    
    WARNING: CPU: 0 PID: 407 at net/ipv4/devinet.c:1599 0x316a99()
    Modules linked in:
    CPU: 0 PID: 407 Comm: ifconfig Not tainted
    3.13.0-atari-09263-g0c71d68014d1 #1378
    Stack from 10c4fdf0:
            10c4fdf0 002ffabb 000243e8 00000000 008ced6c 00024416 00316a99 0000063f
            00316a99 00000009 00000000 002501b4 00316a99 0000063f c0a86117 00000080
            c0a86117 00ad0c90 00250a5a 00000014 00ad0c90 00000000 00000000 00000001
            00b02dd0 00356594 00000000 00356594 c0a86117 eff6c9e4 008ced6c 00000002
            008ced60 0024f9b4 00250b52 00ad0c90 00000000 00000000 00252390 00ad0c90
            eff6c9e4 0000004f 00000000 00000000 eff6c9e4 8000e25c eff6c9e4 80001020
    Call Trace: [<000243e8>] warn_slowpath_common+0x52/0x6c
     [<00024416>] warn_slowpath_null+0x14/0x1a
     [<002501b4>] rtmsg_ifa+0xdc/0xf0
     [<00250a5a>] __inet_insert_ifa+0xd6/0x1c2
     [<0024f9b4>] inet_abc_len+0x0/0x42
     [<00250b52>] inet_insert_ifa+0xc/0x12
     [<00252390>] devinet_ioctl+0x2ae/0x5d6
    
    Adding some debugging code reveals that net_fill_ifaddr() fails in
    
        put_cacheinfo(skb, ifa->ifa_cstamp, ifa->ifa_tstamp,
                                  preferred, valid))
    
    nla_put complains:
    
        lib/nlattr.c:454: skb_tailroom(skb) = 12, nla_total_size(attrlen) = 20
    
    Apparently commit 5c766d64 ("ipv4:
    introduce address lifetime") forgot to take into account the addition of
    struct ifa_cacheinfo in inet_nlmsg_size(). Hence add it, like is already
    done for ipv6.
    Suggested-by: default avatarCong Wang <cwang@twopensource.com>
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: default avatarCong Wang <cwang@twopensource.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    63b5f152
devinet.c 57.6 KB