aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Konopko <igor.j.konopko@intel.com>2019-05-04 14:38:04 -0400
committerJens Axboe <axboe@kernel.dk>2019-05-06 12:19:18 -0400
commit32ac0fa3afebb8b83e3f9189af1a481c0110fe51 (patch)
tree2bdb691d452b29ecead33b7f561a78ed9a682e1a
parent1fc3b30569bc1087dc8c8b8eff27ca7727b807c4 (diff)
lightnvm: pblk: remove internal IO timeout
Currently during pblk padding, there is internal IO timeout introduced, which is smaller than default NVMe timeout. This can lead to various use-after-free issues. Since in case of any IO timeouts NVMe and block layer will handle timeout by themselves and report it back to use, there is no need to keep this internal timeout in pblk. Signed-off-by: Igor Konopko <igor.j.konopko@intel.com> Signed-off-by: Matias Bjørling <mb@lightnvm.io> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--drivers/lightnvm/pblk-recovery.c7
-rw-r--r--drivers/lightnvm/pblk.h2
2 files changed, 1 insertions, 8 deletions
diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c
index 137e963cd51d..865fe310cab4 100644
--- a/drivers/lightnvm/pblk-recovery.c
+++ b/drivers/lightnvm/pblk-recovery.c
@@ -290,12 +290,7 @@ next_pad_rq:
290 290
291fail_complete: 291fail_complete:
292 kref_put(&pad_rq->ref, pblk_recov_complete); 292 kref_put(&pad_rq->ref, pblk_recov_complete);
293 293 wait_for_completion(&pad_rq->wait);
294 if (!wait_for_completion_io_timeout(&pad_rq->wait,
295 msecs_to_jiffies(PBLK_COMMAND_TIMEOUT_MS))) {
296 pblk_err(pblk, "pad write timed out\n");
297 ret = -ETIME;
298 }
299 294
300 if (!pblk_line_is_full(line)) 295 if (!pblk_line_is_full(line))
301 pblk_err(pblk, "corrupted padded line: %d\n", line->id); 296 pblk_err(pblk, "corrupted padded line: %d\n", line->id);
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
index 381f0746a9cf..90c703d3f84c 100644
--- a/drivers/lightnvm/pblk.h
+++ b/drivers/lightnvm/pblk.h
@@ -43,8 +43,6 @@
43 43
44#define PBLK_CACHE_NAME_LEN (DISK_NAME_LEN + 16) 44#define PBLK_CACHE_NAME_LEN (DISK_NAME_LEN + 16)
45 45
46#define PBLK_COMMAND_TIMEOUT_MS 30000
47
48/* Max 512 LUNs per device */ 46/* Max 512 LUNs per device */
49#define PBLK_MAX_LUNS_BITMAP (4) 47#define PBLK_MAX_LUNS_BITMAP (4)
50 48