net/smc: fix final cleanup sequence for SMCD devices
authorUrsula Braun <ubraun@linux.ibm.com>
Thu, 14 Nov 2019 12:02:40 +0000 (13:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Nov 2019 20:28:28 +0000 (12:28 -0800)
commit50c6b20eff8e10cb91f06262d8003a5d9be3dfab
tree8dcdfe1e3be31ee93946f19d3c710bffb97b17be
parent43da44c87678612f301d6ef6314064a6b52aad60
net/smc: fix final cleanup sequence for SMCD devices

If peer announces shutdown, use the link group terminate worker for
local cleanup of link groups and connections to terminate link group
in proper context.

Make sure link groups are cleaned up first before destroying the
event queue of the SMCD device, because link group cleanup may
raise events.

Send signal shutdown only if peer has not done it already.

Send socket abort or close only, if peer has not already announced
shutdown.

Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/smc/smc_cdc.c
net/smc/smc_core.c
net/smc/smc_core.h
net/smc/smc_ism.c