Source-Changes archive

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

CVS commit: src/sys/arch/powerpc/powerpc



Module Name:    src
Committed By:   freza
Date:           Tue Jan 30 05:25:15 UTC 2007

Modified Files:
        src/sys/arch/powerpc/powerpc: softintr.c

Log Message:
Protect softintr queues by direct manipulation of PSL_EE because PowerPC
ports have different IPL hierarchies. On macppc, IPL_VM is below IPL_AUDIO
and IPL_SERIAL so the queues got corrupted due to priority inversion.
Also fix a race condition in softintr_schedule() when testing "si_refs > 1",
it can lead to queue corruption and subsequent panic (below). As a side
effect, using PSL_EE directly is faster than going via spl*()/splx().

This is supposed to fix (XXX I don't have the hw):

  Panic: kernel diagnostic assert "si->si_refs > 0" failed: file
  "[...]arch/powerpc/powerpc/softintr.c" line 116

reported for example in:

  http://mail-index.netbsd.org/port-macppc/2007/01/25/0001.html

Discussed with briggs@ and macallan@.


To generate a diff of this commit:
cvs rdiff -r1.5 -r1.6 src/sys/arch/powerpc/powerpc/softintr.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