aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen/events.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/xen/events.c')
-rw-r--r--drivers/xen/events.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index aa85881d17b2..bb65f75e40a5 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -85,8 +85,7 @@ enum xen_irq_type {
85 * event channel - irq->event channel mapping 85 * event channel - irq->event channel mapping
86 * cpu - cpu this event channel is bound to 86 * cpu - cpu this event channel is bound to
87 * index - type-specific information: 87 * index - type-specific information:
88 * PIRQ - vector, with MSB being "needs EIO", or physical IRQ of the HVM 88 * PIRQ - physical IRQ, GSI, flags, and owner domain
89 * guest, or GSI (real passthrough IRQ) of the device.
90 * VIRQ - virq number 89 * VIRQ - virq number
91 * IPI - IPI vector 90 * IPI - IPI vector
92 * EVTCHN - 91 * EVTCHN -
@@ -105,7 +104,6 @@ struct irq_info {
105 struct { 104 struct {
106 unsigned short pirq; 105 unsigned short pirq;
107 unsigned short gsi; 106 unsigned short gsi;
108 unsigned char vector;
109 unsigned char flags; 107 unsigned char flags;
110 uint16_t domid; 108 uint16_t domid;
111 } pirq; 109 } pirq;
@@ -211,7 +209,6 @@ static void xen_irq_info_pirq_init(unsigned irq,
211 unsigned short evtchn, 209 unsigned short evtchn,
212 unsigned short pirq, 210 unsigned short pirq,
213 unsigned short gsi, 211 unsigned short gsi,
214 unsigned short vector,
215 uint16_t domid, 212 uint16_t domid,
216 unsigned char flags) 213 unsigned char flags)
217{ 214{
@@ -221,7 +218,6 @@ static void xen_irq_info_pirq_init(unsigned irq,
221 218
222 info->u.pirq.pirq = pirq; 219 info->u.pirq.pirq = pirq;
223 info->u.pirq.gsi = gsi; 220 info->u.pirq.gsi = gsi;
224 info->u.pirq.vector = vector;
225 info->u.pirq.domid = domid; 221 info->u.pirq.domid = domid;
226 info->u.pirq.flags = flags; 222 info->u.pirq.flags = flags;
227} 223}
@@ -714,7 +710,7 @@ int xen_bind_pirq_gsi_to_irq(unsigned gsi,
714 goto out; 710 goto out;
715 } 711 }
716 712
717 xen_irq_info_pirq_init(irq, 0, pirq, gsi, irq_op.vector, DOMID_SELF, 713 xen_irq_info_pirq_init(irq, 0, pirq, gsi, DOMID_SELF,
718 shareable ? PIRQ_SHAREABLE : 0); 714 shareable ? PIRQ_SHAREABLE : 0);
719 715
720 pirq_query_unmask(irq); 716 pirq_query_unmask(irq);
@@ -762,8 +758,7 @@ int xen_allocate_pirq_msi(struct pci_dev *dev, struct msi_desc *msidesc)
762} 758}
763 759
764int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc, 760int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc,
765 int pirq, int vector, const char *name, 761 int pirq, const char *name, domid_t domid)
766 domid_t domid)
767{ 762{
768 int irq, ret; 763 int irq, ret;
769 764
@@ -776,7 +771,7 @@ int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc,
776 irq_set_chip_and_handler_name(irq, &xen_pirq_chip, handle_edge_irq, 771 irq_set_chip_and_handler_name(irq, &xen_pirq_chip, handle_edge_irq,
777 name); 772 name);
778 773
779 xen_irq_info_pirq_init(irq, 0, pirq, 0, vector, domid, 0); 774 xen_irq_info_pirq_init(irq, 0, pirq, 0, domid, 0);
780 ret = irq_set_msi_desc(irq, msidesc); 775 ret = irq_set_msi_desc(irq, msidesc);
781 if (ret < 0) 776 if (ret < 0)
782 goto error_irq; 777 goto error_irq;