diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2012-06-04 16:56:01 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@robin.(none)> | 2012-06-18 10:21:04 +0300 |
commit | 393a98924eb00df76231384b86652e1d5f964d67 (patch) | |
tree | 895f71570b4fff16634eb246deb1413b0497128b /hw | |
parent | 80aa796bf38b7ef21daa42673b4711510c450d8a (diff) | |
download | qemu-393a98924eb00df76231384b86652e1d5f964d67.zip qemu-393a98924eb00df76231384b86652e1d5f964d67.tar.gz qemu-393a98924eb00df76231384b86652e1d5f964d67.tar.bz2 |
msix: drop unused msix_bar_size, require valid bar_size
No user in sight for msix_bar_size.
bar_size for all users is aligned, let's simply
require this instead of trying to fix up invalid input.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/msix.c | 20 | ||||
-rw-r--r-- | hw/msix.h | 2 | ||||
-rw-r--r-- | hw/pci.h | 2 |
3 files changed, 3 insertions, 21 deletions
@@ -55,24 +55,17 @@ static int msix_add_config(struct PCIDevice *pdev, unsigned short nentries, { int config_offset; uint8_t *config; - uint32_t new_size; if (nentries < 1 || nentries > PCI_MSIX_FLAGS_QSIZE + 1) return -EINVAL; if (bar_size > 0x80000000) return -ENOSPC; - /* Add space for MSI-X structures */ - if (!bar_size) { - new_size = MSIX_PAGE_SIZE; - } else if (bar_size < MSIX_PAGE_SIZE) { - bar_size = MSIX_PAGE_SIZE; - new_size = MSIX_PAGE_SIZE * 2; - } else { - new_size = bar_size * 2; + /* Require aligned offset for MSI-X structures */ + if (bar_size & ~(MSIX_PAGE_SIZE - 1)) { + return -EINVAL; } - pdev->msix_bar_size = new_size; config_offset = pci_add_capability(pdev, PCI_CAP_ID_MSIX, 0, MSIX_CAP_LENGTH); if (config_offset < 0) @@ -382,13 +375,6 @@ int msix_enabled(PCIDevice *dev) MSIX_ENABLE_MASK); } -/* Size of bar where MSI-X table resides, or 0 if MSI-X not supported. */ -uint32_t msix_bar_size(PCIDevice *dev) -{ - return (dev->cap_present & QEMU_PCI_CAP_MSIX) ? - dev->msix_bar_size : 0; -} - /* Send an MSI-X message */ void msix_notify(PCIDevice *dev, unsigned vector) { @@ -21,8 +21,6 @@ void msix_load(PCIDevice *dev, QEMUFile *f); int msix_enabled(PCIDevice *dev); int msix_present(PCIDevice *dev); -uint32_t msix_bar_size(PCIDevice *dev); - int msix_vector_use(PCIDevice *dev, unsigned vector); void msix_vector_unuse(PCIDevice *dev, unsigned vector); void msix_unuse_all_vectors(PCIDevice *dev); @@ -226,8 +226,6 @@ struct PCIDevice { MemoryRegion msix_mmio; /* Reference-count for entries actually in use by driver. */ unsigned *msix_entry_used; - /* Region including the MSI-X table */ - uint32_t msix_bar_size; /* MSIX function mask set or MSIX disabled */ bool msix_function_masked; /* Version id needed for VMState */ |