Loading Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 SUBLEVEL = 283 SUBLEVEL = 284 EXTRAVERSION = NAME = "People's Front" Loading arch/m68k/kernel/signal.c +10 −4 Original line number Diff line number Diff line Loading @@ -882,11 +882,17 @@ static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs * } static inline void __user * get_sigframe(struct ksignal *ksig, size_t frame_size) get_sigframe(struct ksignal *ksig, struct pt_regs *tregs, size_t frame_size) { unsigned long usp = sigsp(rdusp(), ksig); unsigned long gap = 0; return (void __user *)((usp - frame_size) & -8UL); if (CPU_IS_020_OR_030 && tregs->format == 0xb) { /* USP is unreliable so use worst-case value */ gap = 256; } return (void __user *)((usp - gap - frame_size) & -8UL); } static int setup_frame(struct ksignal *ksig, sigset_t *set, Loading @@ -904,7 +910,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set, return -EFAULT; } frame = get_sigframe(ksig, sizeof(*frame) + fsize); frame = get_sigframe(ksig, tregs, sizeof(*frame) + fsize); if (fsize) err |= copy_to_user (frame + 1, regs + 1, fsize); Loading Loading @@ -975,7 +981,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, return -EFAULT; } frame = get_sigframe(ksig, sizeof(*frame)); frame = get_sigframe(ksig, tregs, sizeof(*frame)); if (fsize) err |= copy_to_user (&frame->uc.uc_extra, regs + 1, fsize); Loading arch/parisc/include/asm/cacheflush.h +5 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,11 @@ extern void flush_dcache_page(struct page *page); #define flush_dcache_mmap_lock(mapping) xa_lock_irq(&mapping->i_pages) #define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&mapping->i_pages) #define flush_dcache_mmap_lock_irqsave(mapping, flags) \ xa_lock_irqsave(&mapping->i_pages, flags) #define flush_dcache_mmap_unlock_irqrestore(mapping, flags) \ xa_unlock_irqrestore(&mapping->i_pages, flags) #define flush_icache_page(vma,page) do { \ flush_kernel_dcache_page(page); \ Loading arch/parisc/kernel/cache.c +3 −2 Original line number Diff line number Diff line Loading @@ -309,6 +309,7 @@ void flush_dcache_page(struct page *page) struct vm_area_struct *mpnt; unsigned long offset; unsigned long addr, old_addr = 0; unsigned long flags; pgoff_t pgoff; if (mapping && !mapping_mapped(mapping)) { Loading @@ -328,7 +329,7 @@ void flush_dcache_page(struct page *page) * declared as MAP_PRIVATE or MAP_SHARED), so we only need * to flush one address here for them all to become coherent */ flush_dcache_mmap_lock(mapping); flush_dcache_mmap_lock_irqsave(mapping, flags); vma_interval_tree_foreach(mpnt, &mapping->i_mmap, pgoff, pgoff) { offset = (pgoff - mpnt->vm_pgoff) << PAGE_SHIFT; addr = mpnt->vm_start + offset; Loading @@ -351,7 +352,7 @@ void flush_dcache_page(struct page *page) old_addr = addr; } } flush_dcache_mmap_unlock(mapping); flush_dcache_mmap_unlock_irqrestore(mapping, flags); } EXPORT_SYMBOL(flush_dcache_page); Loading arch/parisc/kernel/process.c +8 −3 Original line number Diff line number Diff line Loading @@ -138,13 +138,18 @@ void machine_power_off(void) /* It seems we have no way to power the system off via * software. The user has to press the button himself. */ printk(KERN_EMERG "System shut down completed.\n" "Please power this system off now."); printk("Power off or press RETURN to reboot.\n"); /* prevent soft lockup/stalled CPU messages for endless loop. */ rcu_sysrq_start(); lockup_detector_soft_poweroff(); for (;;); while (1) { /* reboot if user presses RETURN key */ if (pdc_iodc_getc() == 13) { printk("Rebooting...\n"); machine_restart(NULL); } } } void (*pm_power_off)(void); Loading Loading
Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 SUBLEVEL = 283 SUBLEVEL = 284 EXTRAVERSION = NAME = "People's Front" Loading
arch/m68k/kernel/signal.c +10 −4 Original line number Diff line number Diff line Loading @@ -882,11 +882,17 @@ static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs * } static inline void __user * get_sigframe(struct ksignal *ksig, size_t frame_size) get_sigframe(struct ksignal *ksig, struct pt_regs *tregs, size_t frame_size) { unsigned long usp = sigsp(rdusp(), ksig); unsigned long gap = 0; return (void __user *)((usp - frame_size) & -8UL); if (CPU_IS_020_OR_030 && tregs->format == 0xb) { /* USP is unreliable so use worst-case value */ gap = 256; } return (void __user *)((usp - gap - frame_size) & -8UL); } static int setup_frame(struct ksignal *ksig, sigset_t *set, Loading @@ -904,7 +910,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set, return -EFAULT; } frame = get_sigframe(ksig, sizeof(*frame) + fsize); frame = get_sigframe(ksig, tregs, sizeof(*frame) + fsize); if (fsize) err |= copy_to_user (frame + 1, regs + 1, fsize); Loading Loading @@ -975,7 +981,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, return -EFAULT; } frame = get_sigframe(ksig, sizeof(*frame)); frame = get_sigframe(ksig, tregs, sizeof(*frame)); if (fsize) err |= copy_to_user (&frame->uc.uc_extra, regs + 1, fsize); Loading
arch/parisc/include/asm/cacheflush.h +5 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,11 @@ extern void flush_dcache_page(struct page *page); #define flush_dcache_mmap_lock(mapping) xa_lock_irq(&mapping->i_pages) #define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&mapping->i_pages) #define flush_dcache_mmap_lock_irqsave(mapping, flags) \ xa_lock_irqsave(&mapping->i_pages, flags) #define flush_dcache_mmap_unlock_irqrestore(mapping, flags) \ xa_unlock_irqrestore(&mapping->i_pages, flags) #define flush_icache_page(vma,page) do { \ flush_kernel_dcache_page(page); \ Loading
arch/parisc/kernel/cache.c +3 −2 Original line number Diff line number Diff line Loading @@ -309,6 +309,7 @@ void flush_dcache_page(struct page *page) struct vm_area_struct *mpnt; unsigned long offset; unsigned long addr, old_addr = 0; unsigned long flags; pgoff_t pgoff; if (mapping && !mapping_mapped(mapping)) { Loading @@ -328,7 +329,7 @@ void flush_dcache_page(struct page *page) * declared as MAP_PRIVATE or MAP_SHARED), so we only need * to flush one address here for them all to become coherent */ flush_dcache_mmap_lock(mapping); flush_dcache_mmap_lock_irqsave(mapping, flags); vma_interval_tree_foreach(mpnt, &mapping->i_mmap, pgoff, pgoff) { offset = (pgoff - mpnt->vm_pgoff) << PAGE_SHIFT; addr = mpnt->vm_start + offset; Loading @@ -351,7 +352,7 @@ void flush_dcache_page(struct page *page) old_addr = addr; } } flush_dcache_mmap_unlock(mapping); flush_dcache_mmap_unlock_irqrestore(mapping, flags); } EXPORT_SYMBOL(flush_dcache_page); Loading
arch/parisc/kernel/process.c +8 −3 Original line number Diff line number Diff line Loading @@ -138,13 +138,18 @@ void machine_power_off(void) /* It seems we have no way to power the system off via * software. The user has to press the button himself. */ printk(KERN_EMERG "System shut down completed.\n" "Please power this system off now."); printk("Power off or press RETURN to reboot.\n"); /* prevent soft lockup/stalled CPU messages for endless loop. */ rcu_sysrq_start(); lockup_detector_soft_poweroff(); for (;;); while (1) { /* reboot if user presses RETURN key */ if (pdc_iodc_getc() == 13) { printk("Rebooting...\n"); machine_restart(NULL); } } } void (*pm_power_off)(void); Loading