Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1326865
| From | Matias Bjørling <m@bjorling.me> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 4/5] lightnvm: check overflow and correct mlc pairs |
| Date | 2016-02-04 15:20 +0100 |
| Message-ID | <qYsVl-1nc-39@gated-at.bofh.it> (permalink) |
| References | <qYsVj-1nc-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The specification currently limits the number of MLC pairs to 886. Make
sure that a device is unable to be instantiate if more is configured.
Also, previously the patch had the wrong math for copying MLC pairs, as
it only copied half of the actual entries.
Fixes: ca5927e7ab53 "lightnvm: introduce mlc lower page table mappings"
Signed-off-by: Matias Bjørling <m@bjorling.me>
---
drivers/nvme/host/lightnvm.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index 0f0864f..55dab93 100644
--- a/drivers/nvme/host/lightnvm.c
+++ b/drivers/nvme/host/lightnvm.c
@@ -146,9 +146,10 @@ struct nvme_nvm_command {
};
};
+#define NVME_NVM_LP_MLC_PAIRS 886
struct nvme_nvm_lp_mlc {
__u16 num_pairs;
- __u8 pairs[886];
+ __u8 pairs[NVME_NVM_LP_MLC_PAIRS];
};
struct nvme_nvm_lp_tbl {
@@ -282,9 +283,14 @@ static int init_grps(struct nvm_id *nvm_id, struct nvme_nvm_id *nvme_nvm_id)
memcpy(dst->lptbl.id, src->lptbl.id, 8);
dst->lptbl.mlc.num_pairs =
le16_to_cpu(src->lptbl.mlc.num_pairs);
- /* 4 bits per pair */
+
+ if (dst->lptbl.mlc.num_pairs > NVME_NVM_LP_MLC_PAIRS) {
+ pr_err("nvm: number of MLC pairs not supported\n");
+ return -EINVAL;
+ }
+
memcpy(dst->lptbl.mlc.pairs, src->lptbl.mlc.pairs,
- dst->lptbl.mlc.num_pairs >> 1);
+ dst->lptbl.mlc.num_pairs);
}
}
--
2.1.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2 0/5] LightNVM updates for next 4.5-rc Matias Bjørling <m@bjorling.me> - 2016-02-04 15:20 +0100 [PATCH 5/5] lightnvm: allow to force mm initialization Matias Bjørling <m@bjorling.me> - 2016-02-04 15:20 +0100 [PATCH 3/5] lightnvm: fix request intersection locking in rrpc Matias Bjørling <m@bjorling.me> - 2016-02-04 15:20 +0100 [PATCH 4/5] lightnvm: check overflow and correct mlc pairs Matias Bjørling <m@bjorling.me> - 2016-02-04 15:20 +0100 [PATCH 2/5] lightnvm: warn if irqs are disabled in lock laddr Matias Bjørling <m@bjorling.me> - 2016-02-04 15:20 +0100 Re: [PATCH v2 0/5] LightNVM updates for next 4.5-rc Jens Axboe <axboe@fb.com> - 2016-02-04 17:30 +0100
csiph-web