mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 18:53:52 +08:00
NVMe: Add shutdown timeout as module parameter.
The current implementation hard-codes the shutdown timeout to 2 seconds. Some devices take longer than this to complete a normal shutdown. Changing the shutdown timeout to a module parameter with a default timeout of 5 seconds. Signed-off-by: Dan McLeran <daniel.mcleran@intel.com> Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
7c1b245038
commit
2484f40780
@ -48,6 +48,7 @@
|
||||
#define SQ_SIZE(depth) (depth * sizeof(struct nvme_command))
|
||||
#define CQ_SIZE(depth) (depth * sizeof(struct nvme_completion))
|
||||
#define ADMIN_TIMEOUT (admin_timeout * HZ)
|
||||
#define SHUTDOWN_TIMEOUT (shutdown_timeout * HZ)
|
||||
#define IOD_TIMEOUT (retry_time * HZ)
|
||||
|
||||
static unsigned char admin_timeout = 60;
|
||||
@ -62,6 +63,10 @@ static unsigned char retry_time = 30;
|
||||
module_param(retry_time, byte, 0644);
|
||||
MODULE_PARM_DESC(retry_time, "time in seconds to retry failed I/O");
|
||||
|
||||
static unsigned char shutdown_timeout = 5;
|
||||
module_param(shutdown_timeout, byte, 0644);
|
||||
MODULE_PARM_DESC(shutdown_timeout, "timeout in seconds for controller shutdown");
|
||||
|
||||
static int nvme_major;
|
||||
module_param(nvme_major, int, 0);
|
||||
|
||||
@ -1447,7 +1452,7 @@ static int nvme_shutdown_ctrl(struct nvme_dev *dev)
|
||||
|
||||
writel(dev->ctrl_config, &dev->bar->cc);
|
||||
|
||||
timeout = 2 * HZ + jiffies;
|
||||
timeout = SHUTDOWN_TIMEOUT + jiffies;
|
||||
while ((readl(&dev->bar->csts) & NVME_CSTS_SHST_MASK) !=
|
||||
NVME_CSTS_SHST_CMPLT) {
|
||||
msleep(100);
|
||||
|
Loading…
Reference in New Issue
Block a user