From: Nathan Chancellor <nathan@kernel.org>
To: Heiko Carstens <hca@linux.ibm.com>
Cc: akpm@linux-foundation.org, arnd@arndb.de, gor@linux.ibm.com,
agordeev@linux.ibm.com, borntraeger@linux.ibm.com,
svens@linux.ibm.com, wintera@linux.ibm.com,
twinkler@linux.ibm.com, linux-s390@vger.kernel.org,
netdev@vger.kernel.org, llvm@lists.linux.dev,
patches@lists.linux.dev
Subject: Re: [PATCH 1/3] s390/vmlogrdr: Remove function pointer cast
Date: Thu, 18 Apr 2024 07:51:21 -0700 [thread overview]
Message-ID: <20240418145121.GA1435416@dev-arch.thelio-3990X> (raw)
In-Reply-To: <20240418102549.6056-B-hca@linux.ibm.com>
Hi Heiko,
On Thu, Apr 18, 2024 at 12:25:49PM +0200, Heiko Carstens wrote:
> On Thu, Apr 18, 2024 at 11:54:38AM +0200, Heiko Carstens wrote:
> > On Wed, Apr 17, 2024 at 11:24:35AM -0700, Nathan Chancellor wrote:
> > > Clang warns (or errors with CONFIG_WERROR) after enabling
> > > -Wcast-function-type-strict by default:
> > >
> > > drivers/s390/char/vmlogrdr.c:746:18: error: cast from 'void (*)(const void *)' to 'void (*)(struct device *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict]
> > > 746 | 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. The
> > > comment is not really relevant after this change, so remove it.
> > >
> > > Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> > > ---
> > > drivers/s390/char/vmlogrdr.c | 13 +++++--------
> > > 1 file changed, 5 insertions(+), 8 deletions(-)
> >
> > > @@ -736,14 +740,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
> > > dev->driver = &vmlogrdr_driver;
> > > dev->groups = vmlogrdr_attr_groups;
> > > dev_set_drvdata(dev, priv);
> > > - /*
> > > - * The release function could be called after the
> > > - * module has been unloaded. It's _only_ task is to
> > > - * free the struct. Therefore, we specify kfree()
> > > - * directly here. (Probably a little bit obfuscating
> > > - * but legitime ...).
> > > - */
> >
> > Why is the comment not relevant after this change? Or better: why is it not
> > valid before this change, which is why the code was introduced a very long
> > time ago? Any reference?
> >
> > I've seen the warning since quite some time, but didn't change the code
> > before sure that this doesn't introduce the bug described in the comment.
>
> From only 20 years ago:
>
> https://lore.kernel.org/all/20040316170812.GA14971@kroah.com/
>
> The particular code (zfcp) was changed, so it doesn't have this code
> (or never did?) anymore, but for the rest this may or may not still
> be valid.
I guess relevant may not have been the correct word. Maybe obvious? I
can keep the comment but I do not really see what it adds, although
reading the above thread, I suppose it was added as justification for
calling kfree() as ->release() for a 'struct device'? Kind of seems like
that ship has sailed since I see this all over the place as a
->release() function. I do not see how this patch could have a function
change beyond that but I may be misreading or misinterpreting your full
comment.
Cheers,
Nathan
next prev parent reply other threads:[~2024-04-18 14:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-17 18:24 [PATCH 0/3] drivers/s390: Fix instances of -Wcast-function-type-strict Nathan Chancellor
2024-04-17 18:24 ` [PATCH 1/3] s390/vmlogrdr: Remove function pointer cast Nathan Chancellor
2024-04-17 18:55 ` Arnd Bergmann
2024-04-18 5:56 ` Thomas Huth
2024-04-18 9:54 ` Heiko Carstens
2024-04-18 10:25 ` Heiko Carstens
2024-04-18 14:51 ` Nathan Chancellor [this message]
2024-04-18 15:15 ` Heiko Carstens
2024-04-18 15:34 ` Nathan Chancellor
2024-04-18 19:21 ` Heiko Carstens
2024-04-18 20:32 ` Nathan Chancellor
2024-04-18 19:46 ` Arnd Bergmann
2024-04-19 12:15 ` Heiko Carstens
2024-04-19 12:19 ` Arnd Bergmann
2024-04-19 14:12 ` Heiko Carstens
2024-04-23 7:34 ` Alexandra Winter
2024-05-06 19:26 ` Heiko Carstens
2024-04-17 18:24 ` [PATCH 2/3] s390/smsgiucv_app: " Nathan Chancellor
2024-04-17 18:56 ` Arnd Bergmann
2024-04-18 5:56 ` Thomas Huth
2024-04-17 18:24 ` [PATCH 3/3] s390/netiucv: " Nathan Chancellor
2024-04-17 18:57 ` Arnd Bergmann
2024-04-18 5:57 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240418145121.GA1435416@dev-arch.thelio-3990X \
--to=nathan@kernel.org \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=borntraeger@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=linux-s390@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=netdev@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=svens@linux.ibm.com \
--cc=twinkler@linux.ibm.com \
--cc=wintera@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox