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 git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

Pull sparc fixes from David Miller:
"Here we have two bug fixes:

1) The current thread's fault_code is not setup properly upon entry to
do_sparc64_fault() in some paths, leading to spurious SIGBUS.

2) Don't use a zero length array at the end of thread_info on sparc64,
otherwise end_of_stack() isn't right"

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
sparc64: Do not define thread fpregs save area as zero-length array.
sparc64: Fix corrupted thread fault code.

+8 -7
+2 -1
arch/sparc/include/asm/thread_info_64.h
··· 63 63 struct pt_regs *kern_una_regs; 64 64 unsigned int kern_una_insn; 65 65 66 - unsigned long fpregs[0] __attribute__ ((aligned(64))); 66 + unsigned long fpregs[(7 * 256) / sizeof(unsigned long)] 67 + __attribute__ ((aligned(64))); 67 68 }; 68 69 69 70 #endif /* !(__ASSEMBLY__) */
+3 -3
arch/sparc/kernel/dtlb_prot.S
··· 24 24 mov TLB_TAG_ACCESS, %g4 ! For reload of vaddr 25 25 26 26 /* PROT ** ICACHE line 2: More real fault processing */ 27 + ldxa [%g4] ASI_DMMU, %g5 ! Put tagaccess in %g5 27 28 bgu,pn %xcc, winfix_trampoline ! Yes, perform winfixup 28 - ldxa [%g4] ASI_DMMU, %g5 ! Put tagaccess in %g5 29 - ba,pt %xcc, sparc64_realfault_common ! Nope, normal fault 30 29 mov FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4 31 - nop 30 + ba,pt %xcc, sparc64_realfault_common ! Nope, normal fault 31 + nop 32 32 nop 33 33 nop 34 34 nop
+3 -3
arch/sparc/kernel/tsb.S
··· 162 162 nop 163 163 .previous 164 164 165 - rdpr %tl, %g3 166 - cmp %g3, 1 165 + rdpr %tl, %g7 166 + cmp %g7, 1 167 167 bne,pn %xcc, winfix_trampoline 168 - nop 168 + mov %g3, %g4 169 169 ba,pt %xcc, etrap 170 170 rd %pc, %g7 171 171 call hugetlb_setup