Nothing else defined MPI3_NVME_ENCAP_CMD_MAX, so the "command" buffer was being defined as a fake flexible array of size 1. Replace this with a proper flex array. Avoids this GCC 13 warning under -fstrict-flex-arrays=3: In function 'fortify_memset_chk', inlined from 'mpi3mr_build_nvme_sgl' at ../drivers/scsi/mpi3mr/mpi3mr_app.c:693:2, inlined from 'mpi3mr_bsg_process_mpt_cmds.constprop' at ../drivers/scsi/mpi3mr/mpi3mr_app.c:1214:8: ../include/linux/fortify-string.h:430:25: warning: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning] 430 | __write_overflow_field(p_size_field, size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Showing the changes to include/uapi (1 of 1 file). Show all
Unified · Split
| @@ -455,12 +455,6 @@ struct mpi3mr_bsg_packet { · 454 unmodified lines | |||
| 455 | } cmd; | 455 | } cmd; |
| 456 | }; | 456 | }; |
| 457 | 457 | ||
| 458 | |||
| 459 | /* MPI3: NVMe Encasulation related definitions */ | ||
| 460 | #ifndef MPI3_NVME_ENCAP_CMD_MAX | ||
| 461 | #define MPI3_NVME_ENCAP_CMD_MAX (1) | ||
| 462 | #endif | ||
| 463 | |||
| 464 | struct mpi3_nvme_encapsulated_request { | 458 | struct mpi3_nvme_encapsulated_request { |
| 465 | __le16 host_tag; | 459 | __le16 host_tag; |
| 466 | __u8 ioc_use_only02; | 460 | __u8 ioc_use_only02; |
| @@ -474,7 +468,7 @@ struct mpi3_nvme_encapsulated_request { · 7 unmodified lines | |||
| 474 | __le16 flags; | 468 | __le16 flags; |
| 475 | __le32 data_length; | 469 | __le32 data_length; |
| 476 | __le32 reserved14[3]; | 470 | __le32 reserved14[3]; |
| 477 | __le32 command[MPI3_NVME_ENCAP_CMD_MAX]; | 471 | __le32 command[]; |
| 478 | }; | 472 | }; |
| 479 | 473 | ||
| 480 | struct mpi3_nvme_encapsulated_error_reply { | 474 | struct mpi3_nvme_encapsulated_error_reply { |