Fix zero length sys_cacheflush
Cacheflush(0, 0, 0) was crashing the system. This is because flush_icache_range(start, end) tries to flushing whole address space (0 - ~0UL) if both start and end are zero. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
f4c72cc737
commit
750ccf687f
|
@ -56,6 +56,8 @@ EXPORT_SYMBOL(_dma_cache_inv);
|
||||||
asmlinkage int sys_cacheflush(unsigned long __user addr,
|
asmlinkage int sys_cacheflush(unsigned long __user addr,
|
||||||
unsigned long bytes, unsigned int cache)
|
unsigned long bytes, unsigned int cache)
|
||||||
{
|
{
|
||||||
|
if (bytes == 0)
|
||||||
|
return 0;
|
||||||
if (!access_ok(VERIFY_WRITE, (void __user *) addr, bytes))
|
if (!access_ok(VERIFY_WRITE, (void __user *) addr, bytes))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue