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]
Date:	Wed, 26 Mar 2008 12:46:53 +0100
From:	Mariusz Kozlowski <m.kozlowski@...land.pl>
To:	David Miller <davem@...emloft.net>
Cc:	torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org,
	sparclinux@...r.kernel.org
Subject: Re: sparc64 BUG: using smp_processor_id() in preemptible

Hello,

> From: David Miller <davem@...emloft.net>
> Date: Wed, 26 Mar 2008 04:16:26 -0700 (PDT)
> 
> > From: Mariusz Kozlowski <m.kozlowski@...land.pl>
> > Date: Wed, 26 Mar 2008 11:42:07 +0100
> > 
> > > I see lots of these messages on my ultra 60 box.
> > 
> > This is a sparc64 bug.
> 
> And this patch should fix it:
> 
> commit 69072f6e8e4bd4799d2a54e4ff8771d0657512c1
> Author: David S. Miller <davem@...emloft.net>
> Date:   Wed Mar 26 04:25:00 2008 -0700
> 
>     [SPARC64]: Fix __get_cpu_var in preemption-enabled area.
>     
>     Reported by Mariusz Kozlowski.
>     
>     Signed-off-by: David S. Miller <davem@...emloft.net>
> 
> diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c
> index 3f10fc9..a0f000b 100644
> --- a/arch/sparc64/mm/tlb.c
> +++ b/arch/sparc64/mm/tlb.c
> @@ -23,10 +23,11 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers) = { 0, };
>  
>  void flush_tlb_pending(void)
>  {
> -	struct mmu_gather *mp = &__get_cpu_var(mmu_gathers);
> +	struct mmu_gather *mp;
>  
>  	preempt_disable();
>  
> +	mp = &__get_cpu_var(mmu_gathers);
>  	if (mp->tlb_nr) {
>  		flush_tsb_user(mp);

Ok it worked. Now I get a bunch of these:

BUG: using smp_processor_id() in preemptible [00000000] code: pidof/2471
caller is flush_ptrace_access+0xc0/0x1a0
Call Trace:
 [000000000042ef78] flush_ptrace_access+0xc0/0x1a0
 [00000000004ae6e4] access_process_vm+0x1ac/0x220
 [0000000000508e38] proc_pid_cmdline+0x60/0x120
 [000000000050acb8] proc_info_read+0x80/0xe0
 [00000000004c6fcc] vfs_read+0x74/0x120
 [00000000004c73cc] sys_read+0x34/0x60
 [0000000000406314] linux_sparc_syscall32+0x3c/0x40
 [00000000f7df5fe4] 0xf7df5fec

	Mariusz
--
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