Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'powerpc-5.1-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:
"A minor build fix for 64-bit FLATMEM configs.

A fix for a boot failure on 32-bit powermacs.

My commit to fix CLOCK_MONOTONIC across Y2038 broke the 32-bit VDSO on
64-bit kernels, ie. compat mode, which is only used on big endian.

The rewrite of the SLB code we merged in 4.20 missed the fact that the
0x380 exception is also used with the Radix MMU to report out of range
accesses. This could lead to an oops if userspace tried to read from
addresses outside the user or kernel range.

Thanks to: Aneesh Kumar K.V, Christophe Leroy, Larry Finger, Nicholas
Piggin"

* tag 'powerpc-5.1-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/mm: Define MAX_PHYSMEM_BITS for all 64-bit configs
powerpc/64s/radix: Fix radix segment exception handling
powerpc/vdso32: fix CLOCK_MONOTONIC on PPC64
powerpc/32: Fix early boot failure with RTAS built-in

+14 -10
+1 -1
arch/powerpc/include/asm/mmu.h
··· 352 352 #if defined(CONFIG_SPARSEMEM_VMEMMAP) && defined(CONFIG_SPARSEMEM_EXTREME) && \ 353 353 defined (CONFIG_PPC_64K_PAGES) 354 354 #define MAX_PHYSMEM_BITS 51 355 - #elif defined(CONFIG_SPARSEMEM) 355 + #elif defined(CONFIG_PPC64) 356 356 #define MAX_PHYSMEM_BITS 46 357 357 #endif 358 358
+12
arch/powerpc/kernel/exceptions-64s.S
··· 656 656 ld r4,PACA_EXSLB+EX_DAR(r13) 657 657 std r4,_DAR(r1) 658 658 addi r3,r1,STACK_FRAME_OVERHEAD 659 + BEGIN_MMU_FTR_SECTION 660 + /* HPT case, do SLB fault */ 659 661 bl do_slb_fault 660 662 cmpdi r3,0 661 663 bne- 1f 662 664 b fast_exception_return 663 665 1: /* Error case */ 666 + MMU_FTR_SECTION_ELSE 667 + /* Radix case, access is outside page table range */ 668 + li r3,-EFAULT 669 + ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX) 664 670 std r3,RESULT(r1) 665 671 bl save_nvgprs 666 672 RECONCILE_IRQ_STATE(r10, r11) ··· 711 705 EXCEPTION_PROLOG_COMMON(0x480, PACA_EXSLB) 712 706 ld r4,_NIP(r1) 713 707 addi r3,r1,STACK_FRAME_OVERHEAD 708 + BEGIN_MMU_FTR_SECTION 709 + /* HPT case, do SLB fault */ 714 710 bl do_slb_fault 715 711 cmpdi r3,0 716 712 bne- 1f 717 713 b fast_exception_return 718 714 1: /* Error case */ 715 + MMU_FTR_SECTION_ELSE 716 + /* Radix case, access is outside page table range */ 717 + li r3,-EFAULT 718 + ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_TYPE_RADIX) 719 719 std r3,RESULT(r1) 720 720 bl save_nvgprs 721 721 RECONCILE_IRQ_STATE(r10, r11)
-8
arch/powerpc/kernel/head_32.S
··· 851 851 tophys(r4,r2) 852 852 addi r4,r4,THREAD /* phys address of our thread_struct */ 853 853 mtspr SPRN_SPRG_THREAD,r4 854 - #ifdef CONFIG_PPC_RTAS 855 - li r3,0 856 - stw r3, RTAS_SP(r4) /* 0 => not in RTAS */ 857 - #endif 858 854 lis r4, (swapper_pg_dir - PAGE_OFFSET)@h 859 855 ori r4, r4, (swapper_pg_dir - PAGE_OFFSET)@l 860 856 mtspr SPRN_SPRG_PGDIR, r4 ··· 937 941 tophys(r4,r2) 938 942 addi r4,r4,THREAD /* init task's THREAD */ 939 943 mtspr SPRN_SPRG_THREAD,r4 940 - #ifdef CONFIG_PPC_RTAS 941 - li r3,0 942 - stw r3, RTAS_SP(r4) /* 0 => not in RTAS */ 943 - #endif 944 944 lis r4, (swapper_pg_dir - PAGE_OFFSET)@h 945 945 ori r4, r4, (swapper_pg_dir - PAGE_OFFSET)@l 946 946 mtspr SPRN_SPRG_PGDIR, r4
+1 -1
arch/powerpc/kernel/vdso32/gettimeofday.S
··· 98 98 * can be used, r7 contains NSEC_PER_SEC. 99 99 */ 100 100 101 - lwz r5,WTOM_CLOCK_SEC(r9) 101 + lwz r5,(WTOM_CLOCK_SEC+LOPART)(r9) 102 102 lwz r6,WTOM_CLOCK_NSEC(r9) 103 103 104 104 /* We now have our offset in r5,r6. We create a fake dependency