diff options
author | Leann Ogasawara <leann.ogasawara@canonical.com> | 2011-05-05 06:51:39 -0700 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2011-11-16 14:24:14 -0700 |
commit | f9d3443bf0a2ec42766531e0070dcf6952010b8e (patch) | |
tree | 109c43cf1116b4a8f04ecd6f17ca8b4ce065e75d /arch | |
parent | 6f845f8633e2df6df448900b8b622d829871bda3 (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>
Diffstat (limited to 'arch')
-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 d3f0a9eee9f..0445d361371 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 */ \ |