DragonFly commits List (threaded) for 2004-07
cvs commit: src/sys/bus/pccard pccard.c src/sys/dev/pccard/pccbb pccbb.c
dillon 2004/07/10 09:25:59 PDT
DragonFly src repository
Fix some issues with the pccard shutdown path (during reboot and halt).
pccard was resetting the bridge controller and unmapping the device
without first detaching/shutting down the helper thread or disabling the
interrupt, and without calling the shutdown function for the children,
leading to several actual and potential lockups during a halt/reboot
There was also a bug in the thread termination code that could deadlock
the system... the thread interlock was being improperly held while
looping waiting for thread termination. Finally, there was an instance
where sc->flags was being manipulated without holding the proper lock.
Rearrange the dev/pccard/pccbb shutdown code to (A) call the shutdown
vector for the children, (B) disable the associated interrupt, and
(C) properly terminate the helper thread, and fix the other bugs that
There are still known issues not addressed by this patch, including
interrupt storms from the cardbus system during halt/reboot (currently
mostly caught by our interrupt rate limiting code), and at least one
unknown deadlock can still occur during halt/reboot.
In discusssions with: Joerg Sonnenberger <joerg@xxxxxxxxxxxxxxxxx>
Revision Changes Path
1.12 +9 -1 src/sys/bus/pccard/pccard.c
1.3 +67 -43 src/sys/dev/pccard/pccbb/pccbb.c