net: dsa: bcm_sf2: fix unmapping registers in case of errors
In case we fail to ioremap() one of our registers, we would be leaking
existing mappings, unwind those accordingly on errors.
Fixes: 246d7f773c
("net: dsa: add Broadcom SF2 switch driver")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
a620a6bc1c
Коммит
a566059d89
|
@ -404,7 +404,8 @@ static int bcm_sf2_sw_setup(struct dsa_switch *ds)
|
|||
*base = of_iomap(dn, i);
|
||||
if (*base == NULL) {
|
||||
pr_err("unable to find register: %s\n", reg_names[i]);
|
||||
return -ENODEV;
|
||||
ret = -ENOMEM;
|
||||
goto out_unmap;
|
||||
}
|
||||
base++;
|
||||
}
|
||||
|
@ -484,7 +485,8 @@ out_free_irq0:
|
|||
out_unmap:
|
||||
base = &priv->core;
|
||||
for (i = 0; i < BCM_SF2_REGS_NUM; i++) {
|
||||
iounmap(*base);
|
||||
if (*base)
|
||||
iounmap(*base);
|
||||
base++;
|
||||
}
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче