cvs commit: src/sys/bus/pccard pccard.c src/sys/dev/pccard/pccbb pccbb.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Jul 10 09:26:19 PDT 2004
dillon 2004/07/10 09:25:59 PDT
DragonFly src repository
Modified files:
sys/bus/pccard pccard.c
sys/dev/pccard/pccbb pccbb.c
Log:
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
sequence.
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
were found.
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 at 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
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pccard/pccard.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/pccard/pccbb/pccbb.c.diff?r1=1.2&r2=1.3&f=u
More information about the Commits
mailing list