On 13-06-17 08:12, Kalle Valo wrote: > Arend Van Spriel <arend.vanspriel@xxxxxxxxxxxx> wrote: > >> In brcmf_sdio_firmware_callback() we need to unbind the driver from >> both sdio_func devices. >> >> Cc: stable@xxxxxxxxxxxxxxx # 4.9.x- >> Tested-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx> >> Reviewed-by: Hante Meuleman <hante.meuleman@xxxxxxxxxxxx> >> Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@xxxxxxxxxxxx> >> Reviewed-by: Franky Lin <franky.lin@xxxxxxxxxxxx> >> Signed-off-by: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx> > > The commit log doesn't really describe the bug you are fixing (ie. doesn't > answer "why?"). Can you give some more info, logs etc (as a reply to this mail) > and I'll add it. Merging with the commit message that Enric wrote: """ When request firmware fails, brcmf_ops_sdio_remove is being called and brcmf_bus freed. In such circumstancies if you do a suspend/resume cycle the kernel hangs on resume due a NULL pointer dereference in resume function. So in brcmf_sdio_firmware_callback() we need to unbind the driver from both sdio_func devices when firmware load failure is indicated. """ Regards, Arend