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://git.armlinux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:
"A few ARM fixes:

- fix a crash while performing TLB maintanence on early ARM SMP cores

- blacklist Scorpion CPUs for hardware breakpoints

- ARMs asm/types.h has been included as part of the UAPI due to the
way the makefiles work, move it to uapi/asm/types.h to make it
official

- fix up ftrace syscall name matching"

* 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
ARM: 8613/1: Fix the uaccess crash on PB11MPCore
MAINTAINERS: update rmk's entries
ARM: put types.h in uapi
ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs
ARM: 8632/1: ftrace: fix syscall name matching

+55 -5
+8 -2
MAINTAINERS
··· 976 976 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 977 977 W: http://www.armlinux.org.uk/ 978 978 S: Maintained 979 + T: git git://git.armlinux.org.uk/~rmk/linux-arm.git 979 980 F: arch/arm/ 980 981 981 982 ARM SUB-ARCHITECTURES ··· 1154 1153 M: Russell King <linux@armlinux.org.uk> 1155 1154 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1156 1155 S: Maintained 1156 + T: git git://git.armlinux.org.uk/~rmk/linux-arm.git clkdev 1157 1157 F: arch/arm/include/asm/clkdev.h 1158 1158 F: drivers/clk/clkdev.c 1159 1159 ··· 7699 7697 F: Documentation/devicetree/bindings/net/dsa/marvell.txt 7700 7698 7701 7699 MARVELL ARMADA DRM SUPPORT 7702 - M: Russell King <rmk+kernel@armlinux.org.uk> 7700 + M: Russell King <linux@armlinux.org.uk> 7703 7701 S: Maintained 7702 + T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-armada-devel 7703 + T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-armada-fixes 7704 7704 F: drivers/gpu/drm/armada/ 7705 7705 F: include/uapi/drm/armada_drm.h 7706 7706 F: Documentation/devicetree/bindings/display/armada/ ··· 8907 8903 F: drivers/nfc/nxp-nci 8908 8904 8909 8905 NXP TDA998X DRM DRIVER 8910 - M: Russell King <rmk+kernel@armlinux.org.uk> 8906 + M: Russell King <linux@armlinux.org.uk> 8911 8907 S: Supported 8908 + T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-tda998x-devel 8909 + T: git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-tda998x-fixes 8912 8910 F: drivers/gpu/drm/i2c/tda998x_drv.c 8913 8911 F: include/drm/i2c/tda998x.h 8914 8912
+3
arch/arm/include/asm/cputype.h
··· 94 94 #define ARM_CPU_XSCALE_ARCH_V2 0x4000 95 95 #define ARM_CPU_XSCALE_ARCH_V3 0x6000 96 96 97 + /* Qualcomm implemented cores */ 98 + #define ARM_CPU_PART_SCORPION 0x510002d0 99 + 97 100 extern unsigned int processor_id; 98 101 99 102 #ifdef CONFIG_CPU_CP15
+18
arch/arm/include/asm/ftrace.h
··· 54 54 55 55 #define ftrace_return_address(n) return_address(n) 56 56 57 + #define ARCH_HAS_SYSCALL_MATCH_SYM_NAME 58 + 59 + static inline bool arch_syscall_match_sym_name(const char *sym, 60 + const char *name) 61 + { 62 + if (!strcmp(sym, "sys_mmap2")) 63 + sym = "sys_mmap_pgoff"; 64 + else if (!strcmp(sym, "sys_statfs64_wrapper")) 65 + sym = "sys_statfs64"; 66 + else if (!strcmp(sym, "sys_fstatfs64_wrapper")) 67 + sym = "sys_fstatfs64"; 68 + else if (!strcmp(sym, "sys_arm_fadvise64_64")) 69 + sym = "sys_fadvise64_64"; 70 + 71 + /* Ignore case since sym may start with "SyS" instead of "sys" */ 72 + return !strcasecmp(sym, name); 73 + } 74 + 57 75 #endif /* ifndef __ASSEMBLY__ */ 58 76 59 77 #endif /* _ASM_ARM_FTRACE */
+3 -3
arch/arm/include/asm/types.h arch/arm/include/uapi/asm/types.h
··· 1 - #ifndef _ASM_TYPES_H 2 - #define _ASM_TYPES_H 1 + #ifndef _UAPI_ASM_TYPES_H 2 + #define _UAPI_ASM_TYPES_H 3 3 4 4 #include <asm-generic/int-ll64.h> 5 5 ··· 37 37 #define __UINTPTR_TYPE__ unsigned long 38 38 #endif 39 39 40 - #endif /* _ASM_TYPES_H */ 40 + #endif /* _UAPI_ASM_TYPES_H */
+16
arch/arm/kernel/hw_breakpoint.c
··· 1063 1063 return 0; 1064 1064 } 1065 1065 1066 + /* 1067 + * Scorpion CPUs (at least those in APQ8060) seem to set DBGPRSR.SPD 1068 + * whenever a WFI is issued, even if the core is not powered down, in 1069 + * violation of the architecture. When DBGPRSR.SPD is set, accesses to 1070 + * breakpoint and watchpoint registers are treated as undefined, so 1071 + * this results in boot time and runtime failures when these are 1072 + * accessed and we unexpectedly take a trap. 1073 + * 1074 + * It's not clear if/how this can be worked around, so we blacklist 1075 + * Scorpion CPUs to avoid these issues. 1076 + */ 1077 + if (read_cpuid_part() == ARM_CPU_PART_SCORPION) { 1078 + pr_info("Scorpion CPU detected. Hardware breakpoints and watchpoints disabled\n"); 1079 + return 0; 1080 + } 1081 + 1066 1082 has_ossr = core_has_os_save_restore(); 1067 1083 1068 1084 /* Determine how many BRPs/WRPs are available. */
+7
arch/arm/kernel/smp_tlb.c
··· 9 9 */ 10 10 #include <linux/preempt.h> 11 11 #include <linux/smp.h> 12 + #include <linux/uaccess.h> 12 13 13 14 #include <asm/smp_plat.h> 14 15 #include <asm/tlbflush.h> ··· 41 40 static inline void ipi_flush_tlb_page(void *arg) 42 41 { 43 42 struct tlb_args *ta = (struct tlb_args *)arg; 43 + unsigned int __ua_flags = uaccess_save_and_enable(); 44 44 45 45 local_flush_tlb_page(ta->ta_vma, ta->ta_start); 46 + 47 + uaccess_restore(__ua_flags); 46 48 } 47 49 48 50 static inline void ipi_flush_tlb_kernel_page(void *arg) ··· 58 54 static inline void ipi_flush_tlb_range(void *arg) 59 55 { 60 56 struct tlb_args *ta = (struct tlb_args *)arg; 57 + unsigned int __ua_flags = uaccess_save_and_enable(); 61 58 62 59 local_flush_tlb_range(ta->ta_vma, ta->ta_start, ta->ta_end); 60 + 61 + uaccess_restore(__ua_flags); 63 62 } 64 63 65 64 static inline void ipi_flush_tlb_kernel_range(void *arg)