Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/dev/pci



Module Name:    src
Committed By:   dyoung
Date:           Sat Feb  2 00:31:25 UTC 2008

Modified Files:
        src/sys/dev/pci: pccbb.c

Log Message:
Fix a two races between the initialization code and cbb(4) interrupts:
establish the interrupt handler before enabling interrupts, so that
we will not get an interrupt storm that keeps the system from making
any progress.  (We may have only been susceptible to the storm if
cbb(4) shared an interrupt with, say, uhci(4)).  Also, finish
setting up the pcic_handle before enabling interrupts, so that the
Pcic_read() call in pccbbintr() will not jump to address 0!

Now, pccbb_intrinit() encapsulates all of the interrupt initialization.

Explicitly enable card-status changed (CSTSCHG) events.

Paranoia: ensure that writes to the socket event register (interrupt
acknowledgements) are flushed to the h/w by reading the register
(gross).  We really need something like
bus_space_sync(BUS_SPACE_BARRIER_WRITE_BEFORE_INTERRUPT).

More paranoia: in pccbbintr(), if the device is inactive, get out.


To generate a diff of this commit:
cvs rdiff -r1.164 -r1.165 src/sys/dev/pci/pccbb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index