* [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).