diff options
Diffstat (limited to 'arch/mips/kernel/smp.c')
-rw-r--r-- | arch/mips/kernel/smp.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 54464fd36198..432f2e376aea 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c @@ -407,11 +407,12 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l preempt_disable(); if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) { - struct flush_tlb_data fd; + struct flush_tlb_data fd = { + .vma = vma, + .addr1 = start, + .addr2 = end, + }; - fd.vma = vma; - fd.addr1 = start; - fd.addr2 = end; smp_on_other_tlbs(flush_tlb_range_ipi, &fd); } else { cpumask_t mask = cpu_online_map; @@ -435,10 +436,11 @@ static void flush_tlb_kernel_range_ipi(void *info) void flush_tlb_kernel_range(unsigned long start, unsigned long end) { - struct flush_tlb_data fd; + struct flush_tlb_data fd = { + .addr1 = start, + .addr2 = end, + }; - fd.addr1 = start; - fd.addr2 = end; on_each_cpu(flush_tlb_kernel_range_ipi, &fd, 1, 1); } @@ -453,10 +455,11 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page) { preempt_disable(); if ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) { - struct flush_tlb_data fd; + struct flush_tlb_data fd = { + .vma = vma, + .addr1 = page, + }; - fd.vma = vma; - fd.addr1 = page; smp_on_other_tlbs(flush_tlb_page_ipi, &fd); } else { cpumask_t mask = cpu_online_map; |