net/smc: no new connections on disappearing devices
Add a "going_away" indication to ISM devices and IB ports and avoid creation of new connections on such disappearing devices. And do not handle ISM events if ISM device is disappearing. Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:

committed by
Jakub Kicinski

parent
b3cb53c05f
commit
c3d9494e68
@@ -781,6 +781,7 @@ static void smc_pnet_find_rdma_dev(struct net_device *netdev,
|
||||
dev_put(ndev);
|
||||
if (netdev == ndev &&
|
||||
smc_ib_port_active(ibdev, i) &&
|
||||
!test_bit(i - 1, ibdev->ports_going_away) &&
|
||||
!smc_ib_determine_gid(ibdev, i, ini->vlan_id,
|
||||
ini->ib_gid, NULL)) {
|
||||
ini->ib_dev = ibdev;
|
||||
@@ -820,6 +821,7 @@ static void smc_pnet_find_roce_by_pnetid(struct net_device *ndev,
|
||||
continue;
|
||||
if (smc_pnet_match(ibdev->pnetid[i - 1], ndev_pnetid) &&
|
||||
smc_ib_port_active(ibdev, i) &&
|
||||
!test_bit(i - 1, ibdev->ports_going_away) &&
|
||||
!smc_ib_determine_gid(ibdev, i, ini->vlan_id,
|
||||
ini->ib_gid, NULL)) {
|
||||
ini->ib_dev = ibdev;
|
||||
@@ -846,7 +848,8 @@ static void smc_pnet_find_ism_by_pnetid(struct net_device *ndev,
|
||||
|
||||
spin_lock(&smcd_dev_list.lock);
|
||||
list_for_each_entry(ismdev, &smcd_dev_list.list, list) {
|
||||
if (smc_pnet_match(ismdev->pnetid, ndev_pnetid)) {
|
||||
if (smc_pnet_match(ismdev->pnetid, ndev_pnetid) &&
|
||||
!ismdev->going_away) {
|
||||
ini->ism_dev = ismdev;
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user