From 716ca530e1c4515d8683c9d5be3d56b301758b66 Mon Sep 17 00:00:00 2001 From: James <> Date: Wed, 4 Nov 2015 11:49:21 +0000 Subject: trunk-47381 --- .../0120-vchiq_arm-Sort-out-the-vmalloc-case.patch | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch (limited to 'target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch') diff --git a/target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch b/target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch new file mode 100644 index 0000000..9c0c7c1 --- /dev/null +++ b/target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch @@ -0,0 +1,39 @@ +From 2b4d5c82da3850c7bf04c069b8eca966e931512f Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 14 Jul 2015 11:11:51 +0100 +Subject: [PATCH 120/203] vchiq_arm: Sort out the vmalloc case + +See: https://github.com/raspberrypi/linux/issues/1055 +--- + .../misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c ++++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c +@@ -394,21 +394,21 @@ create_pagelist(char __user *buf, size_t + if (is_vmalloc_addr(buf)) { + int dir = (type == PAGELIST_WRITE) ? + DMA_TO_DEVICE : DMA_FROM_DEVICE; +- unsigned long length = pagelist->length; +- unsigned int offset = pagelist->offset; ++ unsigned long length = count; ++ unsigned int off = offset; + + for (actual_pages = 0; actual_pages < num_pages; + actual_pages++) { + struct page *pg = vmalloc_to_page(buf + (actual_pages * + PAGE_SIZE)); +- size_t bytes = PAGE_SIZE - offset; ++ size_t bytes = PAGE_SIZE - off; + + if (bytes > length) + bytes = length; + pages[actual_pages] = pg; +- dmac_map_area(page_address(pg) + offset, bytes, dir); ++ dmac_map_area(page_address(pg) + off, bytes, dir); + length -= bytes; +- offset = 0; ++ off = 0; + } + *need_release = 0; /* do not try and release vmalloc pages */ + } else { -- cgit v1.2.3