Merge tag 'stable/for-linus-3.7-x86-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
Pull Xen update from Konrad Rzeszutek Wilk: "Features: - When hotplugging PCI devices in a PV guest we can allocate Xen-SWIOTLB later. - Cleanup Xen SWIOTLB. - Support pages out grants from HVM domains in the backends. - Support wild cards in xen-pciback.hide=(BDF) arguments. - Update grant status updates with upstream hypervisor. - Boot PV guests with more than 128GB. - Cleanup Xen MMU code/add comments. - Obtain XENVERS using a preferred method. - Lay out generic changes to support Xen ARM. - Allow privcmd ioctl for HVM (used to do only PV). - Do v2 of mmap_batch for privcmd ioctls. - If hypervisor saves the LED keyboard light - we will now instruct the kernel about its state. Fixes: - More fixes to Xen PCI backend for various calls/FLR/etc. - With more than 4GB in a 64-bit PV guest disable native SWIOTLB. - Fix up smatch warnings. - Fix up various return values in privmcmd and mm." * tag 'stable/for-linus-3.7-x86-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (48 commits) xen/pciback: Restore the PCI config space after an FLR. xen-pciback: properly clean up after calling pcistub_device_find() xen/vga: add the xen EFI video mode support xen/x86: retrieve keyboard shift status flags from hypervisor. xen/gndev: Xen backend support for paged out grant targets V4. xen-pciback: support wild cards in slot specifications xen/swiotlb: Fix compile warnings when using plain integer instead of NULL pointer. xen/swiotlb: Remove functions not needed anymore. xen/pcifront: Use Xen-SWIOTLB when initting if required. xen/swiotlb: For early initialization, return zero on success. xen/swiotlb: Use the swiotlb_late_init_with_tbl to init Xen-SWIOTLB late when PV PCI is used. xen/swiotlb: Move the error strings to its own function. xen/swiotlb: Move the nr_tbl determination in its own function. xen/arm: compile and run xenbus xen: resynchronise grant table status codes with upstream xen/privcmd: return -EFAULT on error xen/privcmd: Fix mmap batch ioctl error status copy back. xen/privcmd: add PRIVCMD_MMAPBATCH_V2 ioctl xen/mm: return more precise error from xen_remap_domain_range() xen/mmu: If the revector fails, don't attempt to revector anything else. ...
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/time.h>
|
||||
|
||||
#include <asm/xen/swiotlb-xen.h>
|
||||
#define INVALID_GRANT_REF (0)
|
||||
#define INVALID_EVTCHN (-1)
|
||||
|
||||
@@ -236,7 +237,7 @@ static int pcifront_bus_write(struct pci_bus *bus, unsigned int devfn,
|
||||
return errno_to_pcibios_err(do_pci_op(pdev, &op));
|
||||
}
|
||||
|
||||
struct pci_ops pcifront_bus_ops = {
|
||||
static struct pci_ops pcifront_bus_ops = {
|
||||
.read = pcifront_bus_read,
|
||||
.write = pcifront_bus_write,
|
||||
};
|
||||
@@ -668,7 +669,7 @@ static irqreturn_t pcifront_handler_aer(int irq, void *dev)
|
||||
schedule_pcifront_aer_op(pdev);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
static int pcifront_connect(struct pcifront_device *pdev)
|
||||
static int pcifront_connect_and_init_dma(struct pcifront_device *pdev)
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
@@ -681,9 +682,13 @@ static int pcifront_connect(struct pcifront_device *pdev)
|
||||
dev_err(&pdev->xdev->dev, "PCI frontend already installed!\n");
|
||||
err = -EEXIST;
|
||||
}
|
||||
|
||||
spin_unlock(&pcifront_dev_lock);
|
||||
|
||||
if (!err && !swiotlb_nr_tbl()) {
|
||||
err = pci_xen_swiotlb_init_late();
|
||||
if (err)
|
||||
dev_err(&pdev->xdev->dev, "Could not setup SWIOTLB!\n");
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -842,10 +847,10 @@ static int __devinit pcifront_try_connect(struct pcifront_device *pdev)
|
||||
XenbusStateInitialised)
|
||||
goto out;
|
||||
|
||||
err = pcifront_connect(pdev);
|
||||
err = pcifront_connect_and_init_dma(pdev);
|
||||
if (err) {
|
||||
xenbus_dev_fatal(pdev->xdev, err,
|
||||
"Error connecting PCI Frontend");
|
||||
"Error setting up PCI Frontend");
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user