From a24a0a621486b36bcdf5c5e0afb05a5d1dd30003 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 19 Aug 2019 15:45:20 +0100 Subject: [PATCH] vc-sm-cma: Fix compatibility ioctl This code path hasn't been used previously. Fixed up after testing with kodi on 32-bit userland and 64-bit kernel Signed-off-by: popcornmix --- drivers/staging/vc04_services/vc-sm-cma/vc_sm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) --- a/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c +++ b/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c @@ -1501,11 +1501,10 @@ static long vc_sm_cma_ioctl(struct file return ret; } -#ifndef CONFIG_ARM64 #ifdef CONFIG_COMPAT struct vc_sm_cma_ioctl_clean_invalid2_32 { u32 op_count; - struct vc_sm_cma_ioctl_clean_invalid_block { + struct vc_sm_cma_ioctl_clean_invalid_block_32 { u16 invalidate_mode; u16 block_count; compat_uptr_t start_address; @@ -1516,7 +1515,7 @@ struct vc_sm_cma_ioctl_clean_invalid2_32 #define VC_SM_CMA_CMD_CLEAN_INVALID2_32\ _IOR(VC_SM_CMA_MAGIC_TYPE, VC_SM_CMA_CMD_CLEAN_INVALID2,\ - struct vc_sm_cma_ioctl_clean_invalid2) + struct vc_sm_cma_ioctl_clean_invalid2_32) static long vc_sm_cma_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) @@ -1524,24 +1523,21 @@ static long vc_sm_cma_compat_ioctl(struc switch (cmd) { case VC_SM_CMA_CMD_CLEAN_INVALID2_32: /* FIXME */ - break; + return -EINVAL; default: - return vc_sm_cma_compat_ioctl(file, cmd, arg); + return vc_sm_cma_ioctl(file, cmd, arg); } } #endif -#endif /* Device operations that we managed in this driver. */ static const struct file_operations vc_sm_ops = { .owner = THIS_MODULE, .unlocked_ioctl = vc_sm_cma_ioctl, -#ifndef CONFIG_ARM64 #ifdef CONFIG_COMPAT .compat_ioctl = vc_sm_cma_compat_ioctl, #endif -#endif .open = vc_sm_cma_open, .release = vc_sm_cma_release, };