linux-stable/arch/microblaze
Michal Simek bf0e12c753 microblaze: uaccess.h: Fix timerfd syscall
__pu_val must be volatile to ensure that the value is not lost.

It was causing the problem with timerfd syscall
where using inline asm at the end of function call doesn't
save u64 bit value to the stack.
In comparison both cases you can find out this fragment
where you can see the first part which is saved u64
value to stack and then using it in __put_user_asm_8 macro.
Origin broken implementation misses the first two swi instructions.

	swi	r22, r1, 28 /* missing without volatile */
	swi	r23, r1, 32
...
	addik	r4, r1, 28
	lwi	r3, r4, 0
	swi	r3, r25, 0
	lwi	r3, r4, 4
	swi	r3, r25, 4
	addk	r3, r0, r0

NOTE: Moving __put_val initialization after declaration
has not impact on this bug. It is just coding style issue.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2012-12-13 14:38:53 +01:00
..
boot microblaze: use new common dtc rule 2012-12-03 17:17:50 -06:00
configs kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
include microblaze: uaccess.h: Fix timerfd syscall 2012-12-13 14:38:53 +01:00
kernel microblaze: Remove BIP from childregs 2012-12-13 14:38:52 +01:00
lib Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next 2012-03-30 12:10:03 +02:00
mm readahead: fault retry breaks mmap file read random detection 2012-10-09 16:22:47 +09:00
oprofile microblaze: Core oprofile configs and hooks 2009-12-14 08:45:07 +01:00
pci microblaze/PCI: Remove CONFIG_HOTPLUG ifdefs 2012-11-28 12:50:21 -08:00
platform Fix common misspellings 2011-03-31 11:26:23 -03:00
Kconfig microblaze: switch to generic fork/vfork/clone 2012-11-28 22:43:40 -05:00
Kconfig.debug microblaze: remove obsolete DEBUG_BOOTMEM 2011-01-10 09:29:51 +01:00
Makefile microblaze: use new common dtc rule 2012-12-03 17:17:50 -06:00