• Dmitry Safonov's avatar
    xfrm/compat: Attach xfrm dumps to 64=>32 bit translator · 5f3eea6b
    Dmitry Safonov authored
    Currently nlmsg_unicast() is used by functions that dump structures that
    can be different in size for compat tasks, see dump_one_state() and
    dump_one_policy().
    
    The following nlmsg_unicast() users exist today in xfrm:
    
             Function                          |    Message can be different
                                               |       in size on compat
    -------------------------------------------|------------------------------
        xfrm_get_spdinfo()                     |               N
        xfrm_get_sadinfo()                     |               N
        xfrm_get_sa()                          |               Y
        xfrm_alloc_userspi()                   |               Y
        xfrm_get_policy()                      |               Y
        xfrm_get_ae()                          |               N
    
    Besides, dump_one_state() and dump_one_policy() can be used by filtered
    netlink dump for XFRM_MSG_GETSA, XFRM_MSG_GETPOLICY.
    
    Just as for xfrm multicast, allocate frag_list for compat skb journey
    down to recvmsg() which will give user the desired skb according to
    syscall bitness.
    Signed-off-by: default avatarDmitry Safonov <dima@arista.com>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    5f3eea6b
xfrm_user.c 79.2 KB