mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
parport: make lockdep happy with waitlist_lock
parport_unregister_device() should never be used when interrupts are enabled in hardware and irq handler is registered so there is no need to disable interrupts when using waitlist_lock. But there is no way to explain this subtle semantics to lockdep analyzer. So disable interrupts here too to simplify things. The price is negligible. Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0766d20fdb
commit
cbeb4b7ad5
@ -678,7 +678,7 @@ void parport_unregister_device(struct pardevice *dev)
|
||||
|
||||
/* Make sure we haven't left any pointers around in the wait
|
||||
* list. */
|
||||
spin_lock (&port->waitlist_lock);
|
||||
spin_lock_irq(&port->waitlist_lock);
|
||||
if (dev->waitprev || dev->waitnext || port->waithead == dev) {
|
||||
if (dev->waitprev)
|
||||
dev->waitprev->waitnext = dev->waitnext;
|
||||
@ -689,7 +689,7 @@ void parport_unregister_device(struct pardevice *dev)
|
||||
else
|
||||
port->waittail = dev->waitprev;
|
||||
}
|
||||
spin_unlock (&port->waitlist_lock);
|
||||
spin_unlock_irq(&port->waitlist_lock);
|
||||
|
||||
kfree(dev->state);
|
||||
kfree(dev);
|
||||
|
Loading…
Reference in New Issue
Block a user