diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-11 21:15:33 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-11 21:15:33 -0500 |
| commit | 9d050966e2eb37a643ac15904b6a8fda7fcfabe9 (patch) | |
| tree | f3a6f9cc93f6dde2e0cd6f4114b8258afb596bc1 /include | |
| parent | c0222ac086669a631814bbf857f8c8023452a4d7 (diff) | |
| parent | 4ef8e3f3504808621e594f01852476a1d4e7ef93 (diff) | |
Merge tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen features and fixes from David Vrabel:
- Fully support non-coherent devices on ARM by introducing the
mechanisms to request the hypervisor to perform the required cache
maintainance operations.
- A number of pciback bug fixes and cleanups. Notably a deadlock fix
if a PCI device was manually uunbound and a fix for incorrectly
restoring state after a function reset.
- In x86 PVHVM guests, use the APIC for interrupts if this has been
virtualized by the hardware. This reduces the number of interrupt-
related VM exits on such hardware.
* tag 'stable/for-linus-3.19-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (26 commits)
Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
xen/pci: Use APIC directly when APIC virtualization hardware is available
xen/pci: Defer initialization of MSI ops on HVM guests
xen-pciback: drop SR-IOV VFs when PF driver unloads
xen/pciback: Restore configuration space when detaching from a guest.
PCI: Expose pci_load_saved_state for public consumption.
xen/pciback: Remove tons of dereferences
xen/pciback: Print out the domain owning the device.
xen/pciback: Include the domain id if removing the device whilst still in use
driver core: Provide an wrapper around the mutex to do lockdep warnings
xen/pciback: Don't deadlock when unbinding.
swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single
swiotlb-xen: call xen_dma_sync_single_for_device when appropriate
swiotlb-xen: remove BUG_ON in xen_bus_to_phys
swiotlb-xen: pass dev_addr to xen_dma_unmap_page and xen_dma_sync_single_for_cpu
xen/arm: introduce GNTTABOP_cache_flush
xen/arm/arm64: introduce xen_arch_need_swiotlb
xen/arm/arm64: merge xen/mm32.c into xen/mm.c
xen/arm: use hypercall to flush caches in map_page
xen: add a dma_addr_t dev_addr argument to xen_dma_map_page
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/device.h | 5 | ||||
| -rw-r--r-- | include/linux/pci.h | 2 | ||||
| -rw-r--r-- | include/xen/interface/features.h | 3 | ||||
| -rw-r--r-- | include/xen/interface/grant_table.h | 19 |
4 files changed, 26 insertions, 3 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index ce1f21608b16..41d6a7555c6b 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -911,6 +911,11 @@ static inline void device_unlock(struct device *dev) | |||
| 911 | mutex_unlock(&dev->mutex); | 911 | mutex_unlock(&dev->mutex); |
| 912 | } | 912 | } |
| 913 | 913 | ||
| 914 | static inline void device_lock_assert(struct device *dev) | ||
| 915 | { | ||
| 916 | lockdep_assert_held(&dev->mutex); | ||
| 917 | } | ||
| 918 | |||
| 914 | void driver_init(void); | 919 | void driver_init(void); |
| 915 | 920 | ||
| 916 | /* | 921 | /* |
diff --git a/include/linux/pci.h b/include/linux/pci.h index a523cee3abb5..44a27696ab6c 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -1004,6 +1004,8 @@ void __iomem __must_check *pci_platform_rom(struct pci_dev *pdev, size_t *size); | |||
| 1004 | int pci_save_state(struct pci_dev *dev); | 1004 | int pci_save_state(struct pci_dev *dev); |
| 1005 | void pci_restore_state(struct pci_dev *dev); | 1005 | void pci_restore_state(struct pci_dev *dev); |
| 1006 | struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev); | 1006 | struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev); |
| 1007 | int pci_load_saved_state(struct pci_dev *dev, | ||
| 1008 | struct pci_saved_state *state); | ||
| 1007 | int pci_load_and_free_saved_state(struct pci_dev *dev, | 1009 | int pci_load_and_free_saved_state(struct pci_dev *dev, |
| 1008 | struct pci_saved_state **state); | 1010 | struct pci_saved_state **state); |
| 1009 | struct pci_cap_saved_state *pci_find_saved_cap(struct pci_dev *dev, char cap); | 1011 | struct pci_cap_saved_state *pci_find_saved_cap(struct pci_dev *dev, char cap); |
diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h index 14334d0161d5..131a6ccdba25 100644 --- a/include/xen/interface/features.h +++ b/include/xen/interface/features.h | |||
| @@ -53,9 +53,6 @@ | |||
| 53 | /* operation as Dom0 is supported */ | 53 | /* operation as Dom0 is supported */ |
| 54 | #define XENFEAT_dom0 11 | 54 | #define XENFEAT_dom0 11 |
| 55 | 55 | ||
| 56 | /* Xen also maps grant references at pfn = mfn */ | ||
| 57 | #define XENFEAT_grant_map_identity 12 | ||
| 58 | |||
| 59 | #define XENFEAT_NR_SUBMAPS 1 | 56 | #define XENFEAT_NR_SUBMAPS 1 |
| 60 | 57 | ||
| 61 | #endif /* __XEN_PUBLIC_FEATURES_H__ */ | 58 | #endif /* __XEN_PUBLIC_FEATURES_H__ */ |
diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h index e40fae9bf11a..bcce56439d64 100644 --- a/include/xen/interface/grant_table.h +++ b/include/xen/interface/grant_table.h | |||
| @@ -479,6 +479,25 @@ struct gnttab_get_version { | |||
| 479 | DEFINE_GUEST_HANDLE_STRUCT(gnttab_get_version); | 479 | DEFINE_GUEST_HANDLE_STRUCT(gnttab_get_version); |
| 480 | 480 | ||
| 481 | /* | 481 | /* |
| 482 | * Issue one or more cache maintenance operations on a portion of a | ||
| 483 | * page granted to the calling domain by a foreign domain. | ||
| 484 | */ | ||
| 485 | #define GNTTABOP_cache_flush 12 | ||
| 486 | struct gnttab_cache_flush { | ||
| 487 | union { | ||
| 488 | uint64_t dev_bus_addr; | ||
| 489 | grant_ref_t ref; | ||
| 490 | } a; | ||
| 491 | uint16_t offset; /* offset from start of grant */ | ||
| 492 | uint16_t length; /* size within the grant */ | ||
| 493 | #define GNTTAB_CACHE_CLEAN (1<<0) | ||
| 494 | #define GNTTAB_CACHE_INVAL (1<<1) | ||
| 495 | #define GNTTAB_CACHE_SOURCE_GREF (1<<31) | ||
| 496 | uint32_t op; | ||
| 497 | }; | ||
| 498 | DEFINE_GUEST_HANDLE_STRUCT(gnttab_cache_flush); | ||
| 499 | |||
| 500 | /* | ||
| 482 | * Bitfield values for update_pin_status.flags. | 501 | * Bitfield values for update_pin_status.flags. |
| 483 | */ | 502 | */ |
| 484 | /* Map the grant entry for access by I/O devices. */ | 503 | /* Map the grant entry for access by I/O devices. */ |
