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: Matthew Wilcox <matthew.r.wilcox@intel.com> Reviewed-by: Keith Busch <keith.busch@intel.com>
This commit is contained in:
parent
ba47e3865e
commit
44af146a84
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue