]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
To quote Peter:
authorbenno <benno@FreeBSD.org>
Sat, 29 Jun 2002 09:39:44 +0000 (09:39 +0000)
committerbenno <benno@FreeBSD.org>
Sat, 29 Jun 2002 09:39:44 +0000 (09:39 +0000)
commit202c3a8b7c8fa87cee9aac4374a4fa73deecba73
tree7742e164fb0233275f282f7e2d1901954d256323
parent588d2f5396f9a2be7f3ffde5854e4f5fd1b8ceb2
To quote Peter:

The case in cpu_switch() where there isn't a higher priority thread
(choosethread() == curthread) uses r4 as the PCB context pointer. However, the
use of r4 after the label L2 is incorrect, since it was probably trashed by
the call to choosethread, and in any case was set up to curthread at the start
of the routine.

This condition will occur when an interrupt thread schedules a netisr, which
is a lower priority thread.

Another (probably unnecessary) difference is that I was paranoid about
register trashing, so I decided to save r2 and r13 as well.

Submitted by: Peter Grehan <peterg@ptree32.com.au>
sys/powerpc/aim/swtch.S
sys/powerpc/include/pcb.h
sys/powerpc/powerpc/swtch.S
sys/powerpc/powerpc/swtch.s