From 208ab54e3e9516dd9fcf1ce197950044e0bebd90 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 17 Jul 2015 12:48:39 +0000 Subject: brcm2708: add linux 4.1 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas SVN-Revision: 46399 --- .../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 0000000000..160bfb4cb5 --- /dev/null +++ b/target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch @@ -0,0 +1,39 @@ +From 042bc608f4877bcf9dd16db9657a33fcabd1023c Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 14 Jul 2015 11:11:51 +0100 +Subject: [PATCH 120/121] 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