• Michael S. Tsirkin's avatar
    [NET]: Move destructor from neigh->ops to neigh_params · c5ecd62c
    Michael S. Tsirkin authored
    struct neigh_ops currently has a destructor field, which no in-kernel
    drivers outside of infiniband use.  The infiniband/ulp/ipoib in-tree
    driver stashes some info in the neighbour structure (the results of
    the second-stage lookup from ARP results to real link-level path), and
    it uses neigh->ops->destructor to get a callback so it can clean up
    this extra info when a neighbour is freed.  We've run into problems
    with this: since the destructor is in an ops field that is shared
    between neighbours that may belong to different net devices, there's
    no way to set/clear it safely.
    
    The following patch moves this field to neigh_parms where it can be
    safely set, together with its twin neigh_setup.  Two additional
    patches in the patch series update ipoib to use this new interface.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@mellanox.co.il>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c5ecd62c
neighbour.c 62.4 KB