forked from Minki/linux
OpenRISC updates for 5.16
This includes 2 minor cleanups, plus a bug fix for OpenRISC TLB flush code that allows the the SMP kernel to boot again. -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE2cRzVK74bBA6Je/xw7McLV5mJ+QFAmGIOh4ACgkQw7McLV5m J+Ts7hAApLDmupgPlJfc9hsIIxiCZcMnP5vyF2gNSkaDVkWkLkM24WuAfcCusEUE VIrI/K6AV8wQUfG9n3sAQ/v5bkKrLCkt3UYsOViidHJsrTeW7CO8v+Nzair3gbNa zKZEs6EyoGrd9l5nMv3D0z/PFWnTCMehRBHYYp6D/chgT+2cpQsVsq9SbN3gV5CR sdFrGOzWSemtWCqVibdsKa4j0IqLVNRAPv1MYC7jECOkRvMkbkXFWZK8Q8ijs0Mv th4nt9SJOSH+OAzBhXoH7bW9BUwfCEwnBYXhsidHVwf1S6+5/yFj24zQAz/1YZ21 ydTS6PHS66oFqa5QITNbfNuqeprrnb+8JavkYvJnWiPfg8yJ2gURZ/4pCHS8iMsB mQpLaQlTsEHODj7Vc4GSTlbzWDgtCSB6v0fOPJP01Bzf+z2wsqG6dLJVrWMl6nT9 0sNvfnU9egne8UhbTJ8fot9SISRjc/sFMXKnMMdcY+7KWdw+Kh4t7/hL5ZbKCZ8H Pg3NNTA37puqTn9qvd0ZA5Ey9L0bSjeQpGa2A+nutE3zfRL9MQFWWrpHPgfJyoZe VOZSK0dtSfYtTsCnno5S2px2XqPpXIf0P5LiXzvtc+x7JjZsP3G4jZxB8ql+ZaQF IeBI4Kvg4QPU2T/TUwt5VIMEL/I3yZ63/0L+d1xnIqaVZVK0RDQ= =c5nj -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://github.com/openrisc/linux Pull OpenRISC updates from Stafford Horne: "This includes two minor cleanups, plus a bug fix for OpenRISC TLB flush code that allows the the SMP kernel to boot again" * tag 'for-linus' of git://github.com/openrisc/linux: openrisc: fix SMP tlb flush NULL pointer dereference openrisc: signal: remove unused DEBUG_SIG macro openrisc: time: don't mark comment as kernel-doc
This commit is contained in:
commit
a2b03e48e9
@ -33,7 +33,7 @@ page_set_nocache(pte_t *pte, unsigned long addr,
|
|||||||
* Flush the page out of the TLB so that the new page flags get
|
* Flush the page out of the TLB so that the new page flags get
|
||||||
* picked up next time there's an access
|
* picked up next time there's an access
|
||||||
*/
|
*/
|
||||||
flush_tlb_page(NULL, addr);
|
flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
|
||||||
|
|
||||||
/* Flush page out of dcache */
|
/* Flush page out of dcache */
|
||||||
for (cl = __pa(addr); cl < __pa(next); cl += cpuinfo->dcache_block_size)
|
for (cl = __pa(addr); cl < __pa(next); cl += cpuinfo->dcache_block_size)
|
||||||
@ -56,7 +56,7 @@ page_clear_nocache(pte_t *pte, unsigned long addr,
|
|||||||
* Flush the page out of the TLB so that the new page flags get
|
* Flush the page out of the TLB so that the new page flags get
|
||||||
* picked up next time there's an access
|
* picked up next time there's an access
|
||||||
*/
|
*/
|
||||||
flush_tlb_page(NULL, addr);
|
flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
#include <asm/ucontext.h>
|
#include <asm/ucontext.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
|
|
||||||
#define DEBUG_SIG 0
|
|
||||||
|
|
||||||
struct rt_sigframe {
|
struct rt_sigframe {
|
||||||
struct siginfo info;
|
struct siginfo info;
|
||||||
struct ucontext uc;
|
struct ucontext uc;
|
||||||
|
@ -268,7 +268,7 @@ static inline void ipi_flush_tlb_range(void *info)
|
|||||||
local_flush_tlb_range(NULL, fd->addr1, fd->addr2);
|
local_flush_tlb_range(NULL, fd->addr1, fd->addr2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void smp_flush_tlb_range(struct cpumask *cmask, unsigned long start,
|
static void smp_flush_tlb_range(const struct cpumask *cmask, unsigned long start,
|
||||||
unsigned long end)
|
unsigned long end)
|
||||||
{
|
{
|
||||||
unsigned int cpuid;
|
unsigned int cpuid;
|
||||||
@ -316,7 +316,9 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
|
|||||||
void flush_tlb_range(struct vm_area_struct *vma,
|
void flush_tlb_range(struct vm_area_struct *vma,
|
||||||
unsigned long start, unsigned long end)
|
unsigned long start, unsigned long end)
|
||||||
{
|
{
|
||||||
smp_flush_tlb_range(mm_cpumask(vma->vm_mm), start, end);
|
const struct cpumask *cmask = vma ? mm_cpumask(vma->vm_mm)
|
||||||
|
: cpu_online_mask;
|
||||||
|
smp_flush_tlb_range(cmask, start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Instruction cache invalidate - performed on each cpu */
|
/* Instruction cache invalidate - performed on each cpu */
|
||||||
|
@ -127,7 +127,7 @@ irqreturn_t __irq_entry timer_interrupt(struct pt_regs *regs)
|
|||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Clocksource: Based on OpenRISC timer/counter
|
* Clocksource: Based on OpenRISC timer/counter
|
||||||
*
|
*
|
||||||
* This sets up the OpenRISC Tick Timer as a clock source. The tick timer
|
* This sets up the OpenRISC Tick Timer as a clock source. The tick timer
|
||||||
|
Loading…
Reference in New Issue
Block a user