login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
May
»
5
Re: [patch] take tu->qlock with irqs disabled
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
[view in full thread]
From: Takashi Iwai
Subject:
Re: [patch] take tu->qlock with irqs disabled
Date: Wednesday, May 5, 2010 - 12:57 am
At Wed, 28 Apr 2010 10:29:14 +0200, Dan Carpenter wrote:
quoted text
> > We should disable irqs when we take the tu->qlock because it is used in > the irq handler. The only place that doesn't is > snd_timer_user_ccallback(). Most of the time snd_timer_user_ccallback() > is called with interrupts disabled but the the first ti->ccallback() > call in snd_timer_notify1() has interrupts enabled. > > This was caught by lockdep which generates the following message: > > > ================================= > > [ INFO: inconsistent lock state ] > > 2.6.34-rc5 #5 > > --------------------------------- > > inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. > > dolphin/4003 [HC1[1]:SC0[0]:HE0:SE1] takes: > > (&(&tu->qlock)->rlock){?.+...}, at: [<f84ec472>] snd_timer_user_tinterrupt+0x28/0x132 [snd_timer] > > {HARDIRQ-ON-W} state was registered at: > > [<c1048de9>] __lock_acquire+0x654/0x1482 > > [<c1049c73>] lock_acquire+0x5c/0x73 > > [<c125ac3e>] _raw_spin_lock+0x25/0x34 > > [<f84ec370>] snd_timer_user_ccallback+0x55/0x95 [snd_timer] > > [<f84ecc4b>] snd_timer_notify1+0x53/0xca [snd_timer] > > Reported-by: Stefan Richter <stefanr@s5r6.in-berlin.de> > Signed-off-by: Dan Carpenter <error27@gmail.com>
Thanks, applied now. Will be included in the next pull request. Takashi
quoted text
> diff --git a/sound/core/timer.c b/sound/core/timer.c > index 7394365..5040c7b 100644 > --- a/sound/core/timer.c > +++ b/sound/core/timer.c > @@ -1160,6 +1160,7 @@ static void snd_timer_user_ccallback(struct snd_timer_instance *timeri, > { > struct snd_timer_user *tu = timeri->callback_data; > struct snd_timer_tread r1; > + unsigned long flags; > > if (event >= SNDRV_TIMER_EVENT_START && > event <= SNDRV_TIMER_EVENT_PAUSE) > @@ -1169,9 +1170,9 @@ static void snd_timer_user_ccallback(struct snd_timer_instance *timeri, > r1.event = event; > r1.tstamp = *tstamp; > r1.val = resolution; > - spin_lock(&tu->qlock); > + spin_lock_irqsave(&tu->qlock, flags); > snd_timer_user_append_to_tqueue(tu, &r1); > - spin_unlock(&tu->qlock); > + spin_unlock_irqrestore(&tu->qlock, flags); > kill_fasync(&tu->fasync, SIGIO, POLL_IN); > wake_up(&tu->qchange_sleep); > } >
--
unsubscribe notice
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/
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
Messages in current thread:
sound/core/timer.c: inconsistent lock state reported for t ...
, Stefan Richter
, (Tue Apr 27, 12:56 pm)
[patch] take tu->qlock with irqs disabled
, Dan Carpenter
, (Wed Apr 28, 1:29 am)
Re: [patch] take tu->qlock with irqs disabled
, Takashi Iwai
, (Wed May 5, 12:57 am)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Michael Trimarchi
Re: [PATCH] VFS: make file->f_pos access atomic on 32bit arch
Miklos Szeredi
[patch 14/15] vfs: more path_permission() conversions
Serge E. Hallyn
Re: [RFC v5][PATCH 7/8] Infrastructure for shared objects
Bernd Schmidt
Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3
Takashi Iwai
[PATCH 2/2] input: Add LED support to Synaptics device
git
:
Junio C Hamano
Re: mingw, windows, crlf/lf, and git
Eyvind Bernhardsen
Re: Where has "git ls-remote" reference pattern matching gone?
Shawn O. Pearce
Re: Switching from CVS to GIT
Todd Zullinger
Re: [PATCH 2/2] send-email: rfc2047-quote subject lines with non-ascii characters
Santi Béjar
Re: How to use git-fmt-merge-msg?
linux-netdev
:
Ramkrishna Vepa
[net-2.6 PATCH 1/10] Neterion: New driver: Driver help file
Mark Anthony
invitation / inquiry
Ingo Molnar
Re: [PATCH 08/16] dma-debug: add core checking functions
David Miller
Re: [PATCH 1/3] f_phonet: dev_kfree_skb instead of dev_kfree_skb_any in TX callback
Sascha Hauer
[PATCH 03/12] fec: do not typedef struct types
git-commits-head
:
Linux Kernel Mailing List
amba: struct device - replace bus_id with dev_name(), dev_set_name()
Linux Kernel Mailing List
MIPS: Yosemite: Convert SMP startup lock to arch spinlock.
Linux Kernel Mailing List
ARM: S5PC100: IRQ and timer
Linux Kernel Mailing List
davinci: edma: clear interrupt status for interrupt enabled channels only
Linux Kernel Mailing List
x86, mm, kprobes: fault.c, simplify notify_page_fault()
openbsd-misc
:
Daniel A. Ramaley
Re: [semi-OT] Can anyone recommend an OpenBSD-compatible colour laser printer?
Matthias Kilian
Re: can't get vesa @ 1280x800 or nv
Tobias Ulmer
Re: Problem after upgrade 4.5 to 4.6: ERR M
Philip Guenther
Re: SIGCHLD and libpthread.so
J.C. Roberts
Re: [semi-OT] Can anyone recommend an OpenBSD-compatible colour laser printer?
Colocation donated by:
Syndicate