From addda418ec6c46e0d9f16fa51d70ff19e6b63ec0 Mon Sep 17 00:00:00 2001 From: Michael Hunold Date: Sat, 31 Jan 2004 11:31:34 +0000 Subject: - add wait_event_interruptible_timeout() macro to dvb-compat.h - replace usage of sleep_on_interruptible_timeout() with wait_event_interruptible_timeout() --- linux/drivers/media/dvb/ttpci/av7110.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'linux/drivers/media/dvb/ttpci/av7110.c') diff --git a/linux/drivers/media/dvb/ttpci/av7110.c b/linux/drivers/media/dvb/ttpci/av7110.c index 082172bba..e4c9e6744 100644 --- a/linux/drivers/media/dvb/ttpci/av7110.c +++ b/linux/drivers/media/dvb/ttpci/av7110.c @@ -108,6 +108,7 @@ static void arm_error(struct av7110 *av7110) static int arm_thread(void *data) { struct av7110 *av7110 = data; + unsigned long timeout; u16 newloops = 0; DEB_EE(("av7110: %p\n",av7110)); @@ -115,8 +116,12 @@ static int arm_thread(void *data) dvb_kernel_thread_setup("arm_mon"); av7110->arm_thread = current; - while (!av7110->arm_rmmod && !signal_pending(current)) { - interruptible_sleep_on_timeout(&av7110->arm_wait, 5*HZ); + while (1) { + timeout = wait_event_interruptible_timeout(av7110->arm_wait,0 != av7110->arm_rmmod, 5*HZ); + if (-ERESTARTSYS == timeout || 0 != av7110->arm_rmmod) { + /* got signal or told to quit*/ + break; + } if (!av7110->arm_ready) continue; -- cgit v1.2.3