All of lore.kernel.org
 help / color / mirror / Atom feed
* [KJ] [PATCH] drivers/parisc/superio.c: check return values of
@ 2006-07-10 23:41 Richard
  2006-07-11 15:32 ` Kyle McMartin
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Richard @ 2006-07-10 23:41 UTC (permalink / raw)
  To: kernel-janitors

Check return values of request region and act accordingly

Signed-off-by: Richard van Berkum <h.vanberkum at chello.nl> 

---

My second attempt to correct some request_region code. Any input is
welcome.

 drivers/parisc/superio.c |   31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)


--- linux-2.6/drivers/parisc/superio.c	2006-07-06 16:58:12.083348600 +0200
+++ mytree/drivers/parisc/superio.c	2006-07-11 03:02:04.444958048 +0200
@@ -189,9 +189,20 @@ superio_init(struct pci_dev *pcidev)
 	sio->acpi_base &= ~1;
 	printk(KERN_INFO PFX "ACPI at 0x%x\n", sio->acpi_base);
 
-	request_region (IC_PIC1, 0x1f, "pic1");
-	request_region (IC_PIC2, 0x1f, "pic2");
-	request_region (sio->acpi_base, 0x1f, "acpi");
+	if (!(request_region (IC_PIC1, 0x1f, "pic1"))) {
+		printk(KERN_ERR "can't get I/O %x\n", IC_PIC1);
+		goto err1;
+	}
+	
+	if(!(request_region (IC_PIC2, 0x1f, "pic2"))) {
+		printk(KERN_ERR "can't get I/O %x\n", IC_PIC2);
+		goto err2;
+	}
+	
+	if(!(request_region (sio->acpi_base, 0x1f, "acpi"))) {
+		printk(KERN_ERR "can't get I/O %x\n", sio->acpi_base);
+		goto err3;
+	}
 
 	/* Enable the legacy I/O function */
 	pci_read_config_word (pdev, PCI_COMMAND, &word);
@@ -276,10 +287,22 @@ superio_init(struct pci_dev *pcidev)
 
 		printk(KERN_ERR PFX "could not get irq\n");
 		BUG();
-		return;
+		
+		/*Free resources previously requested*/
+		goto err3;
 	}
 
 	sio->suckyio_irq_enabled = 1;
+
+	return;
+
+
+err3:	release_region(IC_PIC2, 0x1f);
+
+err2:	release_region(IC_PIC1, 0x1f);
+
+err1:	return; 
+
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87560_LIO, superio_init);
 
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [KJ] [PATCH] drivers/parisc/superio.c: check return values of
  2006-07-10 23:41 [KJ] [PATCH] drivers/parisc/superio.c: check return values of Richard
@ 2006-07-11 15:32 ` Kyle McMartin
  2006-07-11 15:44 ` Randy.Dunlap
  2006-07-11 22:02 ` Richard
  2 siblings, 0 replies; 4+ messages in thread
From: Kyle McMartin @ 2006-07-11 15:32 UTC (permalink / raw)
  To: kernel-janitors

On Tue, Jul 11, 2006 at 04:04:42AM +0200, Richard wrote:
> Check return values of request region and act accordingly
> 
> -	request_region (IC_PIC1, 0x1f, "pic1");
> -	request_region (IC_PIC2, 0x1f, "pic2");
> -	request_region (sio->acpi_base, 0x1f, "acpi");

