Re: [PATCH] nvmet-fc: Remove __counted_by from nvmet_fc_tgt_queue.fod[]

From: Jiri Slaby
Date: Thu May 30 2024 - 02:41:31 EST


On 29. 05. 24, 23:42, Nathan Chancellor wrote:
drivers/nvme/target/fc.c:151:2: error: 'counted_by' should not be applied to an array with element of unknown size because 'struct nvmet_fc_fcp_iod' is a struct type with a flexible array member.

The same as for mxser_port:

struct nvmet_fc_fcp_iod {
struct nvmefc_tgt_fcp_req *fcpreq;

struct nvme_fc_cmd_iu cmdiubuf;
struct nvme_fc_ersp_iu rspiubuf;
dma_addr_t rspdma;
struct scatterlist *next_sg;
struct scatterlist *data_sg;
int data_sg_cnt;
u32 offset;
enum nvmet_fcp_datadir io_dir;
bool active;
bool abort;
bool aborted;
bool writedataactive;
spinlock_t flock;

struct nvmet_req req;
struct work_struct defer_work;

struct nvmet_fc_tgtport *tgtport;
struct nvmet_fc_tgt_queue *queue;

struct list_head fcp_list; /* tgtport->fcp_list */
};

The error appears to be invalid.

This will be an error in a future compiler version [-Werror,-Wbounds-safety-counted-by-elt-type-unknown-size]
151 | struct nvmet_fc_fcp_iod fod[] __counted_by(sqsize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
--
--
js
suse labs