[PATCH] scsi: ibmvfc: Use 'unsigned int' for single-bit bitfields in 'struct ibmvfc_host'
Nick Desaulniers
ndesaulniers at google.com
Wed Oct 11 07:50:55 AEDT 2023
On Tue, Oct 10, 2023 at 1:32 PM Nathan Chancellor <nathan at kernel.org> wrote:
>
> Clang warns (or errors with CONFIG_WERROR=y) several times along the
> lines of:
>
> drivers/scsi/ibmvscsi/ibmvfc.c:650:17: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
> 650 | vhost->reinit = 1;
> | ^ ~
>
> A single-bit signed integer bitfield only has possible values of -1 and
> 0, not 0 and 1 like an unsigned one would. No context appears to check
> the actual value of these bitfields, just whether or not it is zero.
> However, it is easy enough to change the type of the fields to 'unsigned
> int', which keeps the same size in memory and resolves the warning.
>
> Fixes: 5144905884e2 ("scsi: ibmvfc: Use a bitfield for boolean flags")
> Signed-off-by: Nathan Chancellor <nathan at kernel.org>
Thanks for the patch!
Reviewed-by: Nick Desaulniers <ndesaulniers at google.com>
> ---
> drivers/scsi/ibmvscsi/ibmvfc.h | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h
> index 331ecf8254be..745ad5ac7251 100644
> --- a/drivers/scsi/ibmvscsi/ibmvfc.h
> +++ b/drivers/scsi/ibmvscsi/ibmvfc.h
> @@ -892,15 +892,15 @@ struct ibmvfc_host {
> int init_retries;
> int discovery_threads;
> int abort_threads;
> - int client_migrated:1;
> - int reinit:1;
> - int delay_init:1;
> - int logged_in:1;
> - int mq_enabled:1;
> - int using_channels:1;
> - int do_enquiry:1;
> - int aborting_passthru:1;
> - int scan_complete:1;
> + unsigned int client_migrated:1;
> + unsigned int reinit:1;
> + unsigned int delay_init:1;
> + unsigned int logged_in:1;
> + unsigned int mq_enabled:1;
> + unsigned int using_channels:1;
> + unsigned int do_enquiry:1;
> + unsigned int aborting_passthru:1;
> + unsigned int scan_complete:1;
> int scan_timeout;
> int events_to_log;
> #define IBMVFC_AE_LINKUP 0x0001
>
> ---
> base-commit: b6f2e063017b92491976a40c32a0e4b3c13e7d2f
> change-id: 20231010-ibmvfc-fix-bitfields-type-971a07c64ec6
>
> Best regards,
> --
> Nathan Chancellor <nathan at kernel.org>
>
>
--
Thanks,
~Nick Desaulniers
More information about the Linuxppc-dev
mailing list