Skip to contentSkip to conversation

ALSA: msnd: check request_region() return value

PATCH Applied Kulikov Vasiliy 2 participants 2 messages Jul 29, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 6/10 ALSA: msnd: check request_region() return value

request_region() may fail, if so return -EBUSY.

---
 sound/isa/msnd/msnd_pinnacle.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
sound/isa/msnd/msnd_pinnacle.c +4 -1
index 60b6abd..ed42f8e 100644
@@ -549,7 +549,10 @@ static int __devinit snd_msnd_attach(struct snd_card *card)
 		printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", chip->irq);
 		return err;
 	}
-	request_region(chip->io, DSP_NUMIO, card->shortname);
+	if (request_region(chip->io, DSP_NUMIO, card->shortname) == NULL) {
+		free_irq(chip->irq, chip);
+		return -EBUSY;
+	}
 
 	if (!request_mem_region(chip->base, BUFFSIZE, card->shortname)) {
 		printk(KERN_ERR LOGNAME
Signature · 1 line
1.7.0.4
Applied
#1 lore raw

At Thu, 29 Jul 2010 14:45:24 +0400,

Quoted 4 lines · Kulikov Vasiliy

request_region() may fail, if so return -EBUSY.

Thanks, applied both patches now.

Takashi

Quoted 23 lines
---
 sound/isa/msnd/msnd_pinnacle.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
sound/isa/msnd/msnd_pinnacle.c +4 -1
index 60b6abd..ed42f8e 100644
@@ -549,7 +549,10 @@ static int __devinit snd_msnd_attach(struct snd_card *card)
 		printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", chip->irq);
 		return err;
 	}
-	request_region(chip->io, DSP_NUMIO, card->shortname);
+	if (request_region(chip->io, DSP_NUMIO, card->shortname) = NULL) {
+		free_irq(chip->irq, chip);
+		return -EBUSY;
+	}
 
 	if (!request_mem_region(chip->base, BUFFSIZE, card->shortname)) {
 		printk(KERN_ERR LOGNAME
Signature · 1 line
1.7.0.4