4ebbe84dae
This commit fixes a compilation error if EM_PMD is
not defined, bug IGB_PMD is. The root cause of the
issue was that log init variables are declared as
extern in a header file, while the definition of the
variables was in e1000_ethdev.c. Hence, the definitions
were not available if the e1000 PMD is disabled.
To fix this, a new file is added e1000_logs.c, which
matches the e1000_logs.h header. The log variables are
always compiled in, but the PMD logs are only registered
if a PMD is enabled in the configuration. Extra checks
are added in order to avoid duplicate registering.
Fixes: ed5bbb767c
("net/e1000: implement dynamic logging")
Cc: stable@dpdk.org
Reported-by: Vipin Varghese <vipin.varghese@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Vipin Varghese <vipin.varghese@intel.com>
51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2010-2014 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _E1000_LOGS_H_
|
|
#define _E1000_LOGS_H_
|
|
|
|
#include <rte_log.h>
|
|
|
|
extern int e1000_logtype_init;
|
|
#define PMD_INIT_LOG(level, fmt, args...) \
|
|
rte_log(RTE_LOG_ ## level, e1000_logtype_init, \
|
|
"%s(): " fmt "\n", __func__, ##args)
|
|
|
|
#define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")
|
|
|
|
#ifdef RTE_LIBRTE_E1000_DEBUG_RX
|
|
#define PMD_RX_LOG(level, fmt, args...) \
|
|
RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
|
|
#else
|
|
#define PMD_RX_LOG(level, fmt, args...) do { } while(0)
|
|
#endif
|
|
|
|
#ifdef RTE_LIBRTE_E1000_DEBUG_TX
|
|
#define PMD_TX_LOG(level, fmt, args...) \
|
|
RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
|
|
#else
|
|
#define PMD_TX_LOG(level, fmt, args...) do { } while(0)
|
|
#endif
|
|
|
|
#ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE
|
|
#define PMD_TX_FREE_LOG(level, fmt, args...) \
|
|
RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args)
|
|
#else
|
|
#define PMD_TX_FREE_LOG(level, fmt, args...) do { } while(0)
|
|
#endif
|
|
|
|
extern int e1000_logtype_driver;
|
|
#define PMD_DRV_LOG_RAW(level, fmt, args...) \
|
|
rte_log(RTE_LOG_ ## level, e1000_logtype_driver, "%s(): " fmt, \
|
|
__func__, ## args)
|
|
|
|
#define PMD_DRV_LOG(level, fmt, args...) \
|
|
PMD_DRV_LOG_RAW(level, fmt "\n", ## args)
|
|
|
|
|
|
/* log init function shared by e1000 and igb drivers */
|
|
void e1000_igb_init_log(void);
|
|
|
|
#endif /* _E1000_LOGS_H_ */
|