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