diff options
-rw-r--r-- | drivers/misc/sgi-xp/xpc_channel.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/misc/sgi-xp/xpc_channel.c b/drivers/misc/sgi-xp/xpc_channel.c index 652593fc486d..128d5615c804 100644 --- a/drivers/misc/sgi-xp/xpc_channel.c +++ b/drivers/misc/sgi-xp/xpc_channel.c | |||
@@ -828,6 +828,7 @@ enum xp_retval | |||
828 | xpc_allocate_msg_wait(struct xpc_channel *ch) | 828 | xpc_allocate_msg_wait(struct xpc_channel *ch) |
829 | { | 829 | { |
830 | enum xp_retval ret; | 830 | enum xp_retval ret; |
831 | DEFINE_WAIT(wait); | ||
831 | 832 | ||
832 | if (ch->flags & XPC_C_DISCONNECTING) { | 833 | if (ch->flags & XPC_C_DISCONNECTING) { |
833 | DBUG_ON(ch->reason == xpInterrupted); | 834 | DBUG_ON(ch->reason == xpInterrupted); |
@@ -835,7 +836,9 @@ xpc_allocate_msg_wait(struct xpc_channel *ch) | |||
835 | } | 836 | } |
836 | 837 | ||
837 | atomic_inc(&ch->n_on_msg_allocate_wq); | 838 | atomic_inc(&ch->n_on_msg_allocate_wq); |
838 | ret = interruptible_sleep_on_timeout(&ch->msg_allocate_wq, 1); | 839 | prepare_to_wait(&ch->msg_allocate_wq, &wait, TASK_INTERRUPTIBLE); |
840 | ret = schedule_timeout(1); | ||
841 | finish_wait(&ch->msg_allocate_wq, &wait); | ||
839 | atomic_dec(&ch->n_on_msg_allocate_wq); | 842 | atomic_dec(&ch->n_on_msg_allocate_wq); |
840 | 843 | ||
841 | if (ch->flags & XPC_C_DISCONNECTING) { | 844 | if (ch->flags & XPC_C_DISCONNECTING) { |