qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 20/20] pci: remove goto in pci_bridge_filter().


From: Isaku Yamahata
Subject: [Qemu-devel] [PATCH 20/20] pci: remove goto in pci_bridge_filter().
Date: Thu, 12 Nov 2009 14:58:48 +0900

This patch removes ugly goto in pci_bridge_filter() by
introducing subfunction, pci_bridge_filter_nomap().

Signed-off-by: Isaku Yamahata <address@hidden>
---
 hw/pci.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/hw/pci.c b/hw/pci.c
index add919b..90bdf5e 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -691,6 +691,12 @@ static pcibus_t pci_bridge_get_limit(PCIDevice *bridge, 
uint8_t type)
     return limit;
 }
 
+static void pci_bridge_filter_nomap(pcibus_t *addr, pcibus_t *size)
+{
+    *addr = PCI_BAR_UNMAPPED;
+    *size = 0;
+}
+
 static void pci_bridge_filter(PCIDevice *d, pcibus_t *addr, pcibus_t *size,
                               uint8_t type)
 {
@@ -703,11 +709,13 @@ static void pci_bridge_filter(PCIDevice *d, pcibus_t 
*addr, pcibus_t *size,
 
         if (type & PCI_BASE_ADDRESS_SPACE_IO) {
             if (!(cmd & PCI_COMMAND_IO)) {
-                goto no_map;
+                pci_bridge_filter_nomap(addr, size);
+                return;
             }
         } else {
             if (!(cmd & PCI_COMMAND_MEMORY)) {
-                goto no_map;
+                pci_bridge_filter_nomap(addr, size);
+                return;
             }
         }
 
@@ -716,9 +724,7 @@ static void pci_bridge_filter(PCIDevice *d, pcibus_t *addr, 
pcibus_t *size,
     }
 
     if (base > limit) {
-    no_map:
-        *addr = PCI_BAR_UNMAPPED;
-        *size = 0;
+        pci_bridge_filter_nomap(addr, size);
     } else {
         *addr = base;
         *size = limit - base + 1;
-- 
1.6.0.2





reply via email to

[Prev in Thread] Current Thread [Next in Thread]