Hello Markus, On 04/10/17 20:50, SF Markus Elfring wrote: > * Split a condition check for failed calls of the function "ioremap" > so that the return value in the variable "write_cs" will also be > immediately checked. > > * Adjust jump targets according to the Linux coding style convention. > > Signed-off-by: Markus Elfring <elfr...@users.sourceforge.net> > --- > arch/cris/arch-v32/drivers/mach-fs/nandflash.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > > diff --git a/arch/cris/arch-v32/drivers/mach-fs/nandflash.c > b/arch/cris/arch-v32/drivers/mach-fs/nandflash.c > index 2b53f0c615ea..564218a12213 100644 > --- a/arch/cris/arch-v32/drivers/mach-fs/nandflash.c > +++ b/arch/cris/arch-v32/drivers/mach-fs/nandflash.c > @@ -113,13 +113,17 @@ struct mtd_info *__init crisv32_nand_flash_probe(void) > return NULL; > > read_cs = ioremap(MEM_CSP0_START | MEM_NON_CACHEABLE, 8192); > - write_cs = ioremap(MEM_CSP1_START | MEM_NON_CACHEABLE, 8192); > - > - if (!read_cs || !write_cs) { > + if (!read_cs) { > printk(KERN_ERR "CRISv32 NAND ioremap failed\n"); > goto out_mtd; > } > > + write_cs = ioremap(MEM_CSP1_START | MEM_NON_CACHEABLE, 8192); > + if (!write_cs) { > + printk(KERN_ERR "CRISv32 NAND ioremap failed\n"); > + goto unmap_read; > + } > +
Instead of duplicating the error message I'd rather put an "if" in the iounmap() path. > /* Get pointer to private data */ > this = &wrapper->chip; > crisv32_mtd = nand_to_mtd(this); > @@ -149,13 +153,14 @@ struct mtd_info *__init crisv32_nand_flash_probe(void) > > /* Scan to find existence of the device */ > if (nand_scan(crisv32_mtd, 1)) > - goto out_ior; > + goto unmap_io; > > return crisv32_mtd; > > -out_ior: > - iounmap((void *)read_cs); > +unmap_io: > iounmap((void *)write_cs); > +unmap_read: > + iounmap((void *)read_cs); I believe, (void *) casting is wrong, it does nothing than removing __iomem qualifier. I'd rather write if (read_cs) iounmap(read_cs); if (write_cs) iounmap(write_cs); > out_mtd: > kfree(wrapper);