[bwn] Add missing firmware release calls.
This trips me up whenever I'm fooling around with partially supported NICs that fail to fully attach or initialise - the firmware gets loaded and references, but something fails - and the firmware references aren't cleaned up.
This commit is contained in:
@@ -750,6 +750,7 @@ bwn_detach(device_t dev)
|
|||||||
if (mac->mac_msi != 0)
|
if (mac->mac_msi != 0)
|
||||||
pci_release_msi(dev);
|
pci_release_msi(dev);
|
||||||
mbufq_drain(&sc->sc_snd);
|
mbufq_drain(&sc->sc_snd);
|
||||||
|
bwn_release_firmware(mac);
|
||||||
BWN_LOCK_DESTROY(sc);
|
BWN_LOCK_DESTROY(sc);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
@@ -1328,6 +1329,7 @@ bwn_attach_core(struct bwn_mac *mac)
|
|||||||
siba_dev_down(sc->sc_dev, 0);
|
siba_dev_down(sc->sc_dev, 0);
|
||||||
fail:
|
fail:
|
||||||
siba_powerdown(sc->sc_dev);
|
siba_powerdown(sc->sc_dev);
|
||||||
|
bwn_release_firmware(mac);
|
||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3930,6 +3932,7 @@ bwn_fw_gets(struct bwn_mac *mac, enum bwn_fwtype type)
|
|||||||
}
|
}
|
||||||
} else if (rev < 11) {
|
} else if (rev < 11) {
|
||||||
device_printf(sc->sc_dev, "no PCM for rev %d\n", rev);
|
device_printf(sc->sc_dev, "no PCM for rev %d\n", rev);
|
||||||
|
bwn_release_firmware(mac);
|
||||||
return (EOPNOTSUPP);
|
return (EOPNOTSUPP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user