]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/block/DAC960.c
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
[karo-tx-linux.git] / drivers / block / DAC960.c
index eb3950113e42342d73f7863854cf85fec48dedbd..125d8450573833fb3f71dee536fa376b4315f07c 100644 (file)
@@ -6411,12 +6411,12 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
                                        .ScatterGatherSegments[0]
                                        .SegmentByteCount =
            CommandMailbox->ControllerInfo.DataTransferSize;
-         DAC960_ExecuteCommand(Command);
-         while (Controller->V2.NewControllerInformation->PhysicalScanActive)
-           {
-             DAC960_ExecuteCommand(Command);
-             sleep_on_timeout(&Controller->CommandWaitQueue, HZ);
-           }
+         while (1) {
+           DAC960_ExecuteCommand(Command);
+           if (!Controller->V2.NewControllerInformation->PhysicalScanActive)
+               break;
+           msleep(1000);
+         }
          DAC960_UserCritical("Discovery Completed\n", Controller);
        }
     }
@@ -7035,18 +7035,16 @@ static long DAC960_gam_ioctl(struct file *file, unsigned int Request,
                ErrorCode = -EFAULT;
                break;
        }
-       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)) {
-               ErrorCode = -EINTR;
-               break;
-           }
-         }
+       ErrorCode = wait_event_interruptible_timeout(Controller->HealthStatusWaitQueue,
+                       !(Controller->V2.HealthStatusBuffer->StatusChangeCounter
+                           == HealthStatusBuffer.StatusChangeCounter &&
+                         Controller->V2.HealthStatusBuffer->NextEventSequenceNumber
+                           == HealthStatusBuffer.NextEventSequenceNumber),
+                       DAC960_MonitoringTimerInterval);
+       if (ErrorCode == -ERESTARTSYS) {
+               ErrorCode = -EINTR;
+               break;
+       }
        if (copy_to_user(GetHealthStatus.HealthStatusBuffer,
                         Controller->V2.HealthStatusBuffer,
                         sizeof(DAC960_V2_HealthStatusBuffer_T)))