Re: [PATCH 4.19 060/118] nvme-pci: shutdown on timeout during deletion

From: Pavel Machek
Date: Sun Jun 16 2019 - 16:02:47 EST



On Thu 2019-06-13 10:33:18, Greg Kroah-Hartman wrote:
> [ Upstream commit 9dc1a38ef1925d23c2933c5867df816386d92ff8 ]
>
> We do not restart a controller in a deleting state for timeout errors.
> When in this state, unblock potential request dispatchers with failed
> completions by shutting down the controller on timeout detection.
>
>
> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
> index 377f6fff420d..c8eeecc58115 100644
> --- a/drivers/nvme/host/pci.c
> +++ b/drivers/nvme/host/pci.c
> @@ -1132,6 +1132,7 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
> struct nvme_dev *dev = nvmeq->dev;
> struct request *abort_req;
> struct nvme_command cmd;
> + bool shutdown = false;
> u32 csts = readl(dev->bar + NVME_REG_CSTS);
>
> /* If PCI error recovery process is happening, we cannot reset or
> @@ -1168,12 +1169,14 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
> * shutdown, so we return BLK_EH_DONE.
> */
> switch (dev->ctrl.state) {
> + case NVME_CTRL_DELETING:
> + shutdown = true;
> case NVME_CTRL_CONNECTING:
> case NVME_CTRL_RESETTING:

Would it make sense to add /* fallthrough */ comment to indicate it is
intentional?

Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature