mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:50:22 +02:00

Kernel patches are in process of Linux review and submission, and are backported from the Linux Foundation's Eve Project kernel from 5.6 to 5.4 (some patches not needed for 5.4, hence gaps in the patch sequence number) https://github.com/lf-edge/eve/tree/master/pkg/new-kernel/patches-5.6.x A bbappend applies Xen overrides to the boot command line. Since linux-raspberrypi depends on linux-yocto, and linux-yocto_virtualization introduces a requirement for cfg/virtio.scc obtain it from the yocto kernel cache. Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
45 lines
1.6 KiB
Diff
45 lines
1.6 KiB
Diff
From f5f4de59377afdd9a80e0f47df109eacf427c203 Mon Sep 17 00:00:00 2001
|
|
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
|
|
Date: Wed, 20 May 2020 16:42:06 -0700
|
|
Subject: [PATCH 01/10] swiotlb-xen: use vmalloc_to_page on vmalloc virt
|
|
addresses
|
|
|
|
Don't just assume that virt_to_page works on all virtual addresses.
|
|
Instead add a is_vmalloc_addr check and use vmalloc_to_page on vmalloc
|
|
virt addresses.
|
|
|
|
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
|
|
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
|
|
---
|
|
drivers/xen/swiotlb-xen.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
|
|
index b6d27762c6f8..a42129cba36e 100644
|
|
--- a/drivers/xen/swiotlb-xen.c
|
|
+++ b/drivers/xen/swiotlb-xen.c
|
|
@@ -335,6 +335,7 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
|
|
int order = get_order(size);
|
|
phys_addr_t phys;
|
|
u64 dma_mask = DMA_BIT_MASK(32);
|
|
+ struct page *pg;
|
|
|
|
if (hwdev && hwdev->coherent_dma_mask)
|
|
dma_mask = hwdev->coherent_dma_mask;
|
|
@@ -346,9 +347,11 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
|
|
/* Convert the size to actually allocated. */
|
|
size = 1UL << (order + XEN_PAGE_SHIFT);
|
|
|
|
+ pg = is_vmalloc_addr(vaddr) ? vmalloc_to_page(vaddr) :
|
|
+ virt_to_page(vaddr);
|
|
if (!WARN_ON((dev_addr + size - 1 > dma_mask) ||
|
|
range_straddles_page_boundary(phys, size)) &&
|
|
- TestClearPageXenRemapped(virt_to_page(vaddr)))
|
|
+ TestClearPageXenRemapped(pg))
|
|
xen_destroy_contiguous_region(phys, order);
|
|
|
|
xen_free_coherent_pages(hwdev, size, vaddr, (dma_addr_t)phys, attrs);
|
|
--
|
|
2.15.4
|
|
|