mmc: Drain the intrhook in mmc_detach()
Buggy SD card drivers may attach and detach a mmc(4) driver instance in quick succession. In this case mmc(4) must disestablish its intrhook callback during detach. Thus, this change adds a call to config_intrhook_drain(), which blocks or does nothing if the intrhook is running or has already ran (the SD card was plugged in), and disestablishes the hook if it hasn't ran yet (the SD card was not plugged in). PR: 254373 Reviewed by: imp, manu, markj MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D31262
This commit is contained in:
committed by
Mark Johnston
parent
fd5827b178
commit
d5341d72a1
@@ -271,6 +271,7 @@ mmc_detach(device_t dev)
|
||||
struct mmc_softc *sc = device_get_softc(dev);
|
||||
int err;
|
||||
|
||||
config_intrhook_drain(&sc->config_intrhook);
|
||||
err = mmc_delete_cards(sc, true);
|
||||
if (err != 0)
|
||||
return (err);
|
||||
|
||||
Reference in New Issue
Block a user