xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] xen: Control-flow cleanup
@ 2010-03-24 11:51 Bastian Blank
  2010-03-24 17:53 ` Jeremy Fitzhardinge
  0 siblings, 1 reply; 3+ messages in thread
From: Bastian Blank @ 2010-03-24 11:51 UTC (permalink / raw)
  To: xen-devel

It is nice to have only one return, but it does not make it easier to
read or change.

Signed-off-by: Bastian Blank <waldi@debian.org>
---
 arch/x86/xen/pci.c |   52 +++++++++++++++++++++++++++-------------------------
 1 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
index 61e1ade..a83c74c 100644
--- a/arch/x86/xen/pci.c
+++ b/arch/x86/xen/pci.c
@@ -42,32 +42,34 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity)
 
 	printk(KERN_DEBUG "xen: --> irq=%d\n", irq);
 
-	if (irq >= 0) {
-		setup_gsi.gsi = gsi;
-		setup_gsi.triggering = (triggering == ACPI_EDGE_SENSITIVE ?
-				0 : 1);
-		setup_gsi.polarity = (polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
-
-		rc = HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
-		if (rc == -EEXIST)
-			printk(KERN_INFO "Already setup the GSI :%d\n", gsi);
-		else if (rc) {
-			printk(KERN_ERR "Failed to setup GSI :%d, err_code:%d\n",
-					gsi, rc);
-			BUG();
-		}
+	if (irq < 0)
+		return irq;
+
+	setup_gsi.gsi = gsi;
+	setup_gsi.triggering = (triggering == ACPI_EDGE_SENSITIVE ?
+			0 : 1);
+	setup_gsi.polarity = (polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
+
+	rc = HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, &setup_gsi);
+	if (rc == -EEXIST)
+		printk(KERN_INFO "Already setup the GSI :%d\n", gsi);
+	else if (rc) {
+		printk(KERN_ERR "Failed to setup GSI :%d, err_code:%d\n",
+				gsi, rc);
+		BUG();
+	}
 
-		map_irq.domid = DOMID_SELF;
-		map_irq.type = MAP_PIRQ_TYPE_GSI;
-		map_irq.index = gsi;
-		map_irq.pirq = irq;
+	map_irq.domid = DOMID_SELF;
+	map_irq.type = MAP_PIRQ_TYPE_GSI;
+	map_irq.index = gsi;
+	map_irq.pirq = irq;
 
-		rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
-		if (rc) {
-			printk(KERN_WARNING "xen map irq failed %d\n", rc);
-			irq = -1;
-		}
+	rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
+	if (rc) {
+		printk(KERN_WARNING "xen map irq failed %d\n", rc);
+		return -1;
 	}
+
 	return irq;
 }
 
-- 
1.7.0


-- 
Actual war is a very messy business.  Very, very messy business.
		-- Kirk, "A Taste of Armageddon", stardate 3193.0

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

* Re: [PATCH 1/3] xen: Control-flow cleanup
  2010-03-24 11:51 [PATCH 1/3] xen: Control-flow cleanup Bastian Blank
@ 2010-03-24 17:53 ` Jeremy Fitzhardinge
  2010-03-24 22:51   ` Bastian Blank
  0 siblings, 1 reply; 3+ messages in thread
From: Jeremy Fitzhardinge @ 2010-03-24 17:53 UTC (permalink / raw)
  To: Bastian Blank; +Cc: xen-devel

On 03/24/2010 04:51 AM, Bastian Blank wrote:
> It is nice to have only one return, but it does not make it easier to
> read or change.
>    

Thanks, I agree, but I tweaked it to use "goto out" to preserve the 
single return, and fixed some lines which can now be unwrapped with the 
shallower indent.

     J

> Signed-off-by: Bastian Blank<waldi@debian.org>
> ---
>   arch/x86/xen/pci.c |   52 +++++++++++++++++++++++++++-------------------------
>   1 files changed, 27 insertions(+), 25 deletions(-)
>
> diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
> index 61e1ade..a83c74c 100644
> --- a/arch/x86/xen/pci.c
> +++ b/arch/x86/xen/pci.c
> @@ -42,32 +42,34 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity)
>
>   	printk(KERN_DEBUG "xen: -->  irq=%d\n", irq);
>
> -	if (irq>= 0) {
> -		setup_gsi.gsi = gsi;
> -		setup_gsi.triggering = (triggering == ACPI_EDGE_SENSITIVE ?
> -				0 : 1);
> -		setup_gsi.polarity = (polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> -
> -		rc = HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi,&setup_gsi);
> -		if (rc == -EEXIST)
> -			printk(KERN_INFO "Already setup the GSI :%d\n", gsi);
> -		else if (rc) {
> -			printk(KERN_ERR "Failed to setup GSI :%d, err_code:%d\n",
> -					gsi, rc);
> -			BUG();
> -		}
> +	if (irq<  0)
> +		return irq;
> +
> +	setup_gsi.gsi = gsi;
> +	setup_gsi.triggering = (triggering == ACPI_EDGE_SENSITIVE ?
> +			0 : 1);
> +	setup_gsi.polarity = (polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
> +
> +	rc = HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi,&setup_gsi);
> +	if (rc == -EEXIST)
> +		printk(KERN_INFO "Already setup the GSI :%d\n", gsi);
> +	else if (rc) {
> +		printk(KERN_ERR "Failed to setup GSI :%d, err_code:%d\n",
> +				gsi, rc);
> +		BUG();
> +	}
>
> -		map_irq.domid = DOMID_SELF;
> -		map_irq.type = MAP_PIRQ_TYPE_GSI;
> -		map_irq.index = gsi;
> -		map_irq.pirq = irq;
> +	map_irq.domid = DOMID_SELF;
> +	map_irq.type = MAP_PIRQ_TYPE_GSI;
> +	map_irq.index = gsi;
> +	map_irq.pirq = irq;
>
> -		rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq,&map_irq);
> -		if (rc) {
> -			printk(KERN_WARNING "xen map irq failed %d\n", rc);
> -			irq = -1;
> -		}
> +	rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq,&map_irq);
> +	if (rc) {
> +		printk(KERN_WARNING "xen map irq failed %d\n", rc);
> +		return -1;
>   	}
> +
>   	return irq;
>   }
>
>    

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

* Re: [PATCH 1/3] xen: Control-flow cleanup
  2010-03-24 17:53 ` Jeremy Fitzhardinge
@ 2010-03-24 22:51   ` Bastian Blank
  0 siblings, 0 replies; 3+ messages in thread
From: Bastian Blank @ 2010-03-24 22:51 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: xen-devel

On Wed, Mar 24, 2010 at 10:53:13AM -0700, Jeremy Fitzhardinge wrote:
> Thanks, I agree, but I tweaked it to use "goto out" to preserve the  
> single return, and fixed some lines which can now be unwrapped with the  
> shallower indent.

What is the reason for this single return except that it makes the code
less readable?

Bastian

-- 
Totally illogical, there was no chance.
		-- Spock, "The Galileo Seven", stardate 2822.3

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

end of thread, other threads:[~2010-03-24 22:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-24 11:51 [PATCH 1/3] xen: Control-flow cleanup Bastian Blank
2010-03-24 17:53 ` Jeremy Fitzhardinge
2010-03-24 22:51   ` Bastian Blank

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).