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 | |||
407 | 407 | ||
408 | preempt_disable(); | 408 | preempt_disable(); |
409 | if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) { | 409 | if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) { |
410 | struct flush_tlb_data fd; | 410 | struct flush_tlb_data fd = { |
411 | .vma = vma, | ||
412 | .addr1 = start, | ||
413 | .addr2 = end, | ||
414 | }; | ||
411 | 415 | ||
412 | fd.vma = vma; | ||
413 | fd.addr1 = start; | ||
414 | fd.addr2 = end; | ||
415 | smp_on_other_tlbs(flush_tlb_range_ipi, &fd); | 416 | smp_on_other_tlbs(flush_tlb_range_ipi, &fd); |
416 | } else { | 417 | } else { |
417 | cpumask_t mask = cpu_online_map; | 418 | cpumask_t mask = cpu_online_map; |
@@ -435,10 +436,11 @@ static void flush_tlb_kernel_range_ipi(void *info) | |||
435 | 436 | ||
436 | void flush_tlb_kernel_range(unsigned long start, unsigned long end) | 437 | void flush_tlb_kernel_range(unsigned long start, unsigned long end) |
437 | { | 438 | { |
438 | struct flush_tlb_data fd; | 439 | struct flush_tlb_data fd = { |
440 | .addr1 = start, | ||
441 | .addr2 = end, | ||
442 | }; | ||
439 | 443 | ||
440 | fd.addr1 = start; | ||
441 | fd.addr2 = end; | ||
442 | on_each_cpu(flush_tlb_kernel_range_ipi, &fd, 1, 1); | 444 | on_each_cpu(flush_tlb_kernel_range_ipi, &fd, 1, 1); |
443 | } | 445 | } |
444 | 446 | ||
@@ -453,10 +455,11 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page) | |||
453 | { | 455 | { |
454 | preempt_disable(); | 456 | preempt_disable(); |
455 | if ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) { | 457 | if ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) { |
456 | struct flush_tlb_data fd; | 458 | struct flush_tlb_data fd = { |
459 | .vma = vma, | ||
460 | .addr1 = page, | ||
461 | }; | ||
457 | 462 | ||
458 | fd.vma = vma; | ||
459 | fd.addr1 = page; | ||
460 | smp_on_other_tlbs(flush_tlb_page_ipi, &fd); | 463 | smp_on_other_tlbs(flush_tlb_page_ipi, &fd); |
461 | } else { | 464 | } else { |
462 | cpumask_t mask = cpu_online_map; | 465 | cpumask_t mask = cpu_online_map; |