2017-05-30 14:35 GMT+02:00 Arend van Spriel <[email protected]>: > In brcmf_sdio_firmware_callback() we need to unbind the driver from > both sdio_func devices. > > Reviewed-by: Hante Meuleman <[email protected]> > Reviewed-by: Pieter-Paul Giesberts <[email protected]> > Reviewed-by: Franky Lin <[email protected]> > Signed-off-by: Arend van Spriel <[email protected]> > --- > drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c > b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c > index 270c0ad..a5b27a4 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c > @@ -3988,14 +3988,14 @@ static void brcmf_sdio_firmware_callback(struct > device *dev, int err, > u8 saveclk; > > brcmf_dbg(TRACE, "Enter: dev=%s, err=%d\n", dev_name(dev), err); > + bus_if = dev_get_drvdata(dev); > + sdiodev = bus_if->bus_priv.sdio; > if (err) > goto fail; > > - bus_if = dev_get_drvdata(dev); > if (!bus_if->drvr) > return; > > - sdiodev = bus_if->bus_priv.sdio; > bus = sdiodev->bus; > > /* try to download image and nvram to the dongle */ > @@ -4084,6 +4084,7 @@ static void brcmf_sdio_firmware_callback(struct device > *dev, int err, > fail: > brcmf_dbg(TRACE, "failed: dev=%s, err=%d\n", dev_name(dev), err); > device_release_driver(dev); > + device_release_driver(&sdiodev->func[1]->dev);
missing device_release_driver(&sdiodev->func[2]->dev); ? See my answers to the cover-letter. > } > > struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) > -- > 1.9.1 >
