Re: Is casting a void ptr to something else considered bad kernel coding style

From: Julia Lawall
Date: Fri Jul 15 2022 - 01:20:29 EST




On Thu, 14 Jul 2022, Steve French wrote:

> For examples like this where a pointer which is (void *) is cast to
> something else, is this considered bad coding style in kernel C
> programming?
>
> It may be that leaving the (unnecessary) cast in, although it is not
> required for C, makes the code clearer in some cases.
>
> Any opinions on changes to remove casts of void pointers for kernel
> code (which I have recently seen suggested)?
>
> for example:
>
> --- a/fs/cifs/smb2pdu.c
> +++ b/fs/cifs/smb2pdu.c
> @@ -354,7 +354,7 @@ fill_small_buf(__le16 smb2_command, struct cifs_tcon *tcon,
> void *buf,
> unsigned int *total_len)
> {
> - struct smb2_pdu *spdu = (struct smb2_pdu *)buf;
> + struct smb2_pdu *spdu = buf;

There would seem to be not much point to this (the original cast), since
the type is immediately explicit in the variable declaration.

It would also make for tiresome editing if the type should change, and it
reduces readability by adding a lot of characters that don't give useful
information.

julia