[alsa-devel] [PATCH 1/2] opti-93x: fix irq freeing after request_irq error
Krzysztof Helt
krzysztof.h1 at poczta.fm
Sun Nov 29 20:22:26 CET 2009
From: Krzysztof Helt <krzysztof.h1 at wp.pl>
Set snd_opti->irq value to -1 if the request_irq() fails to avoid
freeing the irq inside the snd_card_free().
Signed-off-by: Krzysztof Helt <krzysztof.h1 at wp.pl>
---
sound/isa/opti9xx/opti92x-ad1848.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
index 5cd5553..438c1da 100644
--- a/sound/isa/opti9xx/opti92x-ad1848.c
+++ b/sound/isa/opti9xx/opti92x-ad1848.c
@@ -688,9 +688,9 @@ static void snd_card_opti9xx_free(struct snd_card *card)
if (chip) {
#ifdef OPTi93X
struct snd_wss *codec = chip->codec;
- if (codec && codec->irq > 0) {
- disable_irq(codec->irq);
- free_irq(codec->irq, codec);
+ if (codec && chip->irq > 0) {
+ disable_irq(chip->irq);
+ free_irq(chip->irq, codec);
}
#endif
release_and_free_resource(chip->res_mc_base);
@@ -767,6 +767,7 @@ static int __devinit snd_opti9xx_probe(struct snd_card *card)
IRQF_DISABLED, DEV_NAME" - WSS", codec);
if (error < 0) {
snd_printk(KERN_ERR "opti9xx: can't grab IRQ %d\n", chip->irq);
+ chip->irq = -1;
return error;
}
#endif
--
1.6.4
----------------------------------------------------------------------
Codziennie 11 tys. ofert pracy!
Sprawdz: http://link.interia.pl/f2447
More information about the Alsa-devel
mailing list