struct smbdirect_socket *sc = &t->socket;
struct smbdirect_recv_io *recvmsg;
- wake_up_interruptible(&t->wait_send_credits);
+ wake_up_all(&t->wait_send_credits);
ksmbd_debug(RDMA, "wait for all send posted to IB to finish\n");
wait_event(t->wait_send_pending,
sc->recv_io.reassembly.full_packet_received = true;
sc->status = SMBDIRECT_SOCKET_CONNECTED;
enqueue_reassembly(t, recvmsg, 0);
- wake_up_interruptible(&t->wait_status);
+ wake_up(&t->wait_status);
return;
case SMBDIRECT_EXPECT_DATA_TRANSFER: {
struct smbdirect_data_transfer *data_transfer =
queue_work(smb_direct_wq, &t->send_immediate_work);
if (atomic_read(&t->send_credits) > 0)
- wake_up_interruptible(&t->wait_send_credits);
+ wake_up(&t->wait_send_credits);
if (is_receive_credit_post_required(receive_credits, avail_recvmsg_count))
queue_work(smb_direct_wq, &t->post_recv_credits_work);
if (data_length) {
enqueue_reassembly(t, recvmsg, (int)data_length);
- wake_up_interruptible(&sc->recv_io.reassembly.wait_queue);
+ wake_up(&sc->recv_io.reassembly.wait_queue);
} else
put_recvmsg(t, recvmsg);
switch (event->event) {
case RDMA_CM_EVENT_ESTABLISHED: {
sc->status = SMBDIRECT_SOCKET_CONNECTED;
- wake_up_interruptible(&t->wait_status);
+ wake_up(&t->wait_status);
break;
}
case RDMA_CM_EVENT_DEVICE_REMOVAL:
ib_drain_qp(sc->ib.qp);
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
- wake_up_interruptible(&t->wait_status);
- wake_up_interruptible(&sc->recv_io.reassembly.wait_queue);
- wake_up(&t->wait_send_credits);
+ wake_up_all(&t->wait_status);
+ wake_up_all(&sc->recv_io.reassembly.wait_queue);
+ wake_up_all(&t->wait_send_credits);
break;
}
case RDMA_CM_EVENT_CONNECT_ERROR: {
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
- wake_up_interruptible(&t->wait_status);
+ wake_up_all(&t->wait_status);
break;
}
default: