Hi Rosen, > diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c > index 3234a960fcc3..375e9a68b9a9 100644 > --- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c > +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c > @@ -77,20 +77,12 @@ static int lan966x_create_targets(struct platform_device *pdev, > * this. > */ > for (idx = 0; idx < IO_RANGES; idx++) { > - iores[idx] = platform_get_resource(pdev, IORESOURCE_MEM, > - idx); > - if (!iores[idx]) { > - dev_err(&pdev->dev, "Invalid resource\n"); > - return -EINVAL; > - } > - > - begin[idx] = devm_ioremap(&pdev->dev, > - iores[idx]->start, > - resource_size(iores[idx])); > - if (!begin[idx]) { > + begin[idx] = devm_platform_get_and_ioremap_resource( > + pdev, idx, &iores[idx]); Seems like this causes some trouble in the lan969x (see Horatius comment). While at it, maybe reformat this line - checkpatch is complaining: CHECK: Lines should not end with a '(' #314: FILE: drivers/net/ethernet/microchip/lan966x/lan966x_main.c:80: + begin[idx] = devm_platform_get_and_ioremap_resource( /Daniel > + if (IS_ERR(begin[idx])) { > dev_err(&pdev->dev, "Unable to get registers: %s\n", > iores[idx]->name); > - return -ENOMEM; > + return PTR_ERR(begin[idx]); > } > } >