This function only runs if it's in a parisc machine with a superio
device. It's virtually impossible for this to fail. I've made it
just BUG_ON(!request_region(...)); instead of bothering with any
kind of error handling.
_______________________________________________
Kernel-janitors mailing list
Kernel-janitors@lists.osdl.org
https://lists.osdl.org/mailman/listinfo/kernel-janitors

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [KJ] [PATCH] drivers/parisc/superio.c: check return values of
  2006-07-10 23:41 [KJ] [PATCH] drivers/parisc/superio.c: check return values of Richard
  2006-07-11 15:32 ` Kyle McMartin
@ 2006-07-11 15:44 ` Randy.Dunlap
  2006-07-11 22:02 ` Richard
  2 siblings, 0 replies; 4+ messages in thread
From: Randy.Dunlap @ 2006-07-11 15:44 UTC (permalink / raw)
  To: kernel-janitors

On Tue, 11 Jul 2006 04:04:42 +0200 Richard wrote:

> Check return values of request region and act accordingly
> 
> My second attempt to correct some request_region code. Any input is
> welcome.

OK...

>  drivers/parisc/superio.c |   31 +++++++++++++++++++++++++++----
>  1 file changed, 27 insertions(+), 4 deletions(-)
> 
> 
> --- linux-2.6/drivers/parisc/superio.c	2006-07-06 16:58:12.083348600 +0200
> +++ mytree/drivers/parisc/superio.c	2006-07-11 03:02:04.444958048 +0200
> @@ -189,9 +189,20 @@ superio_init(struct pci_dev *pcidev)
>  	sio->acpi_base &= ~1;
>  	printk(KERN_INFO PFX "ACPI at 0x%x\n", sio->acpi_base);
>  
> -	request_region (IC_PIC1, 0x1f, "pic1");
> -	request_region (IC_PIC2, 0x1f, "pic2");
> -	request_region (sio->acpi_base, 0x1f, "acpi");
> +	if (!(request_region (IC_PIC1, 0x1f, "pic1"))) {

Coding style:  no extra parens (like after !).
	no space after function name.

> +		printk(KERN_ERR "can't get I/O %x\n", IC_PIC1);
> +		goto err1;
> +	}
> +	
> +	if(!(request_region (IC_PIC2, 0x1f, "pic2"))) {

space after "if".  drop "!()" parens.
no space after function name.

> +		printk(KERN_ERR "can't get I/O %x\n", IC_PIC2);
> +		goto err2;
> +	}
> +	
> +	if(!(request_region (sio->acpi_base, 0x1f, "acpi"))) {

ditto

> +		printk(KERN_ERR "can't get I/O %x\n", sio->acpi_base);
> +		goto err3;
> +	}
>  
>  	/* Enable the legacy I/O function */
>  	pci_read_config_word (pdev, PCI_COMMAND, &word);
> @@ -276,10 +287,22 @@ superio_init(struct pci_dev *pcidev)
>  
>  		printk(KERN_ERR PFX "could not get irq\n");
>  		BUG();
> -		return;
> +		
> +		/*Free resources previously requested*/

See above /* comment for spacing.

> +		goto err3;
>  	}
>  
>  	sio->suckyio_irq_enabled = 1;
> +
> +	return;
> +
> +
> +err3:	release_region(IC_PIC2, 0x1f);
> +
> +err2:	release_region(IC_PIC1, 0x1f);
> +
> +err1:	return; 
> +
>  }

Put labels and statements on separate lines.

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [KJ] [PATCH] drivers/parisc/superio.c: check return values of
  2006-07-10 23:41 [KJ] [PATCH] drivers/parisc/superio.c: check return values of Richard
  2006-07-11 15:32 ` Kyle McMartin
  2006-07-11 15:44 ` Randy.Dunlap
@ 2006-07-11 22:02 ` Richard
  2 siblings, 0 replies; 4+ messages in thread
From: Richard @ 2006-07-11 22:02 UTC (permalink / raw)
  To: kernel-janitors

Randy.Dunlap wrote:

Hello Randy,


>> +	if (!(request_region (IC_PIC1, 0x1f, "pic1"))) {
> 
> Coding style:  no extra parens (like after !).
> 	no space after function name.

The space must be a mistake. About the parens I didn't know. Thanks

> 
>> +		printk(KERN_ERR "can't get I/O %x\n", IC_PIC1);
>> +		goto err1;
>> +	}
>> +	
>> +	if(!(request_region (IC_PIC2, 0x1f, "pic2"))) {
> 
> space after "if".  drop "!()" parens.
> no space after function name.

Clear :)


>>  	/* Enable the legacy I/O function */
>>  	pci_read_config_word (pdev, PCI_COMMAND, &word);
>> @@ -276,10 +287,22 @@ superio_init(struct pci_dev *pcidev)
>>  
>>  		printk(KERN_ERR PFX "could not get irq\n");
>>  		BUG();
>> -		return;
>> +		
>> +		/*Free resources previously requested*/
> 
> See above /* comment for spacing.

I see for clarity I gues. I'll try to remember.



>> +err1:	return; 
>> +
>>  }
> 
> Put labels and statements on separate lines.

Ok. That was some good input on coding style.Thanks, but it's no use to continue on this with regard to the previous post
> 
> ---
> ~Randy
> 

Richard


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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-07-11 22:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-10 23:41 [KJ] [PATCH] drivers/parisc/superio.c: check return values of Richard
2006-07-11 15:32 ` Kyle McMartin
2006-07-11 15:44 ` Randy.Dunlap
2006-07-11 22:02 ` Richard

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.