From: Alexander Usyskin <[email protected]>

ms commit: 663b7ee9517eec6deea9a48c7a1392a9a34f7809
("mei: me: release hw from reset only during the reset flow")

We might enter the interrupt handler with hw_ready already set,
but prior we actually started the reset flow.
To soleve this we move the reset release from the interrupt handler
to the HW start wait function which is part of the reset sequence.

Cc: <[email protected]> #3.10+
Signed-off-by: Alexander Usyskin <[email protected]>
Signed-off-by: Tomas Winkler <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

Conflicts:
        drivers/misc/mei/hw-me.c

https://jira.sw.ru/browse/PSBM-46132

Signed-off-by: Konstantin Khorenko <[email protected]>
---
 drivers/misc/mei/hw-me.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c
index af60767..f16ac7d 100644
--- a/drivers/misc/mei/hw-me.c
+++ b/drivers/misc/mei/hw-me.c
@@ -255,6 +255,7 @@ static int mei_me_hw_ready_wait(struct mei_device *dev)
                return err;
        }
 
+       mei_me_hw_reset_release(dev);
        dev->recvd_hw_ready = false;
        return 0;
 }
@@ -496,9 +497,7 @@ irqreturn_t mei_me_irq_thread_handler(int irq, void *dev_id)
        /*  check if we need to start the dev */
        if (!mei_host_is_ready(dev)) {
                if (mei_hw_is_ready(dev)) {
-                       mei_me_hw_reset_release(dev);
                        dev_dbg(&dev->pdev->dev, "we need to start the dev.\n");
-
                        dev->recvd_hw_ready = true;
                        wake_up_interruptible(&dev->wait_hw_ready);
                } else {
-- 
1.8.3.1

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to