diff options
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r-- | arch/arm/kernel/setup.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 139791ed473d..a28fce0bdbbe 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -430,11 +430,13 @@ static void __init patch_aeabi_idiv(void) | |||
430 | pr_info("CPU: div instructions available: patching division code\n"); | 430 | pr_info("CPU: div instructions available: patching division code\n"); |
431 | 431 | ||
432 | fn_addr = ((uintptr_t)&__aeabi_uidiv) & ~1; | 432 | fn_addr = ((uintptr_t)&__aeabi_uidiv) & ~1; |
433 | asm ("" : "+g" (fn_addr)); | ||
433 | ((u32 *)fn_addr)[0] = udiv_instruction(); | 434 | ((u32 *)fn_addr)[0] = udiv_instruction(); |
434 | ((u32 *)fn_addr)[1] = bx_lr_instruction(); | 435 | ((u32 *)fn_addr)[1] = bx_lr_instruction(); |
435 | flush_icache_range(fn_addr, fn_addr + 8); | 436 | flush_icache_range(fn_addr, fn_addr + 8); |
436 | 437 | ||
437 | fn_addr = ((uintptr_t)&__aeabi_idiv) & ~1; | 438 | fn_addr = ((uintptr_t)&__aeabi_idiv) & ~1; |
439 | asm ("" : "+g" (fn_addr)); | ||
438 | ((u32 *)fn_addr)[0] = sdiv_instruction(); | 440 | ((u32 *)fn_addr)[0] = sdiv_instruction(); |
439 | ((u32 *)fn_addr)[1] = bx_lr_instruction(); | 441 | ((u32 *)fn_addr)[1] = bx_lr_instruction(); |
440 | flush_icache_range(fn_addr, fn_addr + 8); | 442 | flush_icache_range(fn_addr, fn_addr + 8); |