if (rets == -ENODATA)
                        break;
 
-               if (rets &&
-                   (dev->dev_state != MEI_DEV_RESETTING &&
-                    dev->dev_state != MEI_DEV_POWER_DOWN)) {
-                       dev_err(dev->dev, "mei_irq_read_handler ret = %d.\n",
-                                               rets);
-                       schedule_work(&dev->reset_work);
+               if (rets) {
+                       dev_err(dev->dev, "mei_irq_read_handler ret = %d, state = %d.\n",
+                               rets, dev->dev_state);
+                       if (dev->dev_state != MEI_DEV_RESETTING &&
+                           dev->dev_state != MEI_DEV_DISABLED &&
+                           dev->dev_state != MEI_DEV_POWERING_DOWN &&
+                           dev->dev_state != MEI_DEV_POWER_DOWN)
+                               schedule_work(&dev->reset_work);
                        goto end;
                }
        }