Merge branch 'kvm-updates/2.6.37' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[pandora-kernel.git] / arch / blackfin / kernel / sys_bfin.c
index bdc1e2f..89448ed 100644 (file)
@@ -21,6 +21,8 @@
 
 #include <asm/cacheflush.h>
 #include <asm/dma.h>
+#include <asm/cachectl.h>
+#include <asm/ptrace.h>
 
 asmlinkage void *sys_sram_alloc(size_t size, unsigned long flags)
 {
@@ -70,3 +72,16 @@ asmlinkage int sys_bfin_spinlock(int *p)
 
        return ret;
 }
+
+SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, len, int, op)
+{
+       if (is_user_addr_valid(current, addr, len) != 0)
+               return -EINVAL;
+
+       if (op & DCACHE)
+               blackfin_dcache_flush_range(addr, addr + len);
+       if (op & ICACHE)
+               blackfin_icache_flush_range(addr, addr + len);
+
+       return 0;
+}