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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <44EDAD41.9080204@FreeBSD.org>
Date:	Thu, 24 Aug 2006 15:44:33 +0200
From:	Suleiman Souhlal <ssouhlal@...eBSD.org>
To:	Arjan van de Ven <arjan@...radead.org>
CC:	Andi Kleen <ak@...e.de>, Edward Falk <efalk@...gle.com>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Fix x86_64 _spin_lock_irqsave()

Arjan van de Ven wrote:
> On Thu, 2006-08-24 at 14:33 +0200, Suleiman Souhlal wrote:
> 
>>Andi Kleen wrote:
>>
>>>On Thursday 24 August 2006 13:04, Suleiman Souhlal wrote:
>>>
>>>
>>>>Andi Kleen wrote:
>>>>
>>>>
>>>>>Edward Falk <efalk@...gle.com> writes:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Add spin_lock_string_flags and _raw_spin_lock_flags() to
>>>>>>asm-x86_64/spinlock.h so that _spin_lock_irqsave() has the same
>>>>>>semantics on x86_64 as it does on i386 and does *not* have interrupts
>>>>>>disabled while it is waiting for the lock.
>>>>>
>>>>>
>>>>>Did it fix anything for you?
>>>>
>>>>I think this was to work around the fact that some buggy drivers try to 
>>>>grab spinlocks without disabling interrupts when they should, which 
>>>>would cause deadlocks when trying to rendez-vous every cpu via IPIs.
>>>
>>>
>>>That doesn't help them at all because they could then deadlock later.
>>
>>If the driver uses spin_lock() when it knows that the hardware won't 
>>generate the interrupt that would need to be masked, and 
>>spin_lock_irqsave() elsewhere, there shouldn't be any deadlocks unless 
>>IPIs are involved.
> 
> 
> this still is bad practice and lockdep will also scream about it

Great.

> Can you point at ANY place that does this? 

 From a quick inspection, drivers/net/forcedeth.c appears to do this.

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