aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/pmb.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-05-11 00:50:29 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-05-11 00:50:29 -0400
commitdfbca89987b74c34d9b1a2414b0e5ccee65347e0 (patch)
tree9fc1f978381864f53e81ff7a017d3ddee2dca89c /arch/sh/mm/pmb.c
parent4bc277ac9cae60e11fe2e557e4ea4acb56d3dc9a (diff)
sh: Reject small mappings for PMB bolting.
The minimum section size for the PMB is 16M, so just always error out early if the specified size is too small. This permits us to unconditionally call in to pmb_bolt_mapping() with variable sizes without wasting a TLB and cache flush for the range. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/pmb.c')
-rw-r--r--arch/sh/mm/pmb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c
index e9f5384f3f1c..18623ba751b3 100644
--- a/arch/sh/mm/pmb.c
+++ b/arch/sh/mm/pmb.c
@@ -341,6 +341,8 @@ int pmb_bolt_mapping(unsigned long vaddr, phys_addr_t phys,
341 unsigned long flags, pmb_flags; 341 unsigned long flags, pmb_flags;
342 int i, mapped; 342 int i, mapped;
343 343
344 if (size < SZ_16M)
345 return -EINVAL;
344 if (!pmb_addr_valid(vaddr, size)) 346 if (!pmb_addr_valid(vaddr, size))
345 return -EFAULT; 347 return -EFAULT;
346 if (pmb_mapping_exists(vaddr, phys, size)) 348 if (pmb_mapping_exists(vaddr, phys, size))