lkml.org 
[lkml]   [2020]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/15] isci: avoid gcc-10 zero-length-bounds warning
    Date
    gcc-10 warns about accesses to zero-length arrays:

    drivers/scsi/isci/task.h:125:31: error: array subscript 0 is outside the bounds of an interior zero-length array 'u8[0]' {aka 'unsigned char[0]'} [-Werror=zero-length-bounds]
    125 | tmf->resp.resp_iu.resp_data[0],
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
    include/linux/dynamic_debug.h:143:2: note: in expansion of macro '__dynamic_func_call'
    143 | __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__)
    | ^~~~~~~~~~~~~~~~~~~
    include/linux/dynamic_debug.h:157:2: note: in expansion of macro '_dynamic_func_call'
    157 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
    | ^~~~~~~~~~~~~~~~~~
    include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
    115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
    | ^~~~~~~~~~~~~~~
    drivers/scsi/isci/task.h:111:3: note: in expansion of macro 'dev_dbg'
    111 | dev_dbg(&ihost->pdev->dev,
    | ^~~~~~~
    In file included from include/scsi/libsas.h:15,
    from drivers/scsi/isci/task.c:59:
    include/scsi/sas.h:326:9: note: while referencing 'resp_data'
    326 | u8 resp_data[0];
    | ^~~~~~~~~

    This instance is not a bug, so just work around the warning by
    adding a temporary pointer.

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    ---
    drivers/scsi/isci/task.h | 7 +++----
    1 file changed, 3 insertions(+), 4 deletions(-)

    diff --git a/drivers/scsi/isci/task.h b/drivers/scsi/isci/task.h
    index 8f4531f22ac2..2d556d7b5292 100644
    --- a/drivers/scsi/isci/task.h
    +++ b/drivers/scsi/isci/task.h
    @@ -98,6 +98,8 @@ struct isci_tmf {

    static inline void isci_print_tmf(struct isci_host *ihost, struct isci_tmf *tmf)
    {
    + u8 *resp = tmf->resp.resp_iu.resp_data;
    +
    if (SAS_PROTOCOL_SATA == tmf->proto)
    dev_dbg(&ihost->pdev->dev,
    "%s: status = %x\n"
    @@ -122,10 +124,7 @@ static inline void isci_print_tmf(struct isci_host *ihost, struct isci_tmf *tmf)
    tmf->resp.resp_iu.datapres,
    tmf->resp.resp_iu.status,
    be32_to_cpu(tmf->resp.resp_iu.response_data_len),
    - tmf->resp.resp_iu.resp_data[0],
    - tmf->resp.resp_iu.resp_data[1],
    - tmf->resp.resp_iu.resp_data[2],
    - tmf->resp.resp_iu.resp_data[3]);
    + resp[0], resp[1], resp[2], resp[3]);
    }


    --
    2.26.0
    \
     
     \ /
      Last update: 2020-04-30 23:35    [W:3.951 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site