On Tue, 9 Oct 2018 09:16:41 +0200 Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx> wrote: > Hi Boris > On Mon, Oct 8, 2018 at 10:10 PM Boris Brezillon > <boris.brezillon@xxxxxxxxxxx> wrote: > > > > Stop manipulating the dev->resource array directly and use the > > platform_get_resource() helper instead. > > > > While at it, fix the loop check so that we never overflow the info->maps > > and info->mtds array even if the number of resources attached to the > > platform dev is higher than MAX_RESOURCES. > > > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxx> > > --- > > drivers/mtd/maps/physmap.c | 29 ++++++++++++++++++----------- > > 1 file changed, 18 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c > > index 4010afee4a33..e5b15ec2cb04 100644 > > --- a/drivers/mtd/maps/physmap.c > > +++ b/drivers/mtd/maps/physmap.c > > @@ -122,23 +122,28 @@ static int physmap_flash_probe(struct platform_device *dev) > > > > platform_set_drvdata(dev, info); > > > > - for (i = 0; i < dev->num_resources; i++) { > > + for (i = 0; i < MAX_RESOURCES; i++) { > > + struct resource *res; > > + > > + res = platform_get_resource(dev, IORESOURCE_MEM, i); > > + if (res) > > + break; > > Maybe if (!res) I'll fix that one.