Skip to content

Commit

Permalink
sh: fix sys_cacheflush error checking
Browse files Browse the repository at this point in the history
sys_cacheflush should return with EINVAL if the cache parameter is not
one of ICACHE, DCACHE or BCACHE.
So, we need to include 0 in the first check.

It also adds the three definitions above as wrapper of the existent macros.

PS: ltp cacheflush01 test now passes.

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Giuseppe Cavallaro authored and Paul Mundt committed Aug 24, 2009
1 parent ffad9d7 commit 788e6af
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 7 additions & 0 deletions arch/sh/include/asm/cachectl.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,11 @@

#define CACHEFLUSH_I 0x4

/*
* Options for cacheflush system call
*/
#define ICACHE CACHEFLUSH_I /* flush instruction cache */
#define DCACHE CACHEFLUSH_D_PURGE /* writeback and flush data cache */
#define BCACHE (ICACHE|DCACHE) /* flush both caches */

#endif /* _SH_CACHECTL_H */
2 changes: 1 addition & 1 deletion arch/sh/kernel/sys_sh.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ asmlinkage int sys_cacheflush(unsigned long addr, unsigned long len, int op)
{
struct vm_area_struct *vma;

if ((op < 0) || (op > (CACHEFLUSH_D_PURGE|CACHEFLUSH_I)))
if ((op <= 0) || (op > (CACHEFLUSH_D_PURGE|CACHEFLUSH_I)))
return -EINVAL;

/*
Expand Down

0 comments on commit 788e6af

Please sign in to comment.