[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