Re: [PATCH] scsi: ibmvscsis: Silence -Warray-bounds warning

From: Tyrel Datwyler
Date: Wed Feb 09 2022 - 20:59:21 EST


On 2/7/22 10:12 PM, Kees Cook wrote:
> Instead of doing a cast to storage that is too small, add a union for
> the high 64 bits. Silences the warnings under -Warray-bounds:
>
> drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c: In function 'ibmvscsis_send_messages':
> drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c:1934:44: error: array subscript 'struct viosrp_crq[0]' is partly outside array bounds of 'u64[1]' {aka 'long long unsigned int[1]'} [-Werror=array-bounds]
> 1934 | crq->valid = VALID_CMD_RESP_EL;
> | ^~
> drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c:1875:13: note: while referencing 'msg_hi'
> 1875 | u64 msg_hi = 0;
> | ^~~~~~
>
> There is no change to the resulting binary instructions.
>
> Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Link: https://lore.kernel.org/lkml/20220125142430.75c3160e@xxxxxxxxxxxxxxxx
> Cc: Michael Cyr <mikecyr@xxxxxxxxxxxxx>
> Cc: "James E.J. Bottomley" <jejb@xxxxxxxxxxxxx>
> Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx>
> Cc: Tyrel Datwyler <tyreld@xxxxxxxxxxxxx>
> Cc: linux-scsi@xxxxxxxxxxxxxxx
> Cc: target-devel@xxxxxxxxxxxxxxx
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 9 +++------

Reviewed-by: Tyrel Datwyler <tyreld@xxxxxxxxxxxxx>