Loic Poulain <loic.poulain@xxxxxxxxxx> writes: > Hi Kalle, > > On Tue, 9 Feb 2021 at 16:45, Loic Poulain <loic.poulain@xxxxxxxxxx> wrote: >> >> mhi_deinit_chan_ctxt functionthat takes care of unitializing channel >> resources, including unmapping coherent MHI areas, can be called >> from different path in case of controller unregistering/removal: >> - From a client driver remove callback, via mhi_unprepare_channel >> - From mhi_driver_remove that unitialize all channels >> >> mhi_driver_remove() >> |-> driver->remove() >> | |-> mhi_unprepare_channel() >> | |-> mhi_deinit_chan_ctxt() >> |... >> |-> mhi_deinit_chan_ctxt() >> >> This leads to double dma freeing... >> >> Fix that by preventing deinit for already uninitialized channel. >> >> Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxxx> >> Reported-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> > > This is a 'blind' fix tentative, can you please check if it resolves > the issue on your side? I did a quick test few times and I don't see any crashes anymore, thanks! Tested-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> And like Jeffrey said: Fixes: a7f422f2f89e ("bus: mhi: Fix channel close issue on driver remove") Is it too late to push this to v5.11? But this should go to v5.12. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches