lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <yyi4pox25nl.wl@toshiba.co.jp>
Date:	Wed, 07 Mar 2007 10:39:42 +0900
From:	Tsutomu OWA <tsutomu.owa@...hiba.co.jp>
To:	mingo@...e.hu
Cc:	linuxppc-dev@...abs.org, linux-kernel@...r.kernel.org,
	tsutomu.owa@...hiba.co.jp
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@...hiba.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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