Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:
"Some further ARM fixes:
- another build fix for the kprobes test code
- a fix for no kuser helpers for the set_tls code, which oopsed on
noMMU hardware
- a fix for alignment handler with neon opcodes being misinterpreted
- turning off the hardware access support, which is not implemented
- a build fix for the v7 coherency exiting code, which can be built
in non-v7 environments (but still only executed on v7 CPUs)"

* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
ARM: 8179/1: kprobes-test: Fix compile error "bad immediate value for offset"
ARM: 8178/1: fix set_tls for !CONFIG_KUSER_HELPERS
ARM: 8177/1: cacheflush: Fix v7_exit_coherency_flush exynos build breakage on ARMv6
ARM: 8165/1: alignment: don't break misaligned NEON load/store
ARM: 8164/1: mm: clear SCTLR.HA instead of setting it for LPAE

+21 -10
+1
arch/arm/include/asm/cacheflush.h
··· 466 466 */ 467 467 #define v7_exit_coherency_flush(level) \ 468 468 asm volatile( \ 469 + ".arch armv7-a \n\t" \ 469 470 "stmfd sp!, {fp, ip} \n\t" \ 470 471 "mrc p15, 0, r0, c1, c0, 0 @ get SCTLR \n\t" \ 471 472 "bic r0, r0, #"__stringify(CR_C)" \n\t" \
+2
arch/arm/include/asm/tls.h
··· 81 81 asm("mcr p15, 0, %0, c13, c0, 3" 82 82 : : "r" (val)); 83 83 } else { 84 + #ifdef CONFIG_KUSER_HELPERS 84 85 /* 85 86 * User space must never try to access this 86 87 * directly. Expect your app to break ··· 90 89 * entry-armv.S for details) 91 90 */ 92 91 *((unsigned int *)0xffff0ff0) = val; 92 + #endif 93 93 } 94 94 95 95 }
+9 -7
arch/arm/kernel/kprobes-test.c
··· 110 110 * 111 111 * @ TESTCASE_START 112 112 * bl __kprobes_test_case_start 113 - * @ start of inline data... 113 + * .pushsection .rodata 114 + * "10: 114 115 * .ascii "mov r0, r7" @ text title for test case 115 116 * .byte 0 116 - * .align 2, 0 117 + * .popsection 118 + * @ start of inline data... 119 + * .word 10b @ pointer to title in .rodata section 117 120 * 118 121 * @ TEST_ARG_REG 119 122 * .byte ARG_TYPE_REG ··· 974 971 __asm__ __volatile__ ( 975 972 "stmdb sp!, {r4-r11} \n\t" 976 973 "sub sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t" 977 - "bic r0, lr, #1 @ r0 = inline title string \n\t" 974 + "bic r0, lr, #1 @ r0 = inline data \n\t" 978 975 "mov r1, sp \n\t" 979 976 "bl kprobes_test_case_start \n\t" 980 977 "bx r0 \n\t" ··· 1352 1349 return pc + 4; 1353 1350 } 1354 1351 1355 - static uintptr_t __used kprobes_test_case_start(const char *title, void *stack) 1352 + static uintptr_t __used kprobes_test_case_start(const char **title, void *stack) 1356 1353 { 1357 1354 struct test_arg *args; 1358 1355 struct test_arg_end *end_arg; 1359 1356 unsigned long test_code; 1360 1357 1361 - args = (struct test_arg *)PTR_ALIGN(title + strlen(title) + 1, 4); 1362 - 1363 - current_title = title; 1358 + current_title = *title++; 1359 + args = (struct test_arg *)title; 1364 1360 current_args = args; 1365 1361 current_stack = stack; 1366 1362
+4 -1
arch/arm/kernel/kprobes-test.h
··· 111 111 #define TESTCASE_START(title) \ 112 112 __asm__ __volatile__ ( \ 113 113 "bl __kprobes_test_case_start \n\t" \ 114 + ".pushsection .rodata \n\t" \ 115 + "10: \n\t" \ 114 116 /* don't use .asciz here as 'title' may be */ \ 115 117 /* multiple strings to be concatenated. */ \ 116 118 ".ascii "#title" \n\t" \ 117 119 ".byte 0 \n\t" \ 118 - ".align 2, 0 \n\t" 120 + ".popsection \n\t" \ 121 + ".word 10b \n\t" 119 122 120 123 #define TEST_ARG_REG(reg, val) \ 121 124 ".byte "__stringify(ARG_TYPE_REG)" \n\t" \
+3
arch/arm/mm/alignment.c
··· 41 41 * This code is not portable to processors with late data abort handling. 42 42 */ 43 43 #define CODING_BITS(i) (i & 0x0e000000) 44 + #define COND_BITS(i) (i & 0xf0000000) 44 45 45 46 #define LDST_I_BIT(i) (i & (1 << 26)) /* Immediate constant */ 46 47 #define LDST_P_BIT(i) (i & (1 << 24)) /* Preindex */ ··· 822 821 break; 823 822 824 823 case 0x04000000: /* ldr or str immediate */ 824 + if (COND_BITS(instr) == 0xf0000000) /* NEON VLDn, VSTn */ 825 + goto bad; 825 826 offset.un = OFFSET_BITS(instr); 826 827 handler = do_alignment_ldrstr; 827 828 break;
+2 -2
arch/arm/mm/proc-v7-3level.S
··· 157 157 * TFR EV X F IHD LR S 158 158 * .EEE ..EE PUI. .TAT 4RVI ZWRS BLDP WCAM 159 159 * rxxx rrxx xxx0 0101 xxxx xxxx x111 xxxx < forced 160 - * 11 0 110 1 0011 1100 .111 1101 < we want 160 + * 11 0 110 0 0011 1100 .111 1101 < we want 161 161 */ 162 162 .align 2 163 163 .type v7_crval, #object 164 164 v7_crval: 165 - crval clear=0x0120c302, mmuset=0x30c23c7d, ucset=0x00c01c7c 165 + crval clear=0x0122c302, mmuset=0x30c03c7d, ucset=0x00c01c7c