Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44af146a authored by Matthew Wilcox's avatar Matthew Wilcox
Browse files

NVMe: Only clear the enable bit when disabling controller



Many of the bits in the Controller Configuration register may only be
modified when the Enable bit is clear.  Clearing them at the same time
as the Enable bit might be OK, but let's play it safe and only touch the
Enable bit.

Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: default avatarKeith Busch <keith.busch@intel.com>
parent ba47e386
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1137,7 +1137,10 @@ static int nvme_wait_ready(struct nvme_dev *dev, u64 cap, bool enabled)
 */
static int nvme_disable_ctrl(struct nvme_dev *dev, u64 cap)
{
	writel(0, &dev->bar->cc);
	u32 cc = readl(&dev->bar->cc);

	if (cc & NVME_CC_ENABLE)
		writel(cc & ~NVME_CC_ENABLE, &dev->bar->cc);
	return nvme_wait_ready(dev, cap, false);
}