Geert Uytterhoeven 631d8b674f m68k/uaccess: Fix asm constraints for userspace access
When compiling a MMU kernel with CPU_HAS_ADDRESS_SPACES=n (e.g. "MMU=y
allnoconfig": "echo CONFIG_MMU=y > allno.config && make KCONFIG_ALLCONFIG=1
allnoconfig"), we use plain "move" instead of "moves", and I got:

  CC      arch/m68k/lib/uaccess.o
{standard input}: Assembler messages:
{standard input}:47: Error: operands mismatch -- statement `move.b %a0,(%a1)' ignored

This happens because plain "move" doesn't support byte transfers between
memory and address registers, while "moves" does.

Fix the asm constraints for __generic_copy_from_user(),
__generic_copy_to_user(), and __clear_user() to only use data registers
when accessing userspace.

Also, relax the asm constraints for 16-bit userspace accesses in
__put_user() and __get_user(), as both "move" and "moves" do support
such transfers between memory and address registers.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2013-06-24 19:44:19 +02:00
..
2009-01-16 21:58:10 +10:00
2010-10-22 09:43:22 +02:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2012-03-28 18:30:02 +01:00
2011-07-25 11:20:40 +10:00
2011-12-10 19:52:48 +01:00
2011-03-31 11:26:23 -03:00
2013-04-05 13:28:27 +01:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2013-02-26 02:46:08 -05:00
2009-01-16 21:58:10 +10:00
2011-11-08 22:35:49 +01:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2011-03-31 11:26:23 -03:00
2009-01-16 21:58:10 +10:00
2011-12-10 19:52:47 +01:00
2009-01-16 21:58:10 +10:00
2011-12-10 19:52:48 +01:00
2011-12-10 19:52:47 +01:00
2011-04-10 17:01:05 +02:00
2011-04-10 17:01:05 +02:00
2013-03-04 11:08:50 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2011-03-16 19:10:41 +01:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-04-02 01:05:31 +00:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2012-03-28 18:30:02 +01:00
2009-01-16 21:58:10 +10:00
2012-03-28 18:30:02 +01:00
2009-01-16 21:58:10 +10:00
2009-01-16 21:58:10 +10:00
2012-04-22 20:16:50 +02:00
2009-01-16 21:58:10 +10:00