Jamie Lokier wrote: > It's also possibly to do atomic memory operations the way older > versions of ARM do cmpxchg (they don't have an instruction for it). > > They call a routine in the kernel address space (but not a syscall). > Kernel task switching checks if the intruction pointer is inside that > code sequence, and restarts the cmpxchg sequence if it is. That makes > it effectively atomic without disabling interrupts, and works with > normal userspace protections. It doesn't work on SMP, but we assume > SMP ARMs will be a newer version which has atomic instructions.
We do exactly the same thing on the Blackfin. I thought I'd invented the technique - apparently not. Bernd -- This footer brought to you by insane German lawmakers. Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368 Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif _______________________________________________ uClinux-dev mailing list [email protected] http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by [email protected] To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
