[PATCH 06/14] nvme-core: add helper to init shutdown timeout
Chaitanya Kulkarni
chaitanya.kulkarni at wdc.com
Tue Feb 16 19:10:24 EST 2021
The function nvme_init_identify() has grown over the period of time about
~200 lines given the size of nvme id_ctrl data structure.
Just like the tail of the function it has small helpers to initialize
the independent fields that needs some extra checking, add a new helper
nvme_init_shutdown_timeout() to initialize ctrl->shutdown_timeout.
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni at wdc.com>
---
drivers/nvme/host/core.c | 32 +++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index f5b8f8e0ee18..77f79a2a396f 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3094,6 +3094,24 @@ static int nvme_init_identify_transport(struct nvme_ctrl *ctrl,
return 0;
}
+static void nvme_init_shutdown_timeout(struct nvme_ctrl *ctrl,
+ struct nvme_id_ctrl *id)
+{
+ if (id->rtd3e) {
+ /* us -> s */
+ u32 transition_time = le32_to_cpu(id->rtd3e) / USEC_PER_SEC;
+
+ ctrl->shutdown_timeout = clamp_t(unsigned int, transition_time,
+ shutdown_timeout, 60);
+
+ if (ctrl->shutdown_timeout != shutdown_timeout)
+ dev_info(ctrl->device,
+ "Shutdown timeout set to %u seconds\n",
+ ctrl->shutdown_timeout);
+ } else
+ ctrl->shutdown_timeout = shutdown_timeout;
+}
+
/*
* Initialize the cached copies of the Identify data and various controller
* register in our nvme_ctrl structure. This should be called as soon as
@@ -3184,19 +3202,7 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)
ctrl->max_namespaces = le32_to_cpu(id->mnan);
ctrl->ctratt = le32_to_cpu(id->ctratt);
- if (id->rtd3e) {
- /* us -> s */
- u32 transition_time = le32_to_cpu(id->rtd3e) / USEC_PER_SEC;
-
- ctrl->shutdown_timeout = clamp_t(unsigned int, transition_time,
- shutdown_timeout, 60);
-
- if (ctrl->shutdown_timeout != shutdown_timeout)
- dev_info(ctrl->device,
- "Shutdown timeout set to %u seconds\n",
- ctrl->shutdown_timeout);
- } else
- ctrl->shutdown_timeout = shutdown_timeout;
+ nvme_init_shutdown_timeout(ctrl, id);
ctrl->npss = id->npss;
ctrl->apsta = id->apsta;
--
2.22.1
More information about the Linux-nvme
mailing list