diff options
author | Leann Ogasawara <leann.ogasawara@canonical.com> | 2011-05-05 06:51:39 -0700 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2012-06-21 18:01:37 -0600 |
commit | 2134e78bd593fc72018fa689c25a2939b67d633f (patch) | |
tree | 0d6fbf2651e866098329f4f711fc4a0fdcd5f608 | |
parent | 379f69a681def4b2f260b71c36bfbba84deeac85 (diff) |
UBUNTU: SAUCE: [arm] fixup __aeabi_uldivmod undefined build error
When building on arm we run into the following build error due to
gcc-4.6 optimizing do_div into a uldivmod call:
ERROR: "__aeabi_uldivmod" [drivers/scsi/megaraid/megaraid_sas.ko] undefined!
Inline some assembly to prevent the compiler optimization.
Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com>
-rw-r--r-- | arch/arm/include/asm/div64.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h index fe92ccf1d0b..2dedab7ae08 100644 --- a/arch/arm/include/asm/div64.h +++ b/arch/arm/include/asm/div64.h @@ -73,6 +73,7 @@ #define do_div(n, base) \ ({ \ unsigned int __r, __b = (base); \ + asm("" : "+r" (__b)); \ if (!__builtin_constant_p(__b) || __b == 0 || \ (__LINUX_ARM_ARCH__ < 4 && (__b & (__b - 1)) != 0)) { \ /* non-constant divisor (or zero): slow path */ \ |