Merge branch 'parisc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 Oct 2018 22:02:40 +0000 (15:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 Oct 2018 22:02:40 +0000 (15:02 -0700)
Pull parisc updates from Helge Deller:
 "Three small patches:

   - A boot fix for A500 machines, crash was caused by the new
     alternative patching code from this merge window (Dave)

   - Change __kernel_suseconds_t to match glibc on 64-bit parisc (Arnd)

   - Use constants instead of hard-coded numbers (me)"

* 'parisc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Fix A500 boot crash
  parisc: Use LINUX_GATEWAY_SPACE constant in entry.S
  parisc64: change __kernel_suseconds_t to match glibc

arch/parisc/include/uapi/asm/posix_types.h
arch/parisc/kernel/entry.S
arch/parisc/mm/init.c

index 2785632..8dce56f 100644 (file)
@@ -16,9 +16,6 @@ typedef unsigned short                __kernel_mode_t;
 typedef unsigned short         __kernel_ipc_pid_t;
 #define __kernel_ipc_pid_t __kernel_ipc_pid_t
 
-typedef int                    __kernel_suseconds_t;
-#define __kernel_suseconds_t __kernel_suseconds_t
-
 typedef long long              __kernel_off64_t;
 typedef unsigned long long     __kernel_ino64_t;
 
index 1c60408..d5eb19e 100644 (file)
        */
        .macro          space_check     spc,tmp,fault
        mfsp            %sr7,\tmp
+       /* check against %r0 which is same value as LINUX_GATEWAY_SPACE */
        or,COND(<>)     %r0,\spc,%r0    /* user may execute gateway page
                                         * as kernel, so defeat the space
                                         * check if it is */
@@ -910,9 +911,9 @@ intr_check_sig:
         * Only do signals if we are returning to user space
         */
        LDREG   PT_IASQ0(%r16), %r20
-       cmpib,COND(=),n 0,%r20,intr_restore /* backward */
+       cmpib,COND(=),n LINUX_GATEWAY_SPACE, %r20, intr_restore /* backward */
        LDREG   PT_IASQ1(%r16), %r20
-       cmpib,COND(=),n 0,%r20,intr_restore /* backward */
+       cmpib,COND(=),n LINUX_GATEWAY_SPACE, %r20, intr_restore /* backward */
 
        /* NOTE: We need to enable interrupts if we have to deliver
         * signals. We used to do this earlier but it caused kernel
index e7e626b..f88a52b 100644 (file)
@@ -513,17 +513,15 @@ static void __init map_pages(unsigned long start_vaddr,
 
 void __init set_kernel_text_rw(int enable_read_write)
 {
-       unsigned long start = (unsigned long)_stext;
+       unsigned long start = (unsigned long)__init_begin;
        unsigned long end   = (unsigned long)_etext;
 
        map_pages(start, __pa(start), end-start,
                PAGE_KERNEL_RWX, enable_read_write ? 1:0);
 
-       /* force the kernel to see the new TLB entries */
-       __flush_tlb_range(0, start, end);
-
-       /* dump old cached instructions */
-       flush_icache_range(start, end);
+       /* force the kernel to see the new page table entries */
+       flush_cache_all();
+       flush_tlb_all();
 }
 
 void __ref free_initmem(void)