On Tue, Jan 25, 2005 at 02:11:07PM -0800, Nishanth Aravamudan wrote:
> Hi,
> 
> > 
> Description: Use wait_event_interruptible_timeout() instead of the deprecated
> interruptible_sleep_on_timeout(). The existing code is complicated in the
> conditional and so is the new code. Patch is compile-tested.

The following patch should be considered instead, as it removes completely
callers of sleep_on*().

Thanks,
Nish

Use wait_event_interruptible_timeout() instead of the deprecated
interruptible_sleep_on_timeout(). The existing code is complicated in the
conditional and so is the new code. Also replace sleep_on_timeout() with direct
wait-queue usage. Patch is compile-tested.

Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]>
Signed-off-by: Domen Puncer <[EMAIL PROTECTED]>
---


 kj-domen/drivers/block/DAC960.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff -puN drivers/block/DAC960.c~wait_event_int_timeout-drivers_block_DAC960 
drivers/block/DAC960.c
--- kj/drivers/block/DAC960.c~wait_event_int_timeout-drivers_block_DAC960       
2005-03-05 16:11:57.000000000 +0100
+++ kj-domen/drivers/block/DAC960.c     2005-03-05 16:11:57.000000000 +0100
@@ -40,6 +40,7 @@
 #include <linux/timer.h>
 #include <linux/pci.h>
 #include <linux/init.h>
+#include <linux/wait.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include "DAC960.h"
@@ -6127,6 +6128,7 @@ static boolean DAC960_V2_TranslatePhysic
 static boolean DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
                                            unsigned char *UserCommand)
 {
+  DEFINE_WAIT(wait);
   DAC960_Command_T *Command;
   DAC960_V2_CommandMailbox_T *CommandMailbox;
   unsigned long flags;
@@ -6317,7 +6319,9 @@ static boolean DAC960_V2_ExecuteUserComm
          while (Controller->V2.NewControllerInformation->PhysicalScanActive)
            {
              DAC960_ExecuteCommand(Command);
-             sleep_on_timeout(&Controller->CommandWaitQueue, HZ);
+             prepare_to_wait(&Controller->CommandWaitQueue, &wait, 
TASK_UNINTERRUPTIBLE);
+             schedule_timeout(HZ);
+             finish_wait(&Controller->CommandWaitQueue, &wait);
            }
          DAC960_UserCritical("Discovery Completed\n", Controller);
        }
@@ -6917,15 +6921,13 @@ static int DAC960_gam_ioctl(struct inode
                           GetHealthStatus.HealthStatusBuffer,
                           sizeof(DAC960_V2_HealthStatusBuffer_T)))
                return -EFAULT;
-       while (Controller->V2.HealthStatusBuffer->StatusChangeCounter
-              == HealthStatusBuffer.StatusChangeCounter &&
-              Controller->V2.HealthStatusBuffer->NextEventSequenceNumber
-              == HealthStatusBuffer.NextEventSequenceNumber)
-         {
-           interruptible_sleep_on_timeout(&Controller->HealthStatusWaitQueue,
-                                          DAC960_MonitoringTimerInterval);
-           if (signal_pending(current)) return -EINTR;
-         }
+       wait_event_interruptible_timeout(Controller->HealthStatusWaitQueue,
+                       (Controller->V2.HealthStatusBuffer->StatusChangeCounter
+                        != HealthStatusBuffer.StatusChangeCounter ||
+                        
Controller->V2.HealthStatusBuffer->NextEventSequenceNumber
+                        != HealthStatusBuffer.NextEventSequenceNumber),
+                        DAC960_MonitoringTimerInterval);
+       if (signal_pending(current)) return -EINTR;
        if (copy_to_user(GetHealthStatus.HealthStatusBuffer,
                         Controller->V2.HealthStatusBuffer,
                         sizeof(DAC960_V2_HealthStatusBuffer_T)))
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to