diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-29 15:02:40 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-29 15:02:40 -0700 | 
| commit | c38239b4be1ac7e4bcf5bbd971353bae51525b8f (patch) | |
| tree | 0603687897074068a6ec9cde44486b5ed49b6397 | |
| parent | 57dbde63f2888af1be5111d369d124f4e659c0f8 (diff) | |
| parent | c9fa406f62ec952bc4689b5120a02759ce42a68d (diff) | |
Merge branch 'parisc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
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
| -rw-r--r-- | arch/parisc/include/uapi/asm/posix_types.h | 3 | ||||
| -rw-r--r-- | arch/parisc/kernel/entry.S | 5 | ||||
| -rw-r--r-- | arch/parisc/mm/init.c | 10 | 
3 files changed, 7 insertions, 11 deletions
| diff --git a/arch/parisc/include/uapi/asm/posix_types.h b/arch/parisc/include/uapi/asm/posix_types.h index 2785632c85e7..8dce56f5dcee 100644 --- a/arch/parisc/include/uapi/asm/posix_types.h +++ b/arch/parisc/include/uapi/asm/posix_types.h @@ -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; diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index 1c60408a64ad..d5eb19efa65b 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S @@ -394,6 +394,7 @@  	*/  	.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 diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c index e7e626bcd0be..f88a52b8531c 100644 --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c @@ -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) | 
