aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/isdn/i4l/isdn_common.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 9bb12ba3191f..130f21643154 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -777,7 +777,8 @@ isdn_readbchan(int di, int channel, u_char *buf, u_char *fp, int len, wait_queue
777 return 0; 777 return 0;
778 if (skb_queue_empty(&dev->drv[di]->rpqueue[channel])) { 778 if (skb_queue_empty(&dev->drv[di]->rpqueue[channel])) {
779 if (sleep) 779 if (sleep)
780 interruptible_sleep_on(sleep); 780 wait_event_interruptible(*sleep,
781 !skb_queue_empty(&dev->drv[di]->rpqueue[channel]));
781 else 782 else
782 return 0; 783 return 0;
783 } 784 }
@@ -1072,7 +1073,8 @@ isdn_read(struct file *file, char __user *buf, size_t count, loff_t *off)
1072 retval = -EAGAIN; 1073 retval = -EAGAIN;
1073 goto out; 1074 goto out;
1074 } 1075 }
1075 interruptible_sleep_on(&(dev->info_waitq)); 1076 wait_event_interruptible(dev->info_waitq,
1077 file->private_data);
1076 } 1078 }
1077 p = isdn_statstr(); 1079 p = isdn_statstr();
1078 file->private_data = NULL; 1080 file->private_data = NULL;
@@ -1128,7 +1130,8 @@ isdn_read(struct file *file, char __user *buf, size_t count, loff_t *off)
1128 retval = -EAGAIN; 1130 retval = -EAGAIN;
1129 goto out; 1131 goto out;
1130 } 1132 }
1131 interruptible_sleep_on(&(dev->drv[drvidx]->st_waitq)); 1133 wait_event_interruptible(dev->drv[drvidx]->st_waitq,
1134 dev->drv[drvidx]->stavail);
1132 } 1135 }
1133 if (dev->drv[drvidx]->interface->readstat) { 1136 if (dev->drv[drvidx]->interface->readstat) {
1134 if (count > dev->drv[drvidx]->stavail) 1137 if (count > dev->drv[drvidx]->stavail)
@@ -1188,8 +1191,8 @@ isdn_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
1188 goto out; 1191 goto out;
1189 } 1192 }
1190 chidx = isdn_minor2chan(minor); 1193 chidx = isdn_minor2chan(minor);
1191 while ((retval = isdn_writebuf_stub(drvidx, chidx, buf, count)) == 0) 1194 wait_event_interruptible(dev->drv[drvidx]->snd_waitq[chidx],
1192 interruptible_sleep_on(&dev->drv[drvidx]->snd_waitq[chidx]); 1195 (retval = isdn_writebuf_stub(drvidx, chidx, buf, count)));
1193 goto out; 1196 goto out;
1194 } 1197 }
1195 if (minor <= ISDN_MINOR_CTRLMAX) { 1198 if (minor <= ISDN_MINOR_CTRLMAX) {