Skip to contentSkip to conversation

oss: msnd: check request_region() return value

PATCH Applied Kulikov Vasiliy 3 participants 5 messages Jul 28, 2010 – Jul 29, 2010

Subsystems (2)

v1 of 2 Applied Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 9/10 oss: msnd: check request_region() return value

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

---
 sound/oss/msnd_pinnacle.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
sound/oss/msnd_pinnacle.c +6 -2
index bfaac5f..cd70b9a 100644
@@ -1400,9 +1400,13 @@ static int __init attach_multisound(void)
 		printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", dev.irq);
 		return err;
 	}
-	request_region(dev.io, dev.numio, dev.name);
+	if (request_region(dev.io, dev.numio, dev.name) == NULL) {
+		free_irq(dev.irq, &dev);
+		return -ENOMEM;
+	}
 
-        if ((err = dsp_full_reset()) < 0) {
+	err = dsp_full_reset();
+	if (err < 0) {
 		release_region(dev.io, dev.numio);
 		free_irq(dev.irq, &dev);
 		return err;
Signature · 1 line
1.7.0.4
#1 lore raw
Quoted 12 lines · Kulikov Vasiliy

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

---
 sound/oss/msnd_pinnacle.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
sound/oss/msnd_pinnacle.c +0 -0
index bfaac5f..cd70b9a 100644

sound/oss/msnd_pinnacle.c static int __init attach_multisound(void) · line 1403

Quoted 4 lines
sound/oss/msnd_pinnacle.c +0 -1
@@ -1400,9 +1400,13 @@ static int __init attach_multisound(void)
 		printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", dev.irq);
 		return err;
 	}
-	request_region(dev.io, dev.numio, dev.name);

This should be -EBUSY as well. The same for "[PATCH 06/10] ALSA: msnd:
check request_region() return value"

Another way to write that would be:

- request_region(dev.io, dev.numio, dev.name);
+ err = request_region(dev.io, dev.numio, dev.name);
+ if (err) {
+ free_irq(dev.irq, &dev);
+ return err;
+ }

regards,
dan carpenter

Quoted 4 lines
sound/oss/msnd_pinnacle.c +4 -0
+	if (request_region(dev.io, dev.numio, dev.name) == NULL) {
+		free_irq(dev.irq, &dev);
+		return -ENOMEM;
+	}
#2 lore raw
Quoted 5 lines · Dan Carpenter

This should be -EBUSY as well. The same for "[PATCH 06/10] ALSA: msnd:
check request_region() return value"

Another way to write that would be:

Gar. I was thinking of request_resource(). request_region() returns a pointer of course.

But still the return code should probably be -EBUSY. Resource conflicts are more likely than allocation failures.

regards,
dan carpenter

Quoted 14 lines
sound/oss/msnd_pinnacle.c +5 -1
-	request_region(dev.io, dev.numio, dev.name);
+	err = request_region(dev.io, dev.numio, dev.name);
+	if (err) {
+		free_irq(dev.irq, &dev);
+		return err;
+	}

regards,
dan carpenter

Quoted 4 lines
sound/oss/msnd_pinnacle.c +4 -0
+	if (request_region(dev.io, dev.numio, dev.name) = NULL) {
+		free_irq(dev.irq, &dev);
+		return -ENOMEM;
+	}
#3 lore raw

At Wed, 28 Jul 2010 23:20:31 +0200,

Quoted 5 lines · Dan Carpenter
Quoted 3 lines · Dan Carpenter

This should be -EBUSY as well. The same for "[PATCH 06/10] ALSA: msnd:
check request_region() return value"

Quoted 8 lines
Quoted 2 lines

Another way to write that would be:

Gar. I was thinking of request_resource(). request_region() returns a pointer of course.

But still the return code should probably be -EBUSY. Resource conflicts are more likely than allocation failures.

Agreed.

Kulikov, could you rewrite the patches with -EBUSY?

thanks,

Takashi

Quoted 19 lines

regards,
dan carpenter

Quoted 14 lines
sound/oss/msnd_pinnacle.c +5 -1
-	request_region(dev.io, dev.numio, dev.name);
+	err = request_region(dev.io, dev.numio, dev.name);
+	if (err) {
+		free_irq(dev.irq, &dev);
+		return err;
+	}

regards,
dan carpenter

Quoted 4 lines
sound/oss/msnd_pinnacle.c +4 -0
+	if (request_region(dev.io, dev.numio, dev.name) == NULL) {
+		free_irq(dev.irq, &dev);
+		return -ENOMEM;
+	}
#4 lore raw
Quoted 13 lines · Takashi Iwai

At Wed, 28 Jul 2010 23:20:31 +0200,

Quoted 11 lines · Dan Carpenter
Quoted 5 lines · Dan Carpenter

This should be -EBUSY as well. The same for "[PATCH 06/10] ALSA: msnd:
check request_region() return value"

Another way to write that would be:

Gar. I was thinking of request_resource(). request_region() returns a pointer of course.

Quoted 6 lines
Quoted 2 lines

But still the return code should probably be -EBUSY. Resource conflicts are more likely than allocation failures.

Agreed.

Kulikov, could you rewrite the patches with -EBUSY?

No problem, patches are coming.

Quoted 25 lines

thanks,

Takashi

Quoted 19 lines

regards,
dan carpenter

Quoted 14 lines
sound/oss/msnd_pinnacle.c +5 -1
-	request_region(dev.io, dev.numio, dev.name);
+	err = request_region(dev.io, dev.numio, dev.name);
+	if (err) {
+		free_irq(dev.irq, &dev);
+		return err;
+	}

regards,
dan carpenter

Quoted 4 lines
sound/oss/msnd_pinnacle.c +4 -0
+	if (request_region(dev.io, dev.numio, dev.name) == NULL) {
+		free_irq(dev.irq, &dev);
+		return -ENOMEM;
+	}