features and fixes for 4.11 rc1
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABAgAGBQJYwPOdAAoJELDendYovxMvaREH/jWjZt38HQFyWYmpGN/jTl5e fl2kK8PcYR50WDVMROG50MoWeDWj4OiCHkQTln/BIckBfi895qNE+S27Z6ZvPBcY Xqx+lbcKej1KU5O11Kmmuz7Jz/h3pyP09lY7vG50pxLMBVJy8L2P3Oj66fB4MbY0 u5DQtPSwRDlf86gNisQuRHDYIF+LZ+ZQD5SL0hRz5UStnxojbX0oxP/ijz/tyshP Qk5PZXWLOTcWn8mvKJu9wqfNur9FLT+FE8dYzAqa8hoLECl3wR3jUxGb1kNVt+GB GuK6AHtJ7plVjfMYaAJtjYJnBaCGTCt3GuSzGJhoES0RkC/u1knuQBe87hKhzCc= =gYGK -----END PGP SIGNATURE----- Merge tag 'for-linus-4.11-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fix and cleanup from Juergen Gross: "This contains one fix for MSIX handling under Xen and a trivial cleanup patch" * tag 'for-linus-4.11-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xenbus: Remove duplicate inclusion of linux/init.h xen: do not re-use pirq number cached in pci device msi msg data
This commit is contained in:
commit
cb2113cb98
|
@ -234,23 +234,14 @@ static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for_each_pci_msi_entry(msidesc, dev) {
|
for_each_pci_msi_entry(msidesc, dev) {
|
||||||
__pci_read_msi_msg(msidesc, &msg);
|
pirq = xen_allocate_pirq_msi(dev, msidesc);
|
||||||
pirq = MSI_ADDR_EXT_DEST_ID(msg.address_hi) |
|
if (pirq < 0) {
|
||||||
((msg.address_lo >> MSI_ADDR_DEST_ID_SHIFT) & 0xff);
|
irq = -ENODEV;
|
||||||
if (msg.data != XEN_PIRQ_MSI_DATA ||
|
goto error;
|
||||||
xen_irq_from_pirq(pirq) < 0) {
|
|
||||||
pirq = xen_allocate_pirq_msi(dev, msidesc);
|
|
||||||
if (pirq < 0) {
|
|
||||||
irq = -ENODEV;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
xen_msi_compose_msg(dev, pirq, &msg);
|
|
||||||
__pci_write_msi_msg(msidesc, &msg);
|
|
||||||
dev_dbg(&dev->dev, "xen: msi bound to pirq=%d\n", pirq);
|
|
||||||
} else {
|
|
||||||
dev_dbg(&dev->dev,
|
|
||||||
"xen: msi already bound to pirq=%d\n", pirq);
|
|
||||||
}
|
}
|
||||||
|
xen_msi_compose_msg(dev, pirq, &msg);
|
||||||
|
__pci_write_msi_msg(msidesc, &msg);
|
||||||
|
dev_dbg(&dev->dev, "xen: msi bound to pirq=%d\n", pirq);
|
||||||
irq = xen_bind_pirq_msi_to_irq(dev, msidesc, pirq,
|
irq = xen_bind_pirq_msi_to_irq(dev, msidesc, pirq,
|
||||||
(type == PCI_CAP_ID_MSI) ? nvec : 1,
|
(type == PCI_CAP_ID_MSI) ? nvec : 1,
|
||||||
(type == PCI_CAP_ID_MSIX) ?
|
(type == PCI_CAP_ID_MSIX) ?
|
||||||
|
|
|
@ -55,7 +55,6 @@
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/miscdevice.h>
|
#include <linux/miscdevice.h>
|
||||||
#include <linux/init.h>
|
|
||||||
|
|
||||||
#include <xen/xenbus.h>
|
#include <xen/xenbus.h>
|
||||||
#include <xen/xen.h>
|
#include <xen/xen.h>
|
||||||
|
|
Loading…
Reference in New Issue