lkml.org 
[lkml]   [2020]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 328/639] coresight: catu: fix clang build warning
    Date
    From: Arnd Bergmann <arnd@arndb.de>

    [ Upstream commit 59d63de076607a9334b11628b5c3ddda1d8f56cd ]

    Clang points out a syntax error, as the etr_catu_buf_ops structure is
    declared 'static' before the type is known:

    In file included from drivers/hwtracing/coresight/coresight-tmc-etr.c:12:
    drivers/hwtracing/coresight/coresight-catu.h:116:40: warning: tentative definition of variable with internal linkage has incomplete non-array type 'const struct etr_buf_operations' [-Wtentative-definition-incomplete-type]
    static const struct etr_buf_operations etr_catu_buf_ops;
    ^
    drivers/hwtracing/coresight/coresight-catu.h:116:21: note: forward declaration of 'struct etr_buf_operations'
    static const struct etr_buf_operations etr_catu_buf_ops;

    This seems worth fixing in the code, so replace pointer to the empty
    constant structure with a NULL pointer. We need an extra NULL pointer
    check here, but the result should be better object code otherwise,
    avoiding the silly empty structure.

    Fixes: 434d611cddef ("coresight: catu: Plug in CATU as a backend for ETR buffer")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    [Fixed line over 80 characters]
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/hwtracing/coresight/coresight-catu.h | 5 -----
    drivers/hwtracing/coresight/coresight-tmc-etr.c | 5 +++--
    2 files changed, 3 insertions(+), 7 deletions(-)

    diff --git a/drivers/hwtracing/coresight/coresight-catu.h b/drivers/hwtracing/coresight/coresight-catu.h
    index 1b281f0dcccca..1d2ad183fd92d 100644
    --- a/drivers/hwtracing/coresight/coresight-catu.h
    +++ b/drivers/hwtracing/coresight/coresight-catu.h
    @@ -109,11 +109,6 @@ static inline bool coresight_is_catu_device(struct coresight_device *csdev)
    return true;
    }

    -#ifdef CONFIG_CORESIGHT_CATU
    extern const struct etr_buf_operations etr_catu_buf_ops;
    -#else
    -/* Dummy declaration for the CATU ops */
    -static const struct etr_buf_operations etr_catu_buf_ops;
    -#endif

    #endif
    diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c
    index 2d6f428176ff8..3b684687b5a7d 100644
    --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c
    +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c
    @@ -747,7 +747,8 @@ static inline void tmc_etr_disable_catu(struct tmc_drvdata *drvdata)
    static const struct etr_buf_operations *etr_buf_ops[] = {
    [ETR_MODE_FLAT] = &etr_flat_buf_ops,
    [ETR_MODE_ETR_SG] = &etr_sg_buf_ops,
    - [ETR_MODE_CATU] = &etr_catu_buf_ops,
    + [ETR_MODE_CATU] = IS_ENABLED(CONFIG_CORESIGHT_CATU)
    + ? &etr_catu_buf_ops : NULL,
    };

    static inline int tmc_etr_mode_alloc_buf(int mode,
    @@ -761,7 +762,7 @@ static inline int tmc_etr_mode_alloc_buf(int mode,
    case ETR_MODE_FLAT:
    case ETR_MODE_ETR_SG:
    case ETR_MODE_CATU:
    - if (etr_buf_ops[mode]->alloc)
    + if (etr_buf_ops[mode] && etr_buf_ops[mode]->alloc)
    rc = etr_buf_ops[mode]->alloc(drvdata, etr_buf,
    node, pages);
    if (!rc)
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-01-24 12:19    [W:2.551 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site