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

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

+7 -11
-3
arch/parisc/include/uapi/asm/posix_types.h
··· 16 16 typedef unsigned short __kernel_ipc_pid_t; 17 17 #define __kernel_ipc_pid_t __kernel_ipc_pid_t 18 18 19 - typedef int __kernel_suseconds_t; 20 - #define __kernel_suseconds_t __kernel_suseconds_t 21 - 22 19 typedef long long __kernel_off64_t; 23 20 typedef unsigned long long __kernel_ino64_t; 24 21
+3 -2
arch/parisc/kernel/entry.S
··· 394 394 */ 395 395 .macro space_check spc,tmp,fault 396 396 mfsp %sr7,\tmp 397 + /* check against %r0 which is same value as LINUX_GATEWAY_SPACE */ 397 398 or,COND(<>) %r0,\spc,%r0 /* user may execute gateway page 398 399 * as kernel, so defeat the space 399 400 * check if it is */ ··· 911 910 * Only do signals if we are returning to user space 912 911 */ 913 912 LDREG PT_IASQ0(%r16), %r20 914 - cmpib,COND(=),n 0,%r20,intr_restore /* backward */ 913 + cmpib,COND(=),n LINUX_GATEWAY_SPACE, %r20, intr_restore /* backward */ 915 914 LDREG PT_IASQ1(%r16), %r20 916 - cmpib,COND(=),n 0,%r20,intr_restore /* backward */ 915 + cmpib,COND(=),n LINUX_GATEWAY_SPACE, %r20, intr_restore /* backward */ 917 916 918 917 /* NOTE: We need to enable interrupts if we have to deliver 919 918 * signals. We used to do this earlier but it caused kernel
+4 -6
arch/parisc/mm/init.c
··· 513 513 514 514 void __init set_kernel_text_rw(int enable_read_write) 515 515 { 516 - unsigned long start = (unsigned long)_stext; 516 + unsigned long start = (unsigned long)__init_begin; 517 517 unsigned long end = (unsigned long)_etext; 518 518 519 519 map_pages(start, __pa(start), end-start, 520 520 PAGE_KERNEL_RWX, enable_read_write ? 1:0); 521 521 522 - /* force the kernel to see the new TLB entries */ 523 - __flush_tlb_range(0, start, end); 524 - 525 - /* dump old cached instructions */ 526 - flush_icache_range(start, end); 522 + /* force the kernel to see the new page table entries */ 523 + flush_cache_all(); 524 + flush_tlb_all(); 527 525 } 528 526 529 527 void __ref free_initmem(void)