aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2014-02-04 16:53:56 +0000
committerWill Deacon <will.deacon@arm.com>2015-06-01 16:39:55 +0100
commit2d6c72df833cfab70536cb1b1075af23e3facb99 (patch)
treed22597ab5c3662bda26a55339d8ee006e374c9a6
parenta463650caad6b8a47dbd75a934ac01fb1e67c389 (diff)
downloadkvmtool-2d6c72df833cfab70536cb1b1075af23e3facb99.tar.gz
kvm tools: irq: remove pin parameter from irq__register_device
In preparation for moving the irq allocation into generic code, remove the pin parameter from irq__register_device and temporarily place the onus on the emulation driver to allocate the pin (which is always 1 and only used on PCI anyway). Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
-rw-r--r--arm/irq.c2
-rw-r--r--hw/pci-shmem.c6
-rw-r--r--hw/vesa.c6
-rw-r--r--include/kvm/irq.h2
-rw-r--r--powerpc/irq.c3
-rw-r--r--virtio/mmio.c4
-rw-r--r--virtio/pci.c6
-rw-r--r--x86/irq.c10
8 files changed, 15 insertions, 24 deletions
diff --git a/arm/irq.c b/arm/irq.c
index e173e04f..dd53f121 100644
--- a/arm/irq.c
+++ b/arm/irq.c
@@ -4,7 +4,7 @@
#include "arm-common/gic.h"
-int irq__register_device(u32 dev, u8 *pin, u8 *line)
+int irq__register_device(u32 dev, u8 *line)
{
*line = gic__alloc_irqnum();
return 0;
diff --git a/hw/pci-shmem.c b/hw/pci-shmem.c
index 701231a6..d0d88f82 100644
--- a/hw/pci-shmem.c
+++ b/hw/pci-shmem.c
@@ -352,7 +352,7 @@ int shmem_parser(const struct option *opt, const char *arg, int unset)
int pci_shmem__init(struct kvm *kvm)
{
- u8 line, pin;
+ u8 line;
char *mem;
int r;
@@ -360,11 +360,11 @@ int pci_shmem__init(struct kvm *kvm)
return 0;
/* Register good old INTx */
- r = irq__register_device(PCI_DEVICE_ID_PCI_SHMEM, &pin, &line);
+ r = irq__register_device(PCI_DEVICE_ID_PCI_SHMEM, &line);
if (r < 0)
return r;
- pci_shmem_pci_device.irq_pin = pin;
+ pci_shmem_pci_device.irq_pin = 1;
pci_shmem_pci_device.irq_line = line;
/* Register MMIO space for MSI-X */
diff --git a/hw/vesa.c b/hw/vesa.c
index 47e3a694..07c3978c 100644
--- a/hw/vesa.c
+++ b/hw/vesa.c
@@ -55,14 +55,14 @@ static struct framebuffer vesafb;
struct framebuffer *vesa__init(struct kvm *kvm)
{
u16 vesa_base_addr;
- u8 line, pin;
+ u8 line;
char *mem;
int r;
if (!kvm->cfg.vnc && !kvm->cfg.sdl && !kvm->cfg.gtk)
return NULL;
- r = irq__register_device(PCI_DEVICE_ID_VESA, &pin, &line);
+ r = irq__register_device(PCI_DEVICE_ID_VESA, &line);
if (r < 0)
return ERR_PTR(r);
@@ -70,7 +70,7 @@ struct framebuffer *vesa__init(struct kvm *kvm)
if (r < 0)
return ERR_PTR(r);
- vesa_pci_device.irq_pin = pin;
+ vesa_pci_device.irq_pin = 1;
vesa_pci_device.irq_line = line;
vesa_base_addr = (u16)r;
vesa_pci_device.bar[0] = cpu_to_le32(vesa_base_addr | PCI_BASE_ADDRESS_SPACE_IO);
diff --git a/include/kvm/irq.h b/include/kvm/irq.h
index 5c1274b9..20213c06 100644
--- a/include/kvm/irq.h
+++ b/include/kvm/irq.h
@@ -22,7 +22,7 @@ struct pci_dev {
struct list_head lines;
};
-int irq__register_device(u32 dev, u8 *pin, u8 *line);
+int irq__register_device(u32 dev, u8 *line);
struct rb_node *irq__get_pci_tree(void);
diff --git a/powerpc/irq.c b/powerpc/irq.c
index ae9da507..d906bb28 100644
--- a/powerpc/irq.c
+++ b/powerpc/irq.c
@@ -32,9 +32,8 @@
* generic & cope with multiple PPC platform types.
*/
-int irq__register_device(u32 dev, u8 *pin, u8 *line)
+int irq__register_device(u32 dev, u8 *line)
{
- *pin = 1;
/*
* Have I said how nasty I find this? Line should be dontcare... PHB
* should determine which CPU/XICS IRQ to fire.
diff --git a/virtio/mmio.c b/virtio/mmio.c
index afae6a70..90f90ede 100644
--- a/virtio/mmio.c
+++ b/virtio/mmio.c
@@ -260,7 +260,7 @@ int virtio_mmio_init(struct kvm *kvm, void *dev, struct virtio_device *vdev,
int device_id, int subsys_id, int class)
{
struct virtio_mmio *vmmio = vdev->virtio;
- u8 pin, line;
+ u8 line;
vmmio->addr = virtio_mmio_get_io_space_block(VIRTIO_MMIO_IO_SIZE);
vmmio->kvm = kvm;
@@ -277,7 +277,7 @@ int virtio_mmio_init(struct kvm *kvm, void *dev, struct virtio_device *vdev,
.queue_num_max = 256,
};
- if (irq__register_device(subsys_id, &pin, &line) < 0)
+ if (irq__register_device(subsys_id, &line) < 0)
return -1;
vmmio->irq = line;
vmmio->dev_hdr = (struct device_header) {
diff --git a/virtio/pci.c b/virtio/pci.c
index e1b5be6b..77dde3be 100644
--- a/virtio/pci.c
+++ b/virtio/pci.c
@@ -335,7 +335,7 @@ int virtio_pci__init(struct kvm *kvm, void *dev, struct virtio_device *vdev,
int device_id, int subsys_id, int class)
{
struct virtio_pci *vpci = vdev->virtio;
- u8 pin, line;
+ u8 line;
int r;
vpci->kvm = kvm;
@@ -406,14 +406,14 @@ int virtio_pci__init(struct kvm *kvm, void *dev, struct virtio_device *vdev,
vpci->pci_hdr.msix.pba_offset = cpu_to_le32(2 | PCI_IO_SIZE);
vpci->config_vector = 0;
- r = irq__register_device(subsys_id, &pin, &line);
+ r = irq__register_device(subsys_id, &line);
if (r < 0)
goto free_msix_mmio;
if (kvm__supports_extension(kvm, KVM_CAP_SIGNAL_MSI))
vpci->features |= VIRTIO_PCI_F_SIGNAL_MSI;
- vpci->pci_hdr.irq_pin = pin;
+ vpci->pci_hdr.irq_pin = 1;
vpci->pci_hdr.irq_line = line;
r = device__register(&vpci->dev_hdr);
if (r < 0)
diff --git a/x86/irq.c b/x86/irq.c
index 7447c6b7..17db2110 100644
--- a/x86/irq.c
+++ b/x86/irq.c
@@ -85,7 +85,7 @@ static int insert(struct rb_root *root, struct pci_dev *data)
return 0;
}
-int irq__register_device(u32 dev, u8 *pin, u8 *line)
+int irq__register_device(u32 dev, u8 *line)
{
struct pci_dev *node;
int r;
@@ -100,13 +100,6 @@ int irq__register_device(u32 dev, u8 *pin, u8 *line)
*node = (struct pci_dev) {
.id = dev,
- /*
- * PCI supports only INTA#,B#,C#,D# per device.
- * A#,B#,C#,D# are allowed for multifunctional
- * devices so stick with A# for our single
- * function devices.
- */
- .pin = 1,
};
INIT_LIST_HEAD(&node->lines);
@@ -126,7 +119,6 @@ int irq__register_device(u32 dev, u8 *pin, u8 *line)
new->line = next_line++;
*line = new->line;
- *pin = node->pin;
list_add(&new->node, &node->lines);