coresight: catu: fix clang build warning
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: 434d611cdd
("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>
This commit is contained in:
Родитель
cf4f2ad6b8
Коммит
59d63de076
|
@ -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
|
||||
|
|
|
@ -772,7 +772,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,
|
||||
|
@ -786,7 +787,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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче