• Guillaume Nault's avatar
    netns: don't disable BHs when locking "nsid_lock" · 8d7e5dee
    Guillaume Nault authored
    When peernet2id() had to lock "nsid_lock" before iterating through the
    nsid table, we had to disable BHs, because VXLAN can call peernet2id()
    from the xmit path:
      vxlan_xmit() -> vxlan_fdb_miss() -> vxlan_fdb_notify()
        -> __vxlan_fdb_notify() -> vxlan_fdb_info() -> peernet2id().
    
    Now that peernet2id() uses RCU protection, "nsid_lock" isn't used in BH
    context anymore. Therefore, we can safely use plain
    spin_lock()/spin_unlock() and let BHs run when holding "nsid_lock".
    Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8d7e5dee
net_namespace.c 32 KB