Jeremy Fitzhardinge wrote:
Avi Kivity wrote:
Or gcc
might move the assignment of phys_addr to after the inline assembly.
"asm volatile" prevents that (and I'm not 100% sure it's necessary).
No, it won't necessarily. "asm volatile" simply forces gcc to emit the
assembler, even if it thinks its output doesn't get used. It makes no
ordering guarantees with respect to other code (or even other "asm
volatiles"). The "memory" clobbers should fix the ordering of the asms
though.
I think you're wrong about that; in particular, I'm pretty sure "asm
volatiles" are ordered among themselves. What the "volatile" means is
"this has side effects you (the compiler) don't understand", and gcc
can't assume that it can reorder such side effects.
-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]