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

Pull powerpc fixes from Madhavan Srinivasan:

- fix to handle patchable function entries during module load

- fix to align vmemmap start to page size

- fixes to handle compilation errors and warnings

Thanks to Anthony Iliopoulos, Donet Tom, Ritesh Harjani (IBM), Venkat
Rao Bagalkote, and Stephen Rothwell.

* tag 'powerpc-6.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/boot: Fix dash warning
powerpc/boot: Check for ld-option support
powerpc: Add check to select PPC_RADIX_BROADCAST_TLBIE
powerpc64/ftrace: fix module loading without patchable function entries
book3s64/radix : Align section vmemmap start address to PAGE_SIZE
book3s64/radix: Fix compile errors when CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=n

+21 -13
+2 -4
arch/powerpc/boot/wrapper
··· 234 234 235 235 # suppress some warnings in recent ld versions 236 236 nowarn="-z noexecstack" 237 - if ! ld_is_lld; then 238 - if [ "$LD_VERSION" -ge "$(echo 2.39 | ld_version)" ]; then 239 - nowarn="$nowarn --no-warn-rwx-segments" 240 - fi 237 + if "${CROSS}ld" -v --no-warn-rwx-segments >/dev/null 2>&1; then 238 + nowarn="$nowarn --no-warn-rwx-segments" 241 239 fi 242 240 243 241 platformo=$object/"$platform".o
-4
arch/powerpc/kernel/module_64.c
··· 258 258 break; 259 259 } 260 260 } 261 - if (i == hdr->e_shnum) { 262 - pr_err("%s: doesn't contain __patchable_function_entries.\n", me->name); 263 - return -ENOEXEC; 264 - } 265 261 #endif 266 262 267 263 pr_debug("Looks like a total of %lu stubs, max\n", relocs);
+17 -3
arch/powerpc/mm/book3s64/radix_pgtable.c
··· 976 976 return 0; 977 977 } 978 978 979 - 979 + #ifdef CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP 980 980 bool vmemmap_can_optimize(struct vmem_altmap *altmap, struct dev_pagemap *pgmap) 981 981 { 982 982 if (radix_enabled()) ··· 984 984 985 985 return false; 986 986 } 987 + #endif 987 988 988 989 int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node, 989 990 unsigned long addr, unsigned long next) ··· 1121 1120 pmd_t *pmd; 1122 1121 pte_t *pte; 1123 1122 1123 + /* 1124 + * Make sure we align the start vmemmap addr so that we calculate 1125 + * the correct start_pfn in altmap boundary check to decided whether 1126 + * we should use altmap or RAM based backing memory allocation. Also 1127 + * the address need to be aligned for set_pte operation. 1128 + 1129 + * If the start addr is already PMD_SIZE aligned we will try to use 1130 + * a pmd mapping. We don't want to be too aggressive here beacause 1131 + * that will cause more allocations in RAM. So only if the namespace 1132 + * vmemmap start addr is PMD_SIZE aligned we will use PMD mapping. 1133 + */ 1134 + 1135 + start = ALIGN_DOWN(start, PAGE_SIZE); 1124 1136 for (addr = start; addr < end; addr = next) { 1125 1137 next = pmd_addr_end(addr, end); 1126 1138 ··· 1159 1145 * in altmap block allocation failures, in which case 1160 1146 * we fallback to RAM for vmemmap allocation. 1161 1147 */ 1162 - if (altmap && (!IS_ALIGNED(addr, PMD_SIZE) || 1163 - altmap_cross_boundary(altmap, addr, PMD_SIZE))) { 1148 + if (!IS_ALIGNED(addr, PMD_SIZE) || (altmap && 1149 + altmap_cross_boundary(altmap, addr, PMD_SIZE))) { 1164 1150 /* 1165 1151 * make sure we don't create altmap mappings 1166 1152 * covering things outside the device.
+1 -1
arch/powerpc/platforms/powernv/Kconfig
··· 17 17 select MMU_NOTIFIER 18 18 select FORCE_SMP 19 19 select ARCH_SUPPORTS_PER_VMA_LOCK 20 - select PPC_RADIX_BROADCAST_TLBIE 20 + select PPC_RADIX_BROADCAST_TLBIE if PPC_RADIX_MMU 21 21 default y 22 22 23 23 config OPAL_PRD
+1 -1
arch/powerpc/platforms/pseries/Kconfig
··· 23 23 select FORCE_SMP 24 24 select SWIOTLB 25 25 select ARCH_SUPPORTS_PER_VMA_LOCK 26 - select PPC_RADIX_BROADCAST_TLBIE 26 + select PPC_RADIX_BROADCAST_TLBIE if PPC_RADIX_MMU 27 27 default y 28 28 29 29 config PARAVIRT