From patchwork Sat Nov 20 13:14:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Theil X-Patchwork-Id: 104540 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A43DFA0C47; Sat, 20 Nov 2021 14:14:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 42DDF40395; Sat, 20 Nov 2021 14:14:58 +0100 (CET) Received: from smail.rz.tu-ilmenau.de (smail.rz.tu-ilmenau.de [141.24.186.67]) by mails.dpdk.org (Postfix) with ESMTP id 2290B40143 for ; Sat, 20 Nov 2021 14:14:56 +0100 (CET) Received: from isengard.fritz.box (unknown [87.147.61.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smail.rz.tu-ilmenau.de (Postfix) with ESMTPSA id BD8D9580062; Sat, 20 Nov 2021 14:14:55 +0100 (CET) From: Markus Theil To: ferruh.yigit@intel.com Cc: dev@dpdk.org, markus.theil@secunet.com, Michael Pfeiffer Subject: [PATCH] kni: fix ioctl signature Date: Sat, 20 Nov 2021 14:14:36 +0100 Message-Id: <20211120131436.52694-1-markus.theil@tu-ilmenau.de> X-Mailer: git-send-email 2.33.1 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Markus Theil Fix kni's ioctl signature to correctly match the kernel's structs. This shaves off the (void*) casts and uses struct file* instead of struct inode*. With the correct signature, control flow integrity checkers are no longer confused at this point. Signed-off-by: Markus Theil Tested-by: Michael Pfeiffer --- kernel/linux/kni/kni_misc.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c index f4944e1ddf..d4e00abc40 100644 --- a/kernel/linux/kni/kni_misc.c +++ b/kernel/linux/kni/kni_misc.c @@ -245,7 +245,7 @@ kni_check_param(struct kni_dev *kni, struct rte_kni_device_info *dev) return 0; } -static int +static long kni_run_thread(struct kni_net *knet, struct kni_dev *kni, uint8_t force_bind) { /** @@ -286,12 +286,12 @@ kni_run_thread(struct kni_net *knet, struct kni_dev *kni, uint8_t force_bind) return 0; } -static int +static long kni_ioctl_create(struct net *net, uint32_t ioctl_num, unsigned long ioctl_param) { struct kni_net *knet = net_generic(net, kni_net_id); - int ret; + long ret; struct rte_kni_device_info dev_info; struct net_device *net_dev = NULL; struct kni_dev *kni, *dev, *n; @@ -416,7 +416,7 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num, ret = register_netdev(net_dev); if (ret) { - pr_err("error %i registering device \"%s\"\n", + pr_err("error %li registering device \"%s\"\n", ret, dev_info.name); kni->net_dev = NULL; kni_dev_remove(kni); @@ -437,12 +437,12 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num, return 0; } -static int +static long kni_ioctl_release(struct net *net, uint32_t ioctl_num, unsigned long ioctl_param) { struct kni_net *knet = net_generic(net, kni_net_id); - int ret = -EINVAL; + long ret = -EINVAL; struct kni_dev *dev, *n; struct rte_kni_device_info dev_info; @@ -478,8 +478,8 @@ kni_ioctl_release(struct net *net, uint32_t ioctl_num, return ret; } -static int -kni_ioctl(struct inode *inode, uint32_t ioctl_num, unsigned long ioctl_param) +static long +kni_ioctl(struct file *file, uint32_t ioctl_num, unsigned long ioctl_param) { int ret = -EINVAL; struct net *net = current->nsproxy->net_ns; @@ -507,8 +507,8 @@ kni_ioctl(struct inode *inode, uint32_t ioctl_num, unsigned long ioctl_param) return ret; } -static int -kni_compat_ioctl(struct inode *inode, uint32_t ioctl_num, +static long +kni_compat_ioctl(struct file *file, uint32_t ioctl_num, unsigned long ioctl_param) { /* 32 bits app on 64 bits OS to be supported later */ @@ -521,8 +521,8 @@ static const struct file_operations kni_fops = { .owner = THIS_MODULE, .open = kni_open, .release = kni_release, - .unlocked_ioctl = (void *)kni_ioctl, - .compat_ioctl = (void *)kni_compat_ioctl, + .unlocked_ioctl = kni_ioctl, + .compat_ioctl = kni_compat_ioctl, }; static struct miscdevice kni_misc = {