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

Commit bbc44181 authored by Shiraz Hashim's avatar Shiraz Hashim
Browse files

ARM: mm: fixmap index for highmem starts from FIX_KMAP_BEGIN



commit 1e378098 ("arm: add early_ioremap
support") adds exclusive fixmap entry for early console.

fixmap index for highmem doesn't start from 0 now. Add
this offset to all places where fixmap index is
calculated.

Change-Id: Iddde7cf5b06f19f424eadebb5a91730e8bd79986
Signed-off-by: default avatarShiraz Hashim <shashim@codeaurora.org>
parent 1abae077
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ void *kmap_atomic(struct page *page)

	type = kmap_atomic_idx_push();

	idx = type + KM_TYPE_NR * smp_processor_id();
	idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();
	vaddr = __fix_to_virt(idx);
#ifdef CONFIG_DEBUG_HIGHMEM
	/*
@@ -106,7 +106,7 @@ void __kunmap_atomic(void *kvaddr)

	if (kvaddr >= (void *)FIXADDR_START) {
		type = kmap_atomic_idx();
		idx = type + KM_TYPE_NR * smp_processor_id();
		idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();

		if (cache_is_vivt())
			__cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
@@ -136,7 +136,7 @@ void *kmap_atomic_pfn(unsigned long pfn)
		return page_address(page);

	type = kmap_atomic_idx_push();
	idx = type + KM_TYPE_NR * smp_processor_id();
	idx = FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id();
	vaddr = __fix_to_virt(idx);
#ifdef CONFIG_DEBUG_HIGHMEM
	BUG_ON(!pte_none(*get_fixmap_pte(vaddr)));
@@ -163,7 +163,7 @@ static void kmap_remove_unused_cpu(int cpu)

	pagefault_disable();
	type = kmap_atomic_idx();
	start_idx = type + 1 + KM_TYPE_NR * cpu;
	start_idx = FIX_KMAP_BEGIN + type + 1 + KM_TYPE_NR * cpu;

	for (idx = start_idx; idx < KM_TYPE_NR + KM_TYPE_NR * cpu; idx++) {
		unsigned long vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);