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

Pull powerpc fixes from Michael Ellerman:

- Fix vmemmap altmap boundary check which could cause memory hotunplug
failure

- Create a dummy stackframe to fix ftrace stack unwind

- Fix secondary thread bringup for Book3E ELFv2 kernels

- Use early_ioremap/unmap() in via_calibrate_decr()

Thanks to Aneesh Kumar K.V, Benjamin Gray, Christophe Leroy, David
Hildenbrand, and Naveen N Rao.

* tag 'powerpc-6.5-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
powerpc/64e: Fix secondary thread bringup for ELFv2 kernels
powerpc/ftrace: Create a dummy stackframe to fix stack unwind
powerpc/mm/altmap: Fix altmap boundary check

+13 -10
+1 -2
arch/powerpc/kernel/head_64.S
··· 375 375 beq 20f 376 376 377 377 /* start the specified thread */ 378 - LOAD_REG_ADDR(r5, fsl_secondary_thread_init) 379 - ld r4, 0(r5) 378 + LOAD_REG_ADDR(r5, DOTSYM(fsl_secondary_thread_init)) 380 379 bl book3e_start_thread 381 380 382 381 /* stop the current thread */
+7 -2
arch/powerpc/kernel/trace/ftrace_mprofile.S
··· 33 33 * and then arrange for the ftrace function to be called. 34 34 */ 35 35 .macro ftrace_regs_entry allregs 36 + /* Create a minimal stack frame for representing B */ 37 + PPC_STLU r1, -STACK_FRAME_MIN_SIZE(r1) 38 + 36 39 /* Create our stack frame + pt_regs */ 37 40 PPC_STLU r1,-SWITCH_FRAME_SIZE(r1) 38 41 ··· 45 42 46 43 #ifdef CONFIG_PPC64 47 44 /* Save the original return address in A's stack frame */ 48 - std r0, LRSAVE+SWITCH_FRAME_SIZE(r1) 45 + std r0, LRSAVE+SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE(r1) 49 46 /* Ok to continue? */ 50 47 lbz r3, PACA_FTRACE_ENABLED(r13) 51 48 cmpdi r3, 0 ··· 80 77 mflr r7 81 78 /* Save it as pt_regs->nip */ 82 79 PPC_STL r7, _NIP(r1) 80 + /* Also save it in B's stackframe header for proper unwind */ 81 + PPC_STL r7, LRSAVE+SWITCH_FRAME_SIZE(r1) 83 82 /* Save the read LR in pt_regs->link */ 84 83 PPC_STL r0, _LINK(r1) 85 84 ··· 147 142 #endif 148 143 149 144 /* Pop our stack frame */ 150 - addi r1, r1, SWITCH_FRAME_SIZE 145 + addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE 151 146 152 147 #ifdef CONFIG_LIVEPATCH_64 153 148 /* Based on the cmpd above, if the NIP was altered handle livepatch */
+1 -2
arch/powerpc/mm/init_64.c
··· 314 314 start = ALIGN_DOWN(start, page_size); 315 315 if (altmap) { 316 316 alt_start = altmap->base_pfn; 317 - alt_end = altmap->base_pfn + altmap->reserve + 318 - altmap->free + altmap->alloc + altmap->align; 317 + alt_end = altmap->base_pfn + altmap->reserve + altmap->free; 319 318 } 320 319 321 320 pr_debug("vmemmap_free %lx...%lx\n", start, end);
+1 -1
arch/powerpc/platforms/85xx/smp.c
··· 180 180 unsigned long inia; 181 181 int cpu = *(const int *)info; 182 182 183 - inia = *(unsigned long *)fsl_secondary_thread_init; 183 + inia = ppc_function_entry(fsl_secondary_thread_init); 184 184 book3e_start_thread(cpu_thread_in_core(cpu), inia); 185 185 } 186 186 #endif
+3 -3
arch/powerpc/platforms/powermac/time.c
··· 26 26 #include <linux/rtc.h> 27 27 #include <linux/of_address.h> 28 28 29 + #include <asm/early_ioremap.h> 29 30 #include <asm/sections.h> 30 - #include <asm/io.h> 31 31 #include <asm/machdep.h> 32 32 #include <asm/time.h> 33 33 #include <asm/nvram.h> ··· 182 182 return 0; 183 183 } 184 184 of_node_put(vias); 185 - via = ioremap(rsrc.start, resource_size(&rsrc)); 185 + via = early_ioremap(rsrc.start, resource_size(&rsrc)); 186 186 if (via == NULL) { 187 187 printk(KERN_ERR "Failed to map VIA for timer calibration !\n"); 188 188 return 0; ··· 207 207 208 208 ppc_tb_freq = (dstart - dend) * 100 / 6; 209 209 210 - iounmap(via); 210 + early_iounmap((void *)via, resource_size(&rsrc)); 211 211 212 212 return 1; 213 213 }