[parisc-linux-cvs] linux-2.6 tausq
Randolph Chung
randolph at tausq.org
Sun Jul 11 14:56:56 MDT 2004
> Actually, the reason this had a fourth temporary argument was that I was
> going to pull in the dbit locking code as well. I just didn't bother
> since there was no working test case for it.
well, you can't use t0, because it's the lock.
> > - f_extend pte,t0
> > + f_extend pte,t1
>
> What was the reason for this?
ditto, the surrounding code is (with some ifdef's removed for clarity):
dbit_spin_20:
ldcw 0(t0),t1
cmpib,= 0,t1,dbit_spin_20
nop
dbit_nolock_20:
update_dirty ptp,pte,t1
make_insert_tlb spc,pte,prot
f_extend pte,t1
idtlbt pte,prot
CMPIB=,n 0,spc,dbit_nounlock_20
ldi 1,t1
stw t1,0(t0)
if you clobber t0 with the f_extend, the stw unlock later will write to
the pte instead of the lock.
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
More information about the parisc-linux-cvs
mailing list