All of lore.kernel.org
 help / color / mirror / Atom feed
From: ville palo <ville.palo@vi64pa.net>
To: kernel-janitors@vger.kernel.org
Subject: Re: [KJ] [PATCH] oss/btaudio.c: Check ioremap return value and	free
Date: Tue, 05 Sep 2006 13:11:10 +0000	[thread overview]
Message-ID: <1157461870.7553.3.camel@localhost.localdomain> (raw)
In-Reply-To: <1157300808.6767.10.camel@localhost.localdomain>

On Tue, 2006-09-05 at 00:04 +0200, Domen Puncer wrote:
> On 03/09/06 19:26 +0300, ville palo wrote:
> > 
> > Check return value of the ioremap() and balance ioremap()
> > with iounmap().
> > 
> > Signed-off-by: Ville Palo <ville.palo@vi64pa.net>
> > 
> > diff --git a/sound/oss/btaudio.c b/sound/oss/btaudio.c
> > index 324a81f..9b1837f 100644
> > --- a/sound/oss/btaudio.c
> > +++ b/sound/oss/btaudio.c
> > @@ -927,6 +927,10 @@ static int __devinit btaudio_probe(struc
> >  	bta->mem  = pci_resource_start(pci_dev,0);
> >  	bta->mmio = ioremap(pci_resource_start(pci_dev,0),
> >  			    pci_resource_len(pci_dev,0));
> > +	if (!bta->mmio) {
> > +		rc = -EIO;
> > +		goto fail1;
> > +	}
> >  
> >  	bta->source     = 1;
> >  	bta->bits       = 8;
> > @@ -1019,6 +1023,7 @@ static int __devinit btaudio_probe(struc
> >  		unregister_sound_dsp(bta->dsp_digital);
> >   fail2:
> >          free_irq(bta->irq,bta);	
> > +	iounmap(bta->mmio);
> 
> Why here?
> This won't work if ie. request_irq fails.
> 

Thanks, you are right. Here's the corrected patch


Signed-off-by: Ville Palo <ville.palo@vi64pa.net>

diff --git a/sound/oss/btaudio.c b/sound/oss/btaudio.c
index 324a81f..d6c21b0 100644
--- a/sound/oss/btaudio.c
+++ b/sound/oss/btaudio.c
@@ -927,6 +927,10 @@ static int __devinit btaudio_probe(struc
 	bta->mem  = pci_resource_start(pci_dev,0);
 	bta->mmio = ioremap(pci_resource_start(pci_dev,0),
 			    pci_resource_len(pci_dev,0));
+	if (!bta->mmio) {
+		rc = -EIO;
+		goto fail1;
+	}
 
 	bta->source     = 1;
 	bta->bits       = 8;
@@ -970,7 +974,7 @@ static int __devinit btaudio_probe(struc
 			      "btaudio",(void *)bta)) < 0) {
 		printk(KERN_WARNING
 		       "btaudio: can't request irq (rc=%d)\n",rc);
-		goto fail1;
+		goto fail2;
 	}
 
 	/* register devices */
@@ -980,7 +984,7 @@ static int __devinit btaudio_probe(struc
 		if (rc < 0) {
 			printk(KERN_WARNING
 			       "btaudio: can't register digital dsp (rc=%d)\n",rc);
-			goto fail2;
+			goto fail3;
 		}
 		printk(KERN_INFO "btaudio: registered device dsp%d [digital]\n",
 		       bta->dsp_digital >> 4);
@@ -991,7 +995,7 @@ static int __devinit btaudio_probe(struc
 		if (rc < 0) {
 			printk(KERN_WARNING
 			       "btaudio: can't register analog dsp (rc=%d)\n",rc);
-			goto fail3;
+			goto fail4;
 		}
 		printk(KERN_INFO "btaudio: registered device dsp%d [analog]\n",
 		       bta->dsp_analog >> 4);
@@ -999,7 +1003,7 @@ static int __devinit btaudio_probe(struc
 		if (rc < 0) {
 			printk(KERN_WARNING
 			       "btaudio: can't register mixer (rc=%d)\n",rc);
-			goto fail4;
+			goto fail5;
 		}
 		printk(KERN_INFO "btaudio: registered device mixer%d\n",
 		       bta->mixer_dev >> 4);
@@ -1012,13 +1016,15 @@ static int __devinit btaudio_probe(struc
 	pci_set_drvdata(pci_dev,bta);
         return 0;
 
- fail4:
+ fail5:
 	unregister_sound_dsp(bta->dsp_analog);
- fail3:
+ fail4:
 	if (digital)
 		unregister_sound_dsp(bta->dsp_digital);
- fail2:
-        free_irq(bta->irq,bta);	
+ fail3:	
+	free_irq(bta->irq,bta);
+ fail2:        
+	iounmap(bta->mmio);
  fail1:
 	kfree(bta);
  fail0:
@@ -1047,6 +1053,8 @@ static void __devexit btaudio_remove(str
 	}
 
 	/* free resources */
+	if (bta->mmio)
+		iounmap(bta->mmio);
 	free_buffer(bta);
         free_irq(bta->irq,bta);
 	release_mem_region(pci_resource_start(pci_dev,0),


_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/kernel-janitors

      parent reply	other threads:[~2006-09-05 13:11 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-03 16:26 [KJ] [PATCH] oss/btaudio.c: Check ioremap return value and free ville palo
2006-09-04 22:04 ` Domen Puncer
2006-09-05 13:11 ` ville palo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1157461870.7553.3.camel@localhost.localdomain \
    --to=ville.palo@vi64pa.net \
    --cc=kernel-janitors@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.