* [GIT PULL] (xen) stable/for-linus-3.13-rc0-tag
@ 2013-11-11 19:30 Konrad Rzeszutek Wilk
0 siblings, 0 replies; only message in thread
From: Konrad Rzeszutek Wilk @ 2013-11-11 19:30 UTC (permalink / raw)
To: Linus Torvalds, linux-kernel, xen-devel, Stefano Stabellini
[-- Attachment #1.1: Type: text/plain, Size: 5503 bytes --]
Hey Linus,
Please git pull the following tag:
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git stable/for-linus-3.13-rc0-tag
which has tons of fixes and two major features which are concentrated around
the Xen SWIOTLB library.
The short <blurb> is that the tracing facility (just one function) has been
added to SWIOTLB to make it easier to track I/O progress. Additionally under
Xen and ARM (32 & 64) the Xen-SWIOTLB driver "isused to translate physical to
machine and machine to physical addresses of foreign[guest] pages for
DMA operations" (Stefano) when booting under hardware without proper IOMMU.
There are also bug-fixes, cleanups, compile warning fixes, etc.
</blurb>
The commit times for some of the commits is a bit fresh - that is b/c
we wanted to make sure we have the Ack's from the ARM folks - which with
the string of back-to-back conferences took a bit of time. Rest assured -
the code has been stewing in #linux-next for some time.
There is also an easy to resolve conflict with the ARM tree, and
Stephen Rothwell is carrying a patch:
arch/arm/include/asm/dma-mapping.h between commit 6a6a5c15d871 ("ARM:
7805/1: mm: change max*pfn to include the physical offset of memory")
from the arm tree and commit e24b7aa368a0 ("arm: make SWIOTLB available")
from the xen-tip tree.
See attached file.
arch/arm/Kconfig | 7 +
arch/arm/include/asm/dma-mapping.h | 46 ++++++-
arch/arm/include/asm/io.h | 9 ++
arch/arm/include/asm/xen/hypervisor.h | 2 +
arch/arm/include/asm/xen/page-coherent.h | 50 +++++++
arch/arm/include/asm/xen/page.h | 44 +++++-
arch/arm/xen/Makefile | 2 +-
arch/arm/xen/mm.c | 65 +++++++++
arch/arm/xen/p2m.c | 208 +++++++++++++++++++++++++++++
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/dma-mapping.h | 14 +-
arch/arm64/include/asm/io.h | 10 ++
arch/arm64/include/asm/xen/page-coherent.h | 47 +++++++
arch/arm64/xen/Makefile | 2 +-
arch/ia64/include/asm/xen/page-coherent.h | 38 ++++++
arch/x86/include/asm/xen/page-coherent.h | 38 ++++++
arch/x86/xen/mmu.c | 15 ++-
arch/x86/xen/p2m.c | 6 +-
arch/x86/xen/pci-swiotlb-xen.c | 4 +
arch/x86/xen/setup.c | 2 +-
arch/x86/xen/smp.c | 10 +-
arch/x86/xen/spinlock.c | 2 +-
arch/x86/xen/time.c | 3 +-
drivers/tty/hvc/hvc_xen.c | 19 ++-
drivers/xen/Kconfig | 1 -
drivers/xen/balloon.c | 6 +-
drivers/xen/evtchn.c | 2 +-
drivers/xen/grant-table.c | 19 ++-
drivers/xen/pci.c | 47 +++++++
drivers/xen/platform-pci.c | 2 +-
drivers/xen/swiotlb-xen.c | 119 +++++++++++++----
include/trace/events/swiotlb.h | 46 +++++++
include/xen/interface/physdev.h | 11 ++
include/xen/swiotlb-xen.h | 3 +
include/xen/xen-ops.h | 7 +-
lib/swiotlb.c | 6 +
36 files changed, 846 insertions(+), 67 deletions(-)
Boris Ostrovsky (1):
xen/balloon: Set balloon's initial state to number of existing RAM pages
Konrad Rzeszutek Wilk (3):
xen/mmu: Correct PAT MST setting.
xen/hvc: If we use xen_raw_printk let it also work on HVM guests.
xen/mcfg: Call PHYSDEVOP_pci_mmcfg_reserved for MCFG areas.
Michael Opdenacker (2):
x86/xen: remove deprecated IRQF_DISABLED
xen: remove deprecated IRQF_DISABLED
Paul Gortmaker (1):
xen: delete new instances of added __cpuinit
Stefano Stabellini (23):
arm: make SWIOTLB available
arm64: define DMA_ERROR_CODE
arm/xen,arm64/xen: introduce p2m
xen/x86: allow __set_phys_to_machine for autotranslate guests
xen: make xen_create_contiguous_region return the dma address
xen/arm,arm64: enable SWIOTLB_XEN
swiotlb-xen: introduce xen_swiotlb_set_dma_mask
arm/xen: get_dma_ops: return xen_dma_ops if we are running as xen_initial_domain
arm64/xen: get_dma_ops: return xen_dma_ops if we are running as xen_initial_domain
xen: introduce xen_alloc/free_coherent_pages
swiotlb-xen: use xen_alloc/free_coherent_pages
xen: introduce xen_dma_map/unmap_page and xen_dma_sync_single_for_cpu/device
swiotlb-xen: use xen_dma_map/unmap_page, xen_dma_sync_single_for_cpu/device
swiotlb: print a warning when the swiotlb is full
arm,arm64: do not always merge biovec if we are running on Xen
grant-table: call set_phys_to_machine after mapping grant refs
swiotlb-xen: static inline xen_phys_to_bus, xen_bus_to_phys, xen_virt_to_bus and range_straddles_page_boundary
swiotlb-xen: fix error code returned by xen_swiotlb_map_sg_attrs
arm: make SWIOTLB available
pci-swiotlb-xen: call pci_request_acs only ifdef CONFIG_PCI
swiotlb-xen: missing include dma-direction.h
arm,arm64/include/asm/io.h: define struct bio_vec
xen/arm: pfn_to_mfn and mfn_to_pfn return the argument if nothing is in the p2m
Thierry Reding (1):
tracing/events: Fix swiotlb tracepoint creation
Zoltan Kiss (1):
tracing/events: Add bounce tracing to swiotbl
[-- Attachment #1.2: linux-next-merge.patch --]
[-- Type: text/plain, Size: 1885 bytes --]
Hi all,
Today's linux-next merge of the xen-tip tree got a conflict in
arch/arm/include/asm/dma-mapping.h between commit 6a6a5c15d871 ("ARM:
7805/1: mm: change max*pfn to include the physical offset of memory")
from the arm tree and commit e24b7aa368a0 ("arm: make SWIOTLB available")
from the xen-tip tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc arch/arm/include/asm/dma-mapping.h
index 863cd84eb1a2,8acfef48124a..000000000000
--- a/arch/arm/include/asm/dma-mapping.h
+++ b/arch/arm/include/asm/dma-mapping.h
@@@ -87,13 -97,39 +98,46 @@@ static inline dma_addr_t virt_to_dma(st
}
#endif
+ static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr)
+ {
+ unsigned int offset = paddr & ~PAGE_MASK;
+ return pfn_to_dma(dev, __phys_to_pfn(paddr)) + offset;
+ }
+
+ static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr)
+ {
+ unsigned int offset = dev_addr & ~PAGE_MASK;
+ return __pfn_to_phys(dma_to_pfn(dev, dev_addr)) + offset;
+ }
+
+ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
+ {
+ u64 limit, mask;
+
+ if (!dev->dma_mask)
+ return 0;
+
+ mask = *dev->dma_mask;
+
+ limit = (mask + 1) & ~mask;
+ if (limit && size > limit)
+ return 0;
+
+ if ((addr | (addr + size - 1)) & ~mask)
+ return 0;
+
+ return 1;
+ }
+
+ static inline void dma_mark_clean(void *addr, size_t size) { }
+
+/* The ARM override for dma_max_pfn() */
+static inline unsigned long dma_max_pfn(struct device *dev)
+{
+ return PHYS_PFN_OFFSET + dma_to_pfn(dev, *dev->dma_mask);
+}
+#define dma_max_pfn(dev) dma_max_pfn(dev)
+
/*
* DMA errors are defined by all-bits-set in the DMA address.
*/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2013-11-11 19:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-11 19:30 [GIT PULL] (xen) stable/for-linus-3.13-rc0-tag Konrad Rzeszutek Wilk
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.