Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c552e1d authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Jens Axboe
Browse files

DAC960: remove sleep_on usage



sleep_on and its variants are going away. The use of sleep_on() in
DAC960_V2_ExecuteUserCommand seems to be bogus because the command
by the time we get there, the command has completed already and
we just enter the timeout. Based on this interpretation, I concluded
that we can replace it with a simple msleep(1000) and rearrange the
code around it slightly.

The interruptible_sleep_on_timeout in DAC960_gam_ioctl seems equivalent
to the race-free version using wait_event_interruptible_timeout.
I left the driver to return -EINTR rather than -ERESTARTSYS to preserve
the timeout behavior.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent c94efe36
Loading
Loading
Loading
Loading
+16 −18
Original line number Diff line number Diff line
@@ -6411,11 +6411,11 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
					.ScatterGatherSegments[0]
					.SegmentByteCount =
	    CommandMailbox->ControllerInfo.DataTransferSize;
	  while (1) {
	    DAC960_ExecuteCommand(Command);
	  while (Controller->V2.NewControllerInformation->PhysicalScanActive)
	    {
	      DAC960_ExecuteCommand(Command);
	      sleep_on_timeout(&Controller->CommandWaitQueue, HZ);
	    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
	ErrorCode = wait_event_interruptible_timeout(Controller->HealthStatusWaitQueue,
			!(Controller->V2.HealthStatusBuffer->StatusChangeCounter
			    == HealthStatusBuffer.StatusChangeCounter &&
			  Controller->V2.HealthStatusBuffer->NextEventSequenceNumber
	       == HealthStatusBuffer.NextEventSequenceNumber)
	  {
	    interruptible_sleep_on_timeout(&Controller->HealthStatusWaitQueue,
			    == HealthStatusBuffer.NextEventSequenceNumber),
			DAC960_MonitoringTimerInterval);
	    if (signal_pending(current)) {
	if (ErrorCode == -ERESTARTSYS) {
		ErrorCode = -EINTR;
		break;
	}
	  }
	if (copy_to_user(GetHealthStatus.HealthStatusBuffer,
			 Controller->V2.HealthStatusBuffer,
			 sizeof(DAC960_V2_HealthStatusBuffer_T)))