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 tag 'powerpc-4.17-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:
"One fix for an actual regression, the change to the SYSCALL_DEFINE
wrapper broke FTRACE_SYSCALLS for us due to a name mismatch. There's
also another commit to the same code to make sure we match all our
syscalls with various prefixes.

And then just one minor build fix, and the removal of an unused
variable that was removed and then snuck back in due to some rebasing.

Thanks to: Naveen N. Rao"

* tag 'powerpc-4.17-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/pseries: Fix CONFIG_NUMA=n build
powerpc/trace/syscalls: Update syscall name matching logic to account for ppc_ prefix
powerpc/trace/syscalls: Update syscall name matching logic
powerpc/64: Remove unused paca->soft_enabled

+26 -17
+21 -8
arch/powerpc/include/asm/ftrace.h
··· 69 69 #endif 70 70 71 71 #if defined(CONFIG_FTRACE_SYSCALLS) && !defined(__ASSEMBLY__) 72 - #ifdef PPC64_ELF_ABI_v1 72 + /* 73 + * Some syscall entry functions on powerpc start with "ppc_" (fork and clone, 74 + * for instance) or ppc32_/ppc64_. We should also match the sys_ variant with 75 + * those. 76 + */ 73 77 #define ARCH_HAS_SYSCALL_MATCH_SYM_NAME 78 + #ifdef PPC64_ELF_ABI_v1 74 79 static inline bool arch_syscall_match_sym_name(const char *sym, const char *name) 75 80 { 76 - /* 77 - * Compare the symbol name with the system call name. Skip the .sys or .SyS 78 - * prefix from the symbol name and the sys prefix from the system call name and 79 - * just match the rest. This is only needed on ppc64 since symbol names on 80 - * 32bit do not start with a period so the generic function will work. 81 - */ 82 - return !strcmp(sym + 4, name + 3); 81 + /* We need to skip past the initial dot, and the __se_sys alias */ 82 + return !strcmp(sym + 1, name) || 83 + (!strncmp(sym, ".__se_sys", 9) && !strcmp(sym + 6, name)) || 84 + (!strncmp(sym, ".ppc_", 5) && !strcmp(sym + 5, name + 4)) || 85 + (!strncmp(sym, ".ppc32_", 7) && !strcmp(sym + 7, name + 4)) || 86 + (!strncmp(sym, ".ppc64_", 7) && !strcmp(sym + 7, name + 4)); 87 + } 88 + #else 89 + static inline bool arch_syscall_match_sym_name(const char *sym, const char *name) 90 + { 91 + return !strcmp(sym, name) || 92 + (!strncmp(sym, "__se_sys", 8) && !strcmp(sym + 5, name)) || 93 + (!strncmp(sym, "ppc_", 4) && !strcmp(sym + 4, name + 4)) || 94 + (!strncmp(sym, "ppc32_", 6) && !strcmp(sym + 6, name + 4)) || 95 + (!strncmp(sym, "ppc64_", 6) && !strcmp(sym + 6, name + 4)); 83 96 } 84 97 #endif 85 98 #endif /* CONFIG_FTRACE_SYSCALLS && !__ASSEMBLY__ */
-1
arch/powerpc/include/asm/paca.h
··· 165 165 u64 saved_msr; /* MSR saved here by enter_rtas */ 166 166 u16 trap_save; /* Used when bad stack is encountered */ 167 167 u8 irq_soft_mask; /* mask for irq soft masking */ 168 - u8 soft_enabled; /* irq soft-enable flag */ 169 168 u8 irq_happened; /* irq happened while soft-disabled */ 170 169 u8 io_sync; /* writel() needs spin_unlock sync */ 171 170 u8 irq_work_pending; /* IRQ_WORK interrupt while soft-disable */
+5 -8
arch/powerpc/include/asm/topology.h
··· 91 91 extern int stop_topology_update(void); 92 92 extern int prrn_is_enabled(void); 93 93 extern int find_and_online_cpu_nid(int cpu); 94 + extern int timed_topology_update(int nsecs); 94 95 #else 95 96 static inline int start_topology_update(void) 96 97 { ··· 109 108 { 110 109 return 0; 111 110 } 111 + static inline int timed_topology_update(int nsecs) 112 + { 113 + return 0; 114 + } 112 115 #endif /* CONFIG_NUMA && CONFIG_PPC_SPLPAR */ 113 - 114 - #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_NEED_MULTIPLE_NODES) 115 - #if defined(CONFIG_PPC_SPLPAR) 116 - extern int timed_topology_update(int nsecs); 117 - #else 118 - #define timed_topology_update(nsecs) 119 - #endif /* CONFIG_PPC_SPLPAR */ 120 - #endif /* CONFIG_HOTPLUG_CPU || CONFIG_NEED_MULTIPLE_NODES */ 121 116 122 117 #include <asm-generic/topology.h> 123 118