diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 611b48dde737825cbd8ed950798a12036b236f79..314701a66b13ab8b5ff31668cfcf8739eb7efc2e 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -56,6 +56,8 @@ EXPORT_SYMBOL(_dma_cache_inv);
 asmlinkage int sys_cacheflush(unsigned long __user addr,
 	unsigned long bytes, unsigned int cache)
 {
+	if (bytes == 0)
+		return 0;
 	if (!access_ok(VERIFY_WRITE, (void __user *) addr, bytes))
 		return -EFAULT;