sh: fix sys_cacheflush error checking
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>
This commit is contained in:
parent
ffad9d7a54
commit
788e6af37a
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue