Skip to content

Commit

Permalink
sh64: Fix up vmalloc fault range check.
Browse files Browse the repository at this point in the history
With the previous attempt reverted this switches to conditionalizing the
end address. Nominally VMALLOC_END, but extended for P3_ADDR_MAX in the
store queue case.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed May 18, 2012
1 parent c3e0af9 commit d8fd35f
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion arch/sh/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,12 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
return pmd_k;
}

#ifdef CONFIG_SH_STORE_QUEUES
#define __FAULT_ADDR_LIMIT P3_ADDR_MAX
#else
#define __FAULT_ADDR_LIMIT VMALLOC_END
#endif

/*
* Handle a fault on the vmalloc or module mapping area
*/
Expand All @@ -170,7 +176,7 @@ static noinline int vmalloc_fault(unsigned long address)
pte_t *pte_k;

/* Make sure we are in vmalloc/module/P3 area: */
if (!(address >= P3SEG && address < P3_ADDR_MAX))
if (!(address >= VMALLOC_START && address < __FAULT_ADDR_LIMIT))
return -1;

/*
Expand Down

0 comments on commit d8fd35f

Please sign in to comment.