Message ID | 71e3fe832d35bd34a7da87146ba7d52f89278665.1614780732.git.baruch@tkos.co.il |
---|---|
State | Superseded |
Delegated to: | Ambarus Tudor |
Headers | show |
Series | mtd: parsers: qcom: incompatible with spi-nor 4k sectors | expand |
Hi Baruch, Baruch Siach <baruch@tkos.co.il> wrote on Wed, 3 Mar 2021 16:12:12 +0200: > Partition size and offset value are in block size units, which is the > same as 'erasesize'. But when 4K sectors are enabled erasesize is set to > 4K. Bail out in that case. > > Signed-off-by: Baruch Siach <baruch@tkos.co.il> Could you add a Fixes tag? LGTM otherwise. Thanks, Miquèl
On Wed, Mar 03, 2021 at 04:12:12PM +0200, Baruch Siach wrote: > Partition size and offset value are in block size units, which is the > same as 'erasesize'. But when 4K sectors are enabled erasesize is set to > 4K. Bail out in that case. > > Signed-off-by: Baruch Siach <baruch@tkos.co.il> > --- > drivers/mtd/parsers/qcomsmempart.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/mtd/parsers/qcomsmempart.c b/drivers/mtd/parsers/qcomsmempart.c > index 808cb33d71f8..f851574e1b52 100644 > --- a/drivers/mtd/parsers/qcomsmempart.c > +++ b/drivers/mtd/parsers/qcomsmempart.c > @@ -65,6 +65,13 @@ static int parse_qcomsmem_part(struct mtd_info *mtd, > int ret, i, numparts; > char *name, *c; > > + if (IS_ENABLED(CONFIG_MTD_SPI_NOR_USE_4K_SECTORS) > + && mtd->type == MTD_NORFLASH) { > + pr_err("%s: SMEM partition parse is incompatible with 4K sectors\n", s/parse/parser With that and the fixes tag, Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Thanks, Mani > + mtd->name); > + return -EINVAL; > + } > + > pr_debug("Parsing partition table info from SMEM\n"); > ptable = qcom_smem_get(SMEM_APPS, SMEM_AARM_PARTITION_TABLE, &len); > if (IS_ERR(ptable)) { > -- > 2.30.1 >
diff --git a/drivers/mtd/parsers/qcomsmempart.c b/drivers/mtd/parsers/qcomsmempart.c index 808cb33d71f8..f851574e1b52 100644 --- a/drivers/mtd/parsers/qcomsmempart.c +++ b/drivers/mtd/parsers/qcomsmempart.c @@ -65,6 +65,13 @@ static int parse_qcomsmem_part(struct mtd_info *mtd, int ret, i, numparts; char *name, *c; + if (IS_ENABLED(CONFIG_MTD_SPI_NOR_USE_4K_SECTORS) + && mtd->type == MTD_NORFLASH) { + pr_err("%s: SMEM partition parse is incompatible with 4K sectors\n", + mtd->name); + return -EINVAL; + } + pr_debug("Parsing partition table info from SMEM\n"); ptable = qcom_smem_get(SMEM_APPS, SMEM_AARM_PARTITION_TABLE, &len); if (IS_ERR(ptable)) {
Partition size and offset value are in block size units, which is the same as 'erasesize'. But when 4K sectors are enabled erasesize is set to 4K. Bail out in that case. Signed-off-by: Baruch Siach <baruch@tkos.co.il> --- drivers/mtd/parsers/qcomsmempart.c | 7 +++++++ 1 file changed, 7 insertions(+)