Messages in this thread Patch in this message | | | Date | Wed, 07 Mar 2007 10:39:42 +0900 | From | Tsutomu OWA <> | Subject | [patch 3/6 -rt] powerpc 2.6.20-rt8: fix a runtime warning for smp_processor_id() |
| |
To fix the following runtime warning.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BUG: using smp_processor_id() in preemptible [00000000] code: init/371 caller is .pgtable_free_tlb+0x2c/0x14c Call Trace: [C00000000FF6B770] [C00000000000FAAC] .show_stack+0x68/0x1b0 (unreliable) [C00000000FF6B810] [C0000000001F7190] .debug_smp_processor_id+0xc8/0xf8 [C00000000FF6B8A0] [C00000000002C52C] .pgtable_free_tlb+0x2c/0x14c [C00000000FF6B940] [C0000000000B6528] .free_pgd_range+0x234/0x3bc [C00000000FF6BA40] [C0000000000B6AB8] .free_pgtables+0x224/0x260 [C00000000FF6BB00] [C0000000000B7FE8] .exit_mmap+0x100/0x208 [C00000000FF6BBC0] [C000000000055FB0] .mmput+0x70/0x12c [C00000000FF6BC50] [C00000000005B728] .exit_mm+0x150/0x170 [C00000000FF6BCE0] [C00000000005D80C] .do_exit+0x28c/0x9bc [C00000000FF6BDA0] [C00000000005DFF0] .sys_exit_group+0x0/0x8 [C00000000FF6BE30] [C000000000008634] syscall_exit+0x0/0x40 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would it be better to just use raw_smp_processor_id() rather than tlb->cpu?
Signed-off-by: Tsutomu Owa <tsutomu.owa@toshiba.co.jp> -- owa
diff -rup linux-rt8/arch/powerpc/mm/tlb_64.c rt/arch/powerpc/mm/tlb_64.c --- linux-rt8/arch/powerpc/mm/tlb_64.c 2007-02-20 14:30:38.000000000 +0900 +++ rt/arch/powerpc/mm/tlb_64.c 2007-03-05 13:31:24.000000000 +0900 @@ -94,8 +94,11 @@ static void pte_free_submit(struct pte_f void pgtable_free_tlb(struct mmu_gather *tlb, pgtable_free_t pgf) { - /* This is safe since tlb_gather_mmu has disabled preemption */ - cpumask_t local_cpumask = cpumask_of_cpu(smp_processor_id()); + /* + * This is safe since tlb_gather_mmu has disabled preemption. + * tlb->cpu is set by tlb_gather_mmu as well. + */ + cpumask_t local_cpumask = cpumask_of_cpu(tlb->cpu); struct pte_freelist_batch **batchp = &__get_cpu_var(pte_freelist_cur); if (atomic_read(&tlb->mm->mm_users) < 2 || - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |