linux-brain/net/smc
Myungho Jung 952dea5bc0 net/smc: fix TCP fallback socket release
[ Upstream commit 78abe3d0df ]

clcsock can be released while kernel_accept() references it in TCP
listen worker. Also, clcsock needs to wake up before released if TCP
fallback is used and the clcsock is blocked by accept. Add a lock to
safely release clcsock and call kernel_sock_shutdown() to wake up
clcsock from accept in smc_release().

Reported-by: syzbot+0bf2e01269f1274b4b03@syzkaller.appspotmail.com
Reported-by: syzbot+e3132895630f957306bc@syzkaller.appspotmail.com
Signed-off-by: Myungho Jung <mhjungk@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-09 17:14:46 +01:00
..
af_smc.c net/smc: fix TCP fallback socket release 2019-01-09 17:14:46 +01:00
Kconfig net/smc: remove Kconfig warning 2017-07-29 11:22:58 -07:00
Makefile smc: netlink interface for SMC sockets 2017-01-09 16:07:41 -05:00
smc_cdc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_cdc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_clc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_clc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_close.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_close.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_core.c net/smc: use link_id of server in confirm link reply 2018-05-30 07:52:07 +02:00
smc_core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_diag.c smc: netlink interface for SMC sockets 2017-01-09 16:07:41 -05:00
smc_ib.c net/smc: pay attention to MAX_ORDER for CQ entries 2018-05-30 07:52:32 +02:00
smc_ib.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_llc.c net/smc: use link_id of server in confirm link reply 2018-05-30 07:52:07 +02:00
smc_llc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_pnet.c net/smc: check for missing nlattrs in SMC_PNETID messages 2018-05-25 16:17:24 +02:00
smc_pnet.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_rx.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_rx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_tx.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_tx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_wr.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smc_wr.h net/smc: pay attention to MAX_ORDER for CQ entries 2018-05-30 07:52:32 +02:00
smc.h net/smc: fix TCP fallback socket release 2019-01-09 17:14:46 +01:00