On 03/31/2016 10:31 AM, Wenwei Tao wrote:
2016-03-30 22:28 GMT+08:00 Wenwei Tao <ww.tao0...@gmail.com>:
rrpc->nr_sects is calculated after rrpc init luns succeeds,
before that the value of rrpc->nr_sects is zero, so we cannot
use it to calcuate rrpc area size, we use rrpc->nr_luns instead.

Signed-off-by: Wenwei Tao <ww.tao0...@gmail.com>
---
  drivers/lightnvm/rrpc.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index 3ab6495..516a045 100644
--- a/drivers/lightnvm/rrpc.c
+++ b/drivers/lightnvm/rrpc.c
@@ -1223,7 +1223,7 @@ static int rrpc_area_init(struct rrpc *rrpc, sector_t 
*begin)
  {
         struct nvm_dev *dev = rrpc->dev;
         struct nvmm_type *mt = dev->mt;
-       sector_t size = rrpc->nr_sects * dev->sec_size;
+       sector_t size = dev->sec_size * dev->sec_per_lun * rrpc->nr_luns;

dev->sec_size * dev->sec_per_lun * rrpc->nr_luns could be oveflow,
should use (sector_t)dev->sec_size * dev->sec_per_lun * rrpc->nr_luns
instead. Will submit another patch to fix it.

Hi Wenwei,

How about moving rrpc_area_init call under the rrpc_luns_init call instead. Then nr_sects will have been initialized?


         size >>= 9;

--
2.7.2.333.g70bd996

Reply via email to