Merge tag 'md/3.14' of git://neil.brown.name/md
[firefly-linux-kernel-4.4.55.git] / drivers / misc / sgi-xp / xpc_channel.c
index 652593fc486d69f3fc3cd7c50df2f9d7e4fc8a20..128d5615c8040ce2c1225487cfc53f0d4d7fed97 100644 (file)
@@ -828,6 +828,7 @@ enum xp_retval
 xpc_allocate_msg_wait(struct xpc_channel *ch)
 {
        enum xp_retval ret;
+       DEFINE_WAIT(wait);
 
        if (ch->flags & XPC_C_DISCONNECTING) {
                DBUG_ON(ch->reason == xpInterrupted);
@@ -835,7 +836,9 @@ xpc_allocate_msg_wait(struct xpc_channel *ch)
        }
 
        atomic_inc(&ch->n_on_msg_allocate_wq);
-       ret = interruptible_sleep_on_timeout(&ch->msg_allocate_wq, 1);
+       prepare_to_wait(&ch->msg_allocate_wq, &wait, TASK_INTERRUPTIBLE);
+       ret = schedule_timeout(1);
+       finish_wait(&ch->msg_allocate_wq, &wait);
        atomic_dec(&ch->n_on_msg_allocate_wq);
 
        if (ch->flags & XPC_C_DISCONNECTING) {