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

[Xen-changelog] [qemu-xen-unstable] qemu-xen: passthrough, add PT_LOG_DEV



commit 65b27b1dd6f205835aa8174031eea057c75f8afb
Author: Jean Guyader <jean.guyader@xxxxxxxxxxxxx>
Date:   Thu Dec 1 18:23:34 2011 +0000

    qemu-xen: passthrough, add PT_LOG_DEV
    
    Cleanup.
    
    Signed-off-by: Jean Guyader <jean.guyader@xxxxxxxxxxxxx>
---
 hw/pass-through.c |   97 +++++++++++++++++++----------------------------------
 hw/pass-through.h |    5 +++
 hw/pt-graphics.c  |   14 ++++---
 3 files changed, 48 insertions(+), 68 deletions(-)

diff --git a/hw/pass-through.c b/hw/pass-through.c
index bd46b2d..919937f 100644
--- a/hw/pass-through.c
+++ b/hw/pass-through.c
@@ -1475,37 +1475,30 @@ static void pt_pci_write_config(PCIDevice *d, uint32_t 
address, uint32_t val,
     int ret = 0;
 
 #ifdef PT_DEBUG_PCI_CONFIG_ACCESS
-    PT_LOG("[%02x:%02x.%x]: address=%04x val=0x%08x len=%d\n",
-       pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-       address, val, len);
+    PT_LOG_DEV(d, "address=%04x val=0x%08x len=%d\n", address, val, len);
 #endif
 
     /* check offset range */
     if (address >= 0xFF)
     {
-        PT_LOG("Error: Failed to write register with offset exceeding FFh. "
-            "[%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-            address, len);
+        PT_LOG_DEV(d, "Error: Failed to write register with offset exceeding 
FFh. "
+            "[Offset:%02xh][Length:%d]\n", address, len);
         goto exit;
     }
 
     /* check write size */
     if ((len != 1) && (len != 2) && (len != 4))
     {
-        PT_LOG("Error: Failed to write register with invalid access length. "
-            "[%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-            address, len);
+        PT_LOG_DEV(d, "Error: Failed to write register with invalid access 
length. "
+            "[Offset:%02xh][Length:%d]\n", address, len);
         goto exit;
     }
 
     /* check offset alignment */
     if (address & (len-1))
     {
-        PT_LOG("Error: Failed to write register with invalid access size "
-            "alignment. [%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
+        PT_LOG_DEV(d, "Error: Failed to write register with invalid access 
size "
+            "alignment. [Offset:%02xh][Length:%d]\n",
             address, len);
         goto exit;
     }
@@ -1515,10 +1508,8 @@ static void pt_pci_write_config(PCIDevice *d, uint32_t 
address, uint32_t val,
     if ((index >= 0) && (val > 0 && val < PT_BAR_ALLF) &&
         (assigned_device->bases[index].bar_flag == PT_BAR_FLAG_UNUSED))
     {
-        PT_LOG("Warning: Guest attempt to set address to unused Base Address "
-            "Register. [%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-            address, len);
+        PT_LOG_DEV(d, "Warning: Guest attempt to set address to unused Base 
Address "
+            "Register. [Offset:%02xh][Length:%d]\n", address, len);
     }
 
     /* check power state transition flags */
@@ -1537,10 +1528,8 @@ static void pt_pci_write_config(PCIDevice *d, uint32_t 
address, uint32_t val,
         if (reg_grp->grp_type == GRP_TYPE_HARDWIRED)
         {
             /* ignore silently */
-            PT_LOG("Warning: Access to 0 Hardwired register. "
-                "[%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-                pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-                address, len);
+            PT_LOG_DEV(d, "Warning: Access to 0 Hardwired register. "
+                "[Offset:%02xh][Length:%d]\n", address, len);
             goto exit;
         }
     }
@@ -1668,30 +1657,24 @@ static uint32_t pt_pci_read_config(PCIDevice *d, 
uint32_t address, int len)
     /* check offset range */
     if (address >= 0xFF)
     {
-        PT_LOG("Error: Failed to read register with offset exceeding FFh. "
-            "[%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-            address, len);
+        PT_LOG_DEV(d, "Error: Failed to read register with offset exceeding 
FFh. "
+            "[Offset:%02xh][Length:%d]\n", address, len);
         goto exit;
     }
 
     /* check read size */
     if ((len != 1) && (len != 2) && (len != 4))
     {
-        PT_LOG("Error: Failed to read register with invalid access length. "
-            "[%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-            address, len);
+        PT_LOG_DEV(d, "Error: Failed to read register with invalid access 
length. "
+            "[Offset:%02xh][Length:%d]\n", address, len);
         goto exit;
     }
 
     /* check offset alignment */
     if (address & (len-1))
     {
-        PT_LOG("Error: Failed to read register with invalid access size "
-            "alignment. [%02x:%02x.%x][Offset:%02xh][Length:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-            address, len);
+        PT_LOG_DEV(d, "Error: Failed to read register with invalid access size 
"
+            "alignment. [Offset:%02xh][Length:%d]\n", address, len);
         goto exit;
     }
 
@@ -1803,9 +1786,7 @@ static uint32_t pt_pci_read_config(PCIDevice *d, uint32_t 
address, int len)
 exit:
 
 #ifdef PT_DEBUG_PCI_CONFIG_ACCESS
-    PT_LOG("[%02x:%02x.%x]: address=%04x val=0x%08x len=%d\n",
-       pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-       address, val, len);
+    PT_LOG_DEV(d, "address=%04x val=0x%08x len=%d\n", address, val, len);
 #endif
 
     return val;
@@ -2181,9 +2162,8 @@ static void pt_bar_mapping_one(struct pt_dev *ptdev, int 
bar, int io_enable,
     ret = pt_chk_bar_overlap(dev->bus, dev->devfn,
                     r_addr, r_size, r->type);
     if (ret > 0)
-        PT_LOG("Warning: ptdev[%02x:%02x.%x][Region:%d][Address:%08xh]"
-            "[Size:%08xh] is overlapped.\n", pci_bus_num(dev->bus),
-            PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), bar, r_addr, r_size);
+        PT_LOG_DEV(dev, "Warning: [Region:%d][Address:%08xh]"
+            "[Size:%08xh] is overlapped.\n", bar, r_addr, r_size);
 
     /* check whether we need to update the mapping or not */
     if (r_addr != ptdev->bases[bar].e_physbase)
@@ -2217,9 +2197,8 @@ static int check_power_state(struct pt_dev *ptdev)
 
     if (pm_state->req_state != cur_state)
     {
-        PT_LOG("Error: Failed to change power state. "
-            "[%02x:%02x.%x][requested state:%d][current state:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
+        PT_LOG_DEV(d, "Error: Failed to change power state. "
+            "[requested state:%d][current state:%d]\n",
             pm_state->req_state, cur_state);
         return -1;
     }
@@ -2379,9 +2358,8 @@ static void pt_config_restore(struct pt_dev *ptdev)
             }
 
 #ifdef PT_DEBUG_PCI_CONFIG_ACCESS
-            PT_LOG("[%02x:%02x.%x]: address=%04x val=0x%08x len=%d\n",
-                pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
-                real_offset, val, reg->size);
+            PT_LOG_DEV(d, "address=%04x val=0x%08x len=%d\n",
+                    real_offset, val, reg->size);
 #endif
 
             ret = pci_write_block(ptdev->pci_dev, real_offset,
@@ -2426,9 +2404,8 @@ static int pt_init_pci_config(struct pt_dev *ptdev)
     PCIDevice *d = &ptdev->dev;
     int ret = 0;
 
-    PT_LOG("Reinitialize PCI configuration registers "
-        "due to power state transition with internal reset. [%02x:%02x.%x]\n",
-        pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn));
+    PT_LOG_DEV(d, "Reinitialize PCI configuration registers "
+        "due to power state transition with internal reset.\n");
 
     /* restore a part of I/O device register */
     pt_config_restore(ptdev);
@@ -3493,10 +3470,9 @@ static int pt_bar_reg_write(struct pt_dev *ptdev,
             if ((last_addr >= 0x10000) &&
                 (cfg_entry->data != (PT_BAR_ALLF & ~bar_ro_mask)))
             {
-                PT_LOG("Warning: Guest attempt to set Base Address "
+                PT_LOG_DEV(d, "Warning: Guest attempt to set Base Address "
                     "over the 64KB. "
-                    
"[%02x:%02x.%x][Offset:%02xh][Address:%08xh][Size:%08xh]\n",
-                    pci_bus_num(d->bus), PCI_SLOT(d->devfn), 
PCI_FUNC(d->devfn),
+                    "[Offset:%02xh][Address:%08xh][Size:%08xh]\n",
                     reg->offset, new_addr, r_size);
             }
             /* just remove mapping */
@@ -3509,11 +3485,10 @@ static int pt_bar_reg_write(struct pt_dev *ptdev,
         {
             if (cfg_entry->data != (PT_BAR_ALLF & ~bar_ro_mask))
             {
-                PT_LOG("Warning: Guest attempt to set high MMIO Base Address. "
+                PT_LOG_DEV(d, "Warning: Guest attempt to set high MMIO Base 
Address. "
                     "Ignore mapping. "
-                    "[%02x:%02x.%x][Offset:%02xh][High Address:%08xh]\n",
-                    pci_bus_num(d->bus), PCI_SLOT(d->devfn),
-                    PCI_FUNC(d->devfn), reg->offset, cfg_entry->data);
+                    "[Offset:%02xh][High Address:%08xh]\n",
+                    reg->offset, cfg_entry->data);
             }
             /* clear lower address */
             d->io_regions[index-1].addr = -1;
@@ -3678,9 +3653,8 @@ static int pt_pmcsr_reg_write(struct pt_dev *ptdev,
     if ((pm_state->req_state != 0) &&
         (pm_state->cur_state > pm_state->req_state))
     {
-        PT_LOG("Error: Invalid power transition. "
-            "[%02x:%02x.%x][requested state:%d][current state:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
+        PT_LOG_DEV(d, "Error: Invalid power transition. "
+            "[requested state:%d][current state:%d]\n",
             pm_state->req_state, pm_state->cur_state);
 
         return 0;
@@ -3691,9 +3665,8 @@ static int pt_pmcsr_reg_write(struct pt_dev *ptdev,
         || ((pm_state->req_state == 2) &&
         !(pm_state->pmc_field & PCI_PM_CAP_D2)))
     {
-        PT_LOG("Error: Invalid power transition. "
-            "[%02x:%02x.%x][requested state:%d][current state:%d]\n",
-            pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn),
+        PT_LOG_DEV(d, "Error: Invalid power transition. "
+            "[requested state:%d][current state:%d]\n",
             pm_state->req_state, pm_state->cur_state);
 
         return 0;
diff --git a/hw/pass-through.h b/hw/pass-through.h
index bb31acd..884139c 100644
--- a/hw/pass-through.h
+++ b/hw/pass-through.h
@@ -31,8 +31,13 @@
 
 #ifdef PT_LOGGING_ENABLED
 #define PT_LOG(_f, _a...)   fprintf(logfile, "%s: " _f, __func__, ##_a)
+#define PT_LOG_DEV(_dev, _f, _a...)   fprintf(logfile, "%s: [%02x:%02x:%01x] " 
_f, __func__,    \
+                                              pci_bus_num((_dev)->bus),        
                 \
+                                              PCI_SLOT((_dev)->devfn),         
                 \
+                                              PCI_FUNC((_dev)->devfn), ##_a)
 #else
 #define PT_LOG(_f, _a...)
+#define PT_LOG_DEV(_dev, _f, _a...)
 #endif
 
 /* Some compilation flags */
diff --git a/hw/pt-graphics.c b/hw/pt-graphics.c
index 6a485ce..fec7390 100644
--- a/hw/pt-graphics.c
+++ b/hw/pt-graphics.c
@@ -50,9 +50,10 @@ void igd_pci_write(PCIDevice *pci_dev, uint32_t config_addr, 
uint32_t val, int l
     {
         case 0x58:        // PAVPC Offset
             pt_pci_host_write(pci_dev_host_bridge, config_addr, val, len);
-            PT_LOG("pci_config_write: %x:%x.%x: addr=%x len=%x val=%x\n",
-                   pci_bus_num(pci_dev->bus), PCI_SLOT(pci_dev->devfn),
-                   PCI_FUNC(pci_dev->devfn), config_addr, len, val);
+#ifdef PT_DEBUG_PCI_CONFIG_ACCESS
+            PT_LOG_DEV(pci_dev, "addr=%x len=%x val=%x\n",
+                    config_addr, len, val);
+#endif
             break;
         default:
             pci_default_write_config(pci_dev, config_addr, val, len);
@@ -81,9 +82,10 @@ uint32_t igd_pci_read(PCIDevice *pci_dev, uint32_t 
config_addr, int len)
         case 0xa4:        /* SNB: graphics base of stolen memory */
         case 0xa8:        /* SNB: base of GTT stolen memory */
             val = pt_pci_host_read(pci_dev_host_bridge, config_addr, len);
-            PT_LOG("pci_config_read: %x:%x.%x: addr=%x len=%x val=%x\n",
-                   pci_bus_num(pci_dev->bus), PCI_SLOT(pci_dev->devfn),
-                   PCI_FUNC(pci_dev->devfn), config_addr, len, val);
+#ifdef PT_DEBUG_PCI_CONFIG_ACCESS
+            PT_LOG_DEV(pci_dev, "addr=%x len=%x val=%x\n",
+                    config_addr, len, val);
+#endif
             break;
         default:
             val = pci_default_read_config(pci_dev, config_addr, len);
--
generated by git-patchbot for /home/xen/git/qemu-xen-unstable.git

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.