Commit c0a4a1ea authored by Janne Grunau's avatar Janne Grunau Committed by Christoph Hellwig
Browse files

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: default avatarJanne Grunau <j@jannau.net>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent c06ba7b8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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)