linux/arch
Hidetoshi Seto 829a999625 [IA64] ar.itc access must really be after xtime_lock.sequence has been read
The ".acq" semantics of the load only apply w.r.t. other data access.
Reading the clock (ar.itc) isn't a data access so strange things can
happen here.  Specifically the read of ar.itc can be launched as soon
as the read of xtime_lock.sequence is ISSUED.  Since this may cache
miss, and that might cause a thread switch, and there may be cache
contention for the line containing xtime_lock, it may be a long time
before the actual value is returned, so the ar.itc value may be very
stale.

Move the consumption of r28 up before the read of ar.itc to make sure
that we really have got the current value of xtime_lock.sequence
before look at ar.itc.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2007-07-13 16:21:44 -07:00
..
alpha PCI: Only build PCI syscalls on architectures that want them 2007-07-11 16:02:13 -07:00
arm Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-07-12 14:17:12 -07:00
arm26 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
avr32 [AVR32] Update defconfigs 2007-06-23 15:43:48 +02:00
blackfin Blackfin arch: add missing CONFIG_LARGE_ALLOCS when upstream merging 2007-07-12 14:55:05 +08:00
cris Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
frv all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
h8300 h8300 trival patches 2007-06-01 08:18:29 -07:00
i386 Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq 2007-07-12 13:42:43 -07:00
ia64 [IA64] ar.itc access must really be after xtime_lock.sequence has been read 2007-07-13 16:21:44 -07:00
m32r all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
m68k x86_64: Quieten Atari keyboard warnings in Kconfig 2007-06-20 14:27:26 -07:00
m68knommu m68knommu: fix ColdFire timer off by 1 2007-06-08 17:23:32 -07:00
mips Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
parisc [PARISC] unwinder improvements 2007-06-21 17:46:22 -04:00
powerpc PCI: Only build PCI syscalls on architectures that want them 2007-07-11 16:02:13 -07:00
ppc Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
s390 sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
sh sh: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. 2007-06-19 12:33:21 +09:00
sh64 sh64: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. 2007-06-19 12:41:32 +09:00
sparc PCI: Only build PCI syscalls on architectures that want them 2007-07-11 16:02:13 -07:00
sparc64 PCI: Only build PCI syscalls on architectures that want them 2007-07-11 16:02:13 -07:00
um uml: remove PAGE_SIZE from libc code 2007-06-16 13:16:16 -07:00
v850 all-archs: consolidate .data section definition in asm-generic 2007-05-19 09:11:57 +02:00
x86_64 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
xtensa [XTENSA] Remove non-rt signal handling 2007-05-31 17:49:32 -07:00