Message ID | 20221117123625.117161-1-arefev@swemel.ru |
---|---|
State | Changes Requested |
Headers | show |
Series | mtd: lpddr: Added literal suffix | expand |
Hi Denis, arefev@swemel.ru wrote on Thu, 17 Nov 2022 15:36:25 +0300: > The value of an arithmetic expression > 1 << lpddr->qinfo->DevSizeShift is subject to overflow > due to a failure to cast operands to a larger data > type before perfoming arithmetic > > Signed-off-by: Denis Arefev <arefev@swemel.ru> > --- > drivers/mtd/lpddr/lpddr_cmds.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/lpddr/lpddr_cmds.c b/drivers/mtd/lpddr/lpddr_cmds.c > index ee063baed136..360b2af8340b 100644 > --- a/drivers/mtd/lpddr/lpddr_cmds.c > +++ b/drivers/mtd/lpddr/lpddr_cmds.c > @@ -61,7 +61,7 @@ struct mtd_info *lpddr_cmdset(struct map_info *map) > mtd->_point = lpddr_point; > mtd->_unpoint = lpddr_unpoint; > } > - mtd->size = 1 << lpddr->qinfo->DevSizeShift; > + mtd->size = 1UL << lpddr->qinfo->DevSizeShift; Are you sure it should not be 1ULL instead? otherwise I don't see how the overflow can happen? > mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift; > mtd->writesize = 1 << lpddr->qinfo->BufSizeShift; > Thanks, Miquèl
diff --git a/drivers/mtd/lpddr/lpddr_cmds.c b/drivers/mtd/lpddr/lpddr_cmds.c index ee063baed136..360b2af8340b 100644 --- a/drivers/mtd/lpddr/lpddr_cmds.c +++ b/drivers/mtd/lpddr/lpddr_cmds.c @@ -61,7 +61,7 @@ struct mtd_info *lpddr_cmdset(struct map_info *map) mtd->_point = lpddr_point; mtd->_unpoint = lpddr_unpoint; } - mtd->size = 1 << lpddr->qinfo->DevSizeShift; + mtd->size = 1UL << lpddr->qinfo->DevSizeShift; mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift; mtd->writesize = 1 << lpddr->qinfo->BufSizeShift;
The value of an arithmetic expression 1 << lpddr->qinfo->DevSizeShift is subject to overflow due to a failure to cast operands to a larger data type before perfoming arithmetic Signed-off-by: Denis Arefev <arefev@swemel.ru> --- drivers/mtd/lpddr/lpddr_cmds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)