• Arnd Bergmann's avatar
    nvme-fc: avoid gcc-10 zero-length-bounds warning · 3add1d93
    Arnd Bergmann authored
    When CONFIG_ARCH_NO_SG_CHAIN is set, op->sgl[0] cannot be dereferenced,
    as gcc-10 now points out:
    
    drivers/nvme/host/fc.c: In function 'nvme_fc_init_request':
    drivers/nvme/host/fc.c:1774:29: warning: array subscript 0 is outside the bounds of an interior zero-length array 'struct scatterlist[0]' [-Wzero-length-bounds]
     1774 |  op->op.fcp_req.first_sgl = &op->sgl[0];
          |                             ^~~~~~~~~~~
    drivers/nvme/host/fc.c:98:21: note: while referencing 'sgl'
       98 |  struct scatterlist sgl[NVME_INLINE_SG_CNT];
          |                     ^~~
    
    I don't know if this is a legitimate warning or a false-positive.
    If this is just a false alarm, the warning is easily suppressed
    by interpreting the array as a pointer.
    
    Fixes: b1ae1a23 ("nvme-fc: Avoid preallocating big SGL for data")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    3add1d93
fc.c 104 KB