nvme-apple: only reset the controller when RTKit is running
NVMe controller register access hangs indefinitely when the co-processor is not running. A missed reset is preferable over a hanging thread since it could be recoverable. Signed-off-by: Janne Grunau <j@jannau.net> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
c06ba7b892
commit
c0a4a1eafb
@ -1001,11 +1001,11 @@ static void apple_nvme_reset_work(struct work_struct *work)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (anv->ctrl.ctrl_config & NVME_CC_ENABLE)
|
||||
apple_nvme_disable(anv, false);
|
||||
|
||||
/* RTKit must be shut down cleanly for the (soft)-reset to work */
|
||||
if (apple_rtkit_is_running(anv->rtk)) {
|
||||
/* reset the controller if it is enabled */
|
||||
if (anv->ctrl.ctrl_config & NVME_CC_ENABLE)
|
||||
apple_nvme_disable(anv, false);
|
||||
dev_dbg(anv->dev, "Trying to shut down RTKit before reset.");
|
||||
ret = apple_rtkit_shutdown(anv->rtk);
|
||||
if (ret)
|
||||
|
Loading…
Reference in New Issue
Block a user