From 9aa302d3264cab6ff26c2df119f1b7f30bdc7edb Mon Sep 17 00:00:00 2001 From: Zhipeng Lu Date: Wed, 24 Dec 2025 13:14:28 +0800 Subject: [PATCH] ub: cdma: add ioctl logs and error codes driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IDBCLI CVE: NA ----------------------------------------------------------- add ioctl logs and error codes Fixes: 34c67ed8f4c1 ("ub: cdma: support for cdma kernelspace north-south compatibility requirements") Signed-off-by: Zhipeng Lu --- drivers/ub/cdma/cdma_event.c | 26 ++++++++++++++++++-------- drivers/ub/cdma/cdma_ioctl.c | 2 +- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/ub/cdma/cdma_event.c b/drivers/ub/cdma/cdma_event.c index e8ecb7f8c4f6..240934a733ed 100644 --- a/drivers/ub/cdma/cdma_event.c +++ b/drivers/ub/cdma/cdma_event.c @@ -181,22 +181,25 @@ static long cdma_jfce_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { struct cdma_jfce *jfce = (struct cdma_jfce *)filp->private_data; - unsigned int nr; - int ret; + unsigned int nr = (unsigned int)_IOC_NR(cmd); + long ret = -ENOIOCTLCMD; - if (!arg || !jfce || _IOC_TYPE(cmd) != CDMA_EVENT_CMD_MAGIC) { - pr_err("invalid parameter, cmd = %u.\n", cmd); + if (!arg || !jfce) { + pr_err("jfce ioctl invalid parameter.\n"); return -EINVAL; } - nr = (unsigned int)_IOC_NR(cmd); + if (_IOC_TYPE(cmd) != CDMA_EVENT_CMD_MAGIC) { + pr_err("jfce ioctl invalid cmd type, cmd = %u.\n", cmd); + return ret; + } + switch (nr) { case JFCE_CMD_WAIT_EVENT: ret = cdma_jfce_wait(jfce, filp, arg); break; default: - ret = -ENOIOCTLCMD; - break; + pr_err("jfce ioctl wrong nr = %u.\n", nr); } return ret; @@ -588,8 +591,15 @@ static long cdma_jfae_ioctl(struct file *filp, unsigned int cmd, unsigned long a unsigned int nr = (unsigned int)_IOC_NR(cmd); long ret = -ENOIOCTLCMD; - if (!jfae) + if (!jfae) { + pr_err("jfae ioctl invalid parameter.\n"); return -EINVAL; + } + + if (_IOC_TYPE(cmd) != CDMA_EVENT_CMD_MAGIC) { + pr_err("jfae ioctl invalid cmd type, cmd = %u.\n", cmd); + return ret; + } switch (nr) { case JFAE_CMD_GET_ASYNC_EVENT: diff --git a/drivers/ub/cdma/cdma_ioctl.c b/drivers/ub/cdma/cdma_ioctl.c index 4a30cbbd383f..70c3e0d3b4f2 100644 --- a/drivers/ub/cdma/cdma_ioctl.c +++ b/drivers/ub/cdma/cdma_ioctl.c @@ -811,7 +811,7 @@ int cdma_cmd_parse(struct cdma_file *cfile, struct cdma_ioctl_hdr *hdr) dev_err(cdev->dev, "invalid cdma user command or no handler, command = %u\n", hdr->command); - return -EINVAL; + return -ENOIOCTLCMD; } mutex_lock(&cfile->ctx_mutex); -- Gitee