aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2012-06-04 16:56:01 +0200
committerMichael S. Tsirkin <mst@robin.(none)>2012-06-18 10:21:04 +0300
commit393a98924eb00df76231384b86652e1d5f964d67 (patch)
tree895f71570b4fff16634eb246deb1413b0497128b /hw
parent80aa796bf38b7ef21daa42673b4711510c450d8a (diff)
downloadqemu-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.c20
-rw-r--r--hw/msix.h2
-rw-r--r--hw/pci.h2
3 files changed, 3 insertions, 21 deletions
diff --git a/hw/msix.c b/hw/msix.c
index ded3c55..b64f109 100644
--- a/hw/msix.c
+++ b/hw/msix.c
@@ -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)
{
diff --git a/hw/msix.h b/hw/msix.h
index 50aee82..e5a488d 100644
--- a/hw/msix.h
+++ b/hw/msix.h
@@ -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);
diff --git a/hw/pci.h b/hw/pci.h
index c3cacce..3d534e7 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -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 */