|
@@ -1345,6 +1345,8 @@ static __poll_t smc_poll(struct file *file, struct socket *sock,
|
|
if (sk->sk_err)
|
|
if (sk->sk_err)
|
|
mask |= EPOLLERR;
|
|
mask |= EPOLLERR;
|
|
} else {
|
|
} else {
|
|
|
|
+ if (sk->sk_state != SMC_CLOSED)
|
|
|
|
+ sock_poll_wait(file, sk_sleep(sk), wait);
|
|
if (sk->sk_err)
|
|
if (sk->sk_err)
|
|
mask |= EPOLLERR;
|
|
mask |= EPOLLERR;
|
|
if ((sk->sk_shutdown == SHUTDOWN_MASK) ||
|
|
if ((sk->sk_shutdown == SHUTDOWN_MASK) ||
|
|
@@ -1370,7 +1372,6 @@ static __poll_t smc_poll(struct file *file, struct socket *sock,
|
|
}
|
|
}
|
|
if (smc->conn.urg_state == SMC_URG_VALID)
|
|
if (smc->conn.urg_state == SMC_URG_VALID)
|
|
mask |= EPOLLPRI;
|
|
mask |= EPOLLPRI;
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return mask;
|
|
return mask;
|