diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-02-18 18:04:33 +0100 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-02-18 23:42:32 +0100 |
commit | f07e572f6447465d8938679533d604e402b0f066 (patch) | |
tree | cb333bd2a67e59e7c07659514850a0fd55fc825e /target/linux/bcm27xx/patches-5.4/950-0664-driver-char-rpivid-Don-t-map-more-than-wanted.patch | |
parent | 5d3a6fd970619dfc55f8259035c3027d7613a2a6 (diff) | |
download | upstream-f07e572f6447465d8938679533d604e402b0f066.tar.gz upstream-f07e572f6447465d8938679533d604e402b0f066.tar.bz2 upstream-f07e572f6447465d8938679533d604e402b0f066.zip |
bcm27xx: import latest patches from the RPi foundation
bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G
bcm2710: boot tested on RPi 3B v1.2
bcm2711: boot tested on RPi 4B v1.1 4G
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0664-driver-char-rpivid-Don-t-map-more-than-wanted.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0664-driver-char-rpivid-Don-t-map-more-than-wanted.patch | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0664-driver-char-rpivid-Don-t-map-more-than-wanted.patch b/target/linux/bcm27xx/patches-5.4/950-0664-driver-char-rpivid-Don-t-map-more-than-wanted.patch deleted file mode 100644 index afc1a5a6a8..0000000000 --- a/target/linux/bcm27xx/patches-5.4/950-0664-driver-char-rpivid-Don-t-map-more-than-wanted.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 8c2369b39b1dafe7a26907173bb47d37ec53bfa2 Mon Sep 17 00:00:00 2001 -From: Phil Elwell <phil@raspberrypi.com> -Date: Tue, 21 Apr 2020 11:30:23 +0100 -Subject: [PATCH] driver: char: rpivid: Don't map more than wanted - -Limit mappings to the permitted range, but don't map more than asked -for otherwise we walk off the end of the allocated VMA. - -Signed-off-by: Phil Elwell <phil@raspberrypi.com> ---- - drivers/char/broadcom/rpivid-mem.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - ---- a/drivers/char/broadcom/rpivid-mem.c -+++ b/drivers/char/broadcom/rpivid-mem.c -@@ -100,6 +100,7 @@ static int rpivid_mem_mmap(struct file * - { - struct rpivid_mem_priv *priv; - unsigned long pages; -+ unsigned long len; - - priv = file->private_data; - pages = priv->regs_phys >> PAGE_SHIFT; -@@ -107,14 +108,13 @@ static int rpivid_mem_mmap(struct file * - * The address decode is far larger than the actual number of registers. - * Just map the whole lot in. - */ -- vma->vm_page_prot = phys_mem_access_prot(file, pages, -- priv->mem_window_len, -+ len = min(vma->vm_end - vma->vm_start, priv->mem_window_len); -+ vma->vm_page_prot = phys_mem_access_prot(file, pages, len, - vma->vm_page_prot); - vma->vm_ops = &rpivid_mem_vm_ops; - if (remap_pfn_range(vma, vma->vm_start, -- pages, -- priv->mem_window_len, -- vma->vm_page_prot)) { -+ pages, len, -+ vma->vm_page_prot)) { - return -EAGAIN; - } - return 0; -@@ -156,7 +156,7 @@ static int rpivid_mem_probe(struct platf - ioresource = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (ioresource) { - priv->regs_phys = ioresource->start; -- priv->mem_window_len = ioresource->end - ioresource->start; -+ priv->mem_window_len = (ioresource->end + 1) - ioresource->start; - } else { - dev_err(priv->dev, "failed to get IO resource"); - err = -ENOENT; |