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>