[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240417-s390-drivers-fix-cast-function-type-v1-2-fd048c9903b0@kernel.org>
Date: Wed, 17 Apr 2024 11:24:36 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: akpm@...ux-foundation.org, arnd@...db.de, hca@...ux.ibm.com,
gor@...ux.ibm.com, agordeev@...ux.ibm.com
Cc: borntraeger@...ux.ibm.com, svens@...ux.ibm.com, wintera@...ux.ibm.com,
twinkler@...ux.ibm.com, linux-s390@...r.kernel.org, netdev@...r.kernel.org,
llvm@...ts.linux.dev, patches@...ts.linux.dev,
Nathan Chancellor <nathan@...nel.org>
Subject: [PATCH 2/3] s390/smsgiucv_app: Remove function pointer cast
Clang warns (or errors with CONFIG_WERROR) after enabling
-Wcast-function-type-strict by default:
drivers/s390/net/smsgiucv_app.c:176:26: error: cast from 'void (*)(const void *)' to 'void (*)(struct device *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict]
176 | smsg_app_dev->release = (void (*)(struct device *)) kfree;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Add a standalone function to fix the warning properly, which addresses
the root of the warning that these casts are not safe for kCFI.
Signed-off-by: Nathan Chancellor <nathan@...nel.org>
---
drivers/s390/net/smsgiucv_app.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/s390/net/smsgiucv_app.c b/drivers/s390/net/smsgiucv_app.c
index 0a263999f7ae..390aba4ef7ad 100644
--- a/drivers/s390/net/smsgiucv_app.c
+++ b/drivers/s390/net/smsgiucv_app.c
@@ -64,6 +64,11 @@ static void smsg_app_event_free(struct smsg_app_event *ev)
kfree(ev);
}
+static void smsg_app_free_dev(struct device *dev)
+{
+ kfree(dev);
+}
+
static struct smsg_app_event *smsg_app_event_alloc(const char *from,
const char *msg)
{
@@ -173,7 +178,7 @@ static int __init smsgiucv_app_init(void)
}
smsg_app_dev->bus = &iucv_bus;
smsg_app_dev->parent = iucv_root;
- smsg_app_dev->release = (void (*)(struct device *)) kfree;
+ smsg_app_dev->release = smsg_app_free_dev;
smsg_app_dev->driver = smsgiucv_drv;
rc = device_register(smsg_app_dev);
if (rc) {
--
2.44.0
Powered by blists - more mailing lists