cxgbe tom: Don't queue AIO requests on listen sockets.

This is similar to the fixes in 141fe2dcee.  One difference is that
TOE sockets do not change states (listen vs non-listen) once created,
so no lock is needed for SOLISTENING().

Sponsored by:	Chelsio Communications
This commit is contained in:
John Baldwin 2021-09-14 13:46:14 -07:00
parent bdf0f24bb1
commit 1ecbc1d8e9

View File

@ -1989,6 +1989,13 @@ t4_aio_queue_tom(struct socket *so, struct kaiocb *job)
struct toepcb *toep = tp->t_toe;
int error;
/*
* No lock is needed as TOE sockets never change between
* active and passive.
*/
if (SOLISTENING(so))
return (EINVAL);
if (ulp_mode(toep) == ULP_MODE_TCPDDP) {
error = t4_aio_queue_ddp(so, job);
if (error != EOPNOTSUPP)