On 03/05/2020 at 14:32, Dejin Zheng wrote: > A call of the function macb_init() can fail in the function > fu540_c000_init. The related system resources were not released > then. use devm_platform_ioremap_resource() to replace ioremap() > to fix it. > > Fixes: c218ad559020ff9 ("macb: Add support for SiFive FU540-C000") > Cc: Andy Shevchenko <andy.shevche...@gmail.com> > Reviewed-by: Yash Shah <yash.s...@sifive.com> > Suggested-by: Nicolas Ferre <nicolas.fe...@microchip.com>
Acked-by: Nicolas Ferre <nicolas.fe...@microchip.com> > Suggested-by: Andy Shevchenko <andy.shevche...@gmail.com> > Signed-off-by: Dejin Zheng <zhengdej...@gmail.com> > --- > v2 -> v3: > - use IS_ERR() and PTR_ERR() for error handling by Nicolas's > suggestion. Thanks Nicolas! > v1 -> v2: > - Nicolas and Andy suggest use devm_platform_ioremap_resource() > to repalce devm_ioremap() to fix this issue. Thanks Nicolas > and Andy. > - Yash help me to review this patch, Thanks Yash! > > drivers/net/ethernet/cadence/macb_main.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/drivers/net/ethernet/cadence/macb_main.c > b/drivers/net/ethernet/cadence/macb_main.c > index a0e8c5bbabc0..f040a36d6e54 100644 > --- a/drivers/net/ethernet/cadence/macb_main.c > +++ b/drivers/net/ethernet/cadence/macb_main.c > @@ -4172,15 +4172,9 @@ static int fu540_c000_clk_init(struct platform_device > *pdev, struct clk **pclk, > > static int fu540_c000_init(struct platform_device *pdev) > { > - struct resource *res; > - > - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > - if (!res) > - return -ENODEV; > - > - mgmt->reg = ioremap(res->start, resource_size(res)); > - if (!mgmt->reg) > - return -ENOMEM; > + mgmt->reg = devm_platform_ioremap_resource(pdev, 1); > + if (IS_ERR(mgmt->reg)) > + return PTR_ERR(mgmt->reg); > > return macb_init(pdev); > } > -- > 2.25.0 > -- Nicolas Ferre