Skip to content

Commit

Permalink
sh: Ensure fixmap and store queue space can co-exist.
Browse files Browse the repository at this point in the history
At the moment the top of the fixmap space is calculated from P4SEG, which
places it at the end of the store queue space when that API is enabled.
Make sure we use P3_ADDR_MAX here instead to find the proper address
limit. With this done, it's also possible to switch to the generic
vmalloc address range check now that VMALLOC_START/END encapsulate the
translatable areas that we care about.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed May 14, 2012
1 parent 9a7b773 commit 20e7c29
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
2 changes: 1 addition & 1 deletion arch/sh/include/asm/fixmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ extern void __clear_fixmap(enum fixed_addresses idx, pgprot_t flags);
* at the top of mem..
*/
#ifdef CONFIG_SUPERH32
#define FIXADDR_TOP (P4SEG - PAGE_SIZE)
#define FIXADDR_TOP (P3_ADDR_MAX - PAGE_SIZE)
#else
#define FIXADDR_TOP (0xff000000 - PAGE_SIZE)
#endif
Expand Down
4 changes: 2 additions & 2 deletions arch/sh/mm/fault_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,8 @@ static noinline int vmalloc_fault(unsigned long address)
pmd_t *pmd_k;
pte_t *pte_k;

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

/*
Expand Down

0 comments on commit 20e7c29

Please sign in to comment.