|
@@ -162,6 +162,9 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
|
struct msi_desc *msidesc;
|
|
struct msi_desc *msidesc;
|
|
int *v;
|
|
int *v;
|
|
|
|
|
|
|
|
+ if (type == PCI_CAP_ID_MSI && nvec > 1)
|
|
|
|
+ return 1;
|
|
|
|
+
|
|
v = kzalloc(sizeof(int) * max(1, nvec), GFP_KERNEL);
|
|
v = kzalloc(sizeof(int) * max(1, nvec), GFP_KERNEL);
|
|
if (!v)
|
|
if (!v)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
@@ -220,6 +223,9 @@ static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
|
struct msi_desc *msidesc;
|
|
struct msi_desc *msidesc;
|
|
struct msi_msg msg;
|
|
struct msi_msg msg;
|
|
|
|
|
|
|
|
+ if (type == PCI_CAP_ID_MSI && nvec > 1)
|
|
|
|
+ return 1;
|
|
|
|
+
|
|
list_for_each_entry(msidesc, &dev->msi_list, list) {
|
|
list_for_each_entry(msidesc, &dev->msi_list, list) {
|
|
__read_msi_msg(msidesc, &msg);
|
|
__read_msi_msg(msidesc, &msg);
|
|
pirq = MSI_ADDR_EXT_DEST_ID(msg.address_hi) |
|
|
pirq = MSI_ADDR_EXT_DEST_ID(msg.address_hi) |
|
|
@@ -263,6 +269,9 @@ static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
|
int ret = 0;
|
|
int ret = 0;
|
|
struct msi_desc *msidesc;
|
|
struct msi_desc *msidesc;
|
|
|
|
|
|
|
|
+ if (type == PCI_CAP_ID_MSI && nvec > 1)
|
|
|
|
+ return 1;
|
|
|
|
+
|
|
list_for_each_entry(msidesc, &dev->msi_list, list) {
|
|
list_for_each_entry(msidesc, &dev->msi_list, list) {
|
|
struct physdev_map_pirq map_irq;
|
|
struct physdev_map_pirq map_irq;
|
|
domid_t domid;
|
|
domid_t domid;
|