summaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorUrsula Braun <ubraun@linux.ibm.com>2020-02-25 16:34:36 +0100
committerDavid S. Miller <davem@davemloft.net>2020-02-26 20:18:07 -0800
commit51e3dfa8906ace90c809235b3d3afebc166b6433 (patch)
treed5a11fdd383811480c980d78eec9dc47521c1797 /net/ipv6
parent402482a6a78e5c61d8a2ec6311fc5b4aca392cd6 (diff)
downloadlinux-51e3dfa8906ace90c809235b3d3afebc166b6433.tar.gz
linux-51e3dfa8906ace90c809235b3d3afebc166b6433.tar.bz2
linux-51e3dfa8906ace90c809235b3d3afebc166b6433.zip
net/smc: fix cleanup for linkgroup setup failures
If an SMC connection to a certain peer is setup the first time, a new linkgroup is created. In case of setup failures, such a linkgroup is unusable and should disappear. As a first step the linkgroup is removed from the linkgroup list in smc_lgr_forget(). There are 2 problems: smc_listen_decline() might be called before linkgroup creation resulting in a crash due to calling smc_lgr_forget() with parameter NULL. If a setup failure occurs after linkgroup creation, the connection is never unregistered from the linkgroup, preventing linkgroup freeing. This patch introduces an enhanced smc_lgr_cleanup_early() function which * contains a linkgroup check for early smc_listen_decline() invocations * invokes smc_conn_free() to guarantee unregistering of the connection. * schedules fast linkgroup removal of the unusable linkgroup And the unused function smcd_conn_free() is removed from smc_core.h. Fixes: 3b2dec2603d5b ("net/smc: restructure client and server code in af_smc") Fixes: 2a0674fffb6bc ("net/smc: improve abnormal termination of link groups") 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>
Diffstat (limited to 'net/ipv6')
0 files changed, 0 insertions, 0 deletions