aboutsummaryrefslogtreecommitdiff
path: root/hw/pci_host.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2009-11-12 14:58:31 +0900
committerMichael S. Tsirkin <mst@redhat.com>2009-12-01 17:51:21 +0200
commit4677d8ed9db8564fb0b02c1d012d4b25de633290 (patch)
tree4e3e32499b56626875e43864468716dc0ea7c7b9 /hw/pci_host.c
parentb6243d991a4d073b2c8c16737fec9ee74274bfeb (diff)
pci: simplify (pci_/pcie_mmcfg_)data_read()
Remove switch on length: we don't care about high bits for value, so just return all ones if no device. And add one assert(). Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Isaku Yamahata <yamahata@valinux.co.jp>
Diffstat (limited to 'hw/pci_host.c')
-rw-r--r--hw/pci_host.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/hw/pci_host.c b/hw/pci_host.c
index f4518dce72..4a29f44904 100644
--- a/hw/pci_host.c
+++ b/hw/pci_host.c
@@ -71,25 +71,15 @@ uint32_t pci_data_read(PCIBus *s, uint32_t addr, int len)
uint32_t config_addr = pci_addr_to_config(addr);
uint32_t val;
+ assert(len == 1 || len == 2 || len == 4);
if (!pci_dev) {
- switch(len) {
- case 1:
- val = 0xff;
- break;
- case 2:
- val = 0xffff;
- break;
- default:
- case 4:
- val = 0xffffffff;
- break;
- }
- } else {
- val = pci_dev->config_read(pci_dev, config_addr, len);
- PCI_DPRINTF("%s: %s: addr=%02"PRIx32" val=%08"PRIx32" len=%d\n",
- __func__, pci_dev->name, config_addr, val, len);
+ return ~0x0;
}
+ val = pci_dev->config_read(pci_dev, config_addr, len);
+ PCI_DPRINTF("%s: %s: addr=%02"PRIx32" val=%08"PRIx32" len=%d\n",
+ __func__, pci_dev->name, config_addr, val, len);
+
return val;
}