The asm constraints for the strncpy_from_user() result were missing anearly clobber, which tells gcc that the last output argumentsare written before all input arguments are read.

Also add more early clobbers in the rest of the file and fix 32-bitusercopy.c in the same way.

Signed-off-by: Andi Kleen <ak@linux.intel.com>Signed-off-by: H. Peter Anvin <hpa@zytor.com>[ since this API is rarely used and no in-kernel user relies on a 'len' return value (they only rely on negative return values) this miscompile was never noticed in the field. But it's worth fixing it nevertheless. ]Signed-off-by: Ingo Molnar <mingo@elte.hu>Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>