summaryrefslogtreecommitdiff
path: root/drivers/nvme
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2020-08-18 10:11:31 +0300
committerJens Axboe <axboe@kernel.dk>2020-08-22 02:14:28 +0300
commit1e41f3bd26f79463c07aebf062a0a77f1fd39b2b (patch)
treec3152b20cedce1fc1f01d71a902092aa9e46c4cd /drivers/nvme
parent5ddaabe8ed713f148e3d67e99b86d99427aceb5c (diff)
downloadlinux-1e41f3bd26f79463c07aebf062a0a77f1fd39b2b.tar.xz
nvme: just check the status code type in nvme_is_path_error
Check the SCT sub-field for a path related status instead of enumerating invididual status code. As of NVMe 1.4 this adds "Internal Path Error" and "Controller Pathing Error" to the list, but it also future proofs for additional status codes added to the category. Suggested-by: Chao Leng <lengchao@huawei.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/nvme')
-rw-r--r--drivers/nvme/host/nvme.h12
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 4ff6fd289082..e9cf29449dd1 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -537,16 +537,8 @@ static inline bool nvme_is_ana_error(u16 status)
static inline bool nvme_is_path_error(u16 status)
{
- switch (status & 0x7ff) {
- case NVME_SC_HOST_PATH_ERROR:
- case NVME_SC_HOST_ABORTED_CMD:
- case NVME_SC_ANA_TRANSITION:
- case NVME_SC_ANA_INACCESSIBLE:
- case NVME_SC_ANA_PERSISTENT_LOSS:
- return true;
- default:
- return false;
- }
+ /* check for a status code type of 'path related status' */
+ return (status & 0x700) == 0x300;
}
/*