Hi Dan, dan.carpenter@xxxxxxxxxx wrote on Tue, 25 Oct 2022 18:34:24 +0300: > On 64 bit systems, the highest 32 bits of the "offset" variable are > not initialized. Also the existing code is not endian safe (it will > fail on big endian systems). Change the type of "offset" to a u32. > > Fixes: aec4d5f5ffd0 ("mtd: parsers: add TP-Link SafeLoader partitions table parser") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- > drivers/mtd/parsers/tplink_safeloader.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/parsers/tplink_safeloader.c b/drivers/mtd/parsers/tplink_safeloader.c > index 23584a477391..f601e7bd8627 100644 > --- a/drivers/mtd/parsers/tplink_safeloader.c > +++ b/drivers/mtd/parsers/tplink_safeloader.c I am sorry but I don't have this file in my tree, what kernel are you using? > @@ -23,8 +23,8 @@ static void *mtd_parser_tplink_safeloader_read_table(struct mtd_info *mtd) > struct safeloader_cmn_header hdr; > struct device_node *np; > size_t bytes_read; > - size_t offset; > size_t size; > + u32 offset; > char *buf; > int err; > > @@ -34,14 +34,14 @@ static void *mtd_parser_tplink_safeloader_read_table(struct mtd_info *mtd) > else > np = of_get_child_by_name(np, "partitions"); > > - if (of_property_read_u32(np, "partitions-table-offset", (u32 *)&offset)) { > + if (of_property_read_u32(np, "partitions-table-offset", &offset)) { > pr_err("Failed to get partitions table offset\n"); > goto err_put; > } > > err = mtd_read(mtd, offset, sizeof(hdr), &bytes_read, (uint8_t *)&hdr); > if (err && !mtd_is_bitflip(err)) { > - pr_err("Failed to read from %s at 0x%zx\n", mtd->name, offset); > + pr_err("Failed to read from %s at 0x%x\n", mtd->name, offset); > goto err_put; > } > Thanks, Miquèl