Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e4e27c7 authored by Adam Lackorzynski's avatar Adam Lackorzynski Committed by Linus Torvalds
Browse files

vmalloc.c: fix flushing in vmap_page_range()



The flush_cache_vmap in vmap_page_range() is called with the end of the
range twice.  The following patch fixes this for me.

Signed-off-by: default avatarAdam Lackorzynski <adam@os.inf.tu-dresden.de>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: <stable@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7b574b7b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -151,11 +151,12 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
 *
 * Ie. pte at addr+N*PAGE_SIZE shall point to pfn corresponding to pages[N]
 */
static int vmap_page_range(unsigned long addr, unsigned long end,
static int vmap_page_range(unsigned long start, unsigned long end,
				pgprot_t prot, struct page **pages)
{
	pgd_t *pgd;
	unsigned long next;
	unsigned long addr = start;
	int err = 0;
	int nr = 0;

@@ -167,7 +168,7 @@ static int vmap_page_range(unsigned long addr, unsigned long end,
		if (err)
			break;
	} while (pgd++, addr = next, addr != end);
	flush_cache_vmap(addr, end);
	flush_cache_vmap(start, end);

	if (unlikely(err))
		return err;