OSDN Git Service

net/smc: avoid fallback in case of non-blocking connect
authorUrsula Braun <ubraun@linux.ibm.com>
Fri, 2 Aug 2019 08:47:50 +0000 (10:47 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Aug 2019 20:24:37 +0000 (13:24 -0700)
commitcd2063604ea6a8c2683b4eb9b5f4c4da74592d87
tree00f77c4d4c84e263d7a3e14c6237d360d6b9e66b
parentf9cedf1a9b1cdcfb0c52edb391d01771e43994a4
net/smc: avoid fallback in case of non-blocking connect

FASTOPEN is not possible with SMC. sendmsg() with msg_flag MSG_FASTOPEN
triggers a fallback to TCP if the socket is in state SMC_INIT.
But if a nonblocking connect is already started, fallback to TCP
is no longer possible, even though the socket may still be in state
SMC_INIT.
And if a nonblocking connect is already started, a listen() call
does not make sense.

Reported-by: syzbot+bd8cc73d665590a1fcad@syzkaller.appspotmail.com
Fixes: 50717a37db032 ("net/smc: nonblocking connect rework")
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/af_smc.c