mei: me: wait for hw ready non-interruptible
authorAlexander Usyskin <alexander.usyskin@intel.com>
Tue, 12 Aug 2014 17:16:03 +0000 (20:16 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Sep 2014 05:56:16 +0000 (22:56 -0700)
We cannot handle user interrupt in context of hw initialization
so we only wait for time out which is reasonably short
Also we don't need to check error from wait, only flag value.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/hw-me.c

index a9a0d08f758ea54c3116d76c52e527c67124b105..caf0da33599448c46886909f9d3bb94db5fd9190 100644 (file)
@@ -266,19 +266,14 @@ static bool mei_me_hw_is_ready(struct mei_device *dev)
 
 static int mei_me_hw_ready_wait(struct mei_device *dev)
 {
-       int err;
-
        mutex_unlock(&dev->device_lock);
-       err = wait_event_interruptible_timeout(dev->wait_hw_ready,
+       wait_event_timeout(dev->wait_hw_ready,
                        dev->recvd_hw_ready,
                        mei_secs_to_jiffies(MEI_HW_READY_TIMEOUT));
        mutex_lock(&dev->device_lock);
-       if (!err && !dev->recvd_hw_ready) {
-               if (!err)
-                       err = -ETIME;
-               dev_err(&dev->pdev->dev,
-                       "wait hw ready failed. status = %d\n", err);
-               return err;
+       if (!dev->recvd_hw_ready) {
+               dev_err(&dev->pdev->dev, "wait hw ready failed\n");
+               return -ETIME;
        }
 
        dev->recvd_hw_ready = false;
@@ -664,7 +659,7 @@ irqreturn_t mei_me_irq_thread_handler(int irq, void *dev_id)
                        dev_dbg(&dev->pdev->dev, "we need to start the dev.\n");
 
                        dev->recvd_hw_ready = true;
-                       wake_up_interruptible(&dev->wait_hw_ready);
+                       wake_up(&dev->wait_hw_ready);
                } else {
                        dev_dbg(&dev->pdev->dev, "Spurious Interrupt\n");
                }
This page took 0.026217 seconds and 5 git commands to generate.