net/vmxnet3: fix debug macro pattern for vmxnet3
Vmxnet3 uses the following debug macro style: #ifdef SOME_DEBUG # define debug(...) do{ printf(...); } while (0) # else # define debug(...) do{ } while (0) #endif If SOME_DEBUG is undefined, then format string inside the debug macro will never be checked by compiler. Code is likely to break in the future when SOME_DEBUG is enabled because of lack of testing. This patch changes this to the following: #define debug(...) \ do { if (SOME_DEBUG_ENABLED) printf(...); } while (0) Signed-off-by: Miao Yan <yanmiaobest@gmail.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Dmitry Fleytman <dmitry@daynix.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
2e4ca7dbc1
commit
71c2f5b9b3
@ -20,94 +20,127 @@
|
|||||||
|
|
||||||
#define VMXNET_DEVICE_NAME "vmxnet3"
|
#define VMXNET_DEVICE_NAME "vmxnet3"
|
||||||
|
|
||||||
/* #define VMXNET_DEBUG_CB */
|
|
||||||
#define VMXNET_DEBUG_WARNINGS
|
#define VMXNET_DEBUG_WARNINGS
|
||||||
#define VMXNET_DEBUG_ERRORS
|
#define VMXNET_DEBUG_ERRORS
|
||||||
/* #define VMXNET_DEBUG_INTERRUPTS */
|
|
||||||
/* #define VMXNET_DEBUG_CONFIG */
|
|
||||||
/* #define VMXNET_DEBUG_RINGS */
|
|
||||||
/* #define VMXNET_DEBUG_PACKETS */
|
|
||||||
/* #define VMXNET_DEBUG_SHMEM_ACCESS */
|
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_SHMEM_ACCESS
|
#undef VMXNET_DEBUG_CB
|
||||||
#define VMW_SHPRN(fmt, ...) \
|
#undef VMXNET_DEBUG_INTERRUPTS
|
||||||
do { \
|
#undef VMXNET_DEBUG_CONFIG
|
||||||
printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
#undef VMXNET_DEBUG_RINGS
|
||||||
## __VA_ARGS__); \
|
#undef VMXNET_DEBUG_PACKETS
|
||||||
} while (0)
|
#undef VMXNET_DEBUG_SHMEM_ACCESS
|
||||||
#else
|
|
||||||
#define VMW_SHPRN(fmt, ...) do {} while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_CB
|
#ifdef VMXNET_DEBUG_CB
|
||||||
#define VMW_CBPRN(fmt, ...) \
|
# define VMXNET_DEBUG_CB_ENABLED 1
|
||||||
do { \
|
|
||||||
printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
|
||||||
## __VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
#else
|
||||||
#define VMW_CBPRN(fmt, ...) do {} while (0)
|
# define VMXNET_DEBUG_CB_ENABLED 0
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_PACKETS
|
|
||||||
#define VMW_PKPRN(fmt, ...) \
|
|
||||||
do { \
|
|
||||||
printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
|
||||||
## __VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
|
||||||
#define VMW_PKPRN(fmt, ...) do {} while (0)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_WARNINGS
|
#ifdef VMXNET_DEBUG_WARNINGS
|
||||||
#define VMW_WRPRN(fmt, ...) \
|
# define VMXNET_DEBUG_WARNINGS_ENABLED 1
|
||||||
do { \
|
|
||||||
printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
|
||||||
## __VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
#else
|
||||||
#define VMW_WRPRN(fmt, ...) do {} while (0)
|
# define VMXNET_DEBUG_WARNINGS_ENABLED 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_ERRORS
|
#ifdef VMXNET_DEBUG_ERRORS
|
||||||
#define VMW_ERPRN(fmt, ...) \
|
# define VMXNET_DEBUG_ERRORS_ENABLED 1
|
||||||
do { \
|
|
||||||
printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
|
||||||
## __VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
#else
|
||||||
#define VMW_ERPRN(fmt, ...) do {} while (0)
|
# define VMXNET_DEBUG_ERRORS_ENABLED 0
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_INTERRUPTS
|
|
||||||
#define VMW_IRPRN(fmt, ...) \
|
|
||||||
do { \
|
|
||||||
printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
|
||||||
## __VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
|
||||||
#define VMW_IRPRN(fmt, ...) do {} while (0)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_CONFIG
|
#ifdef VMXNET_DEBUG_CONFIG
|
||||||
#define VMW_CFPRN(fmt, ...) \
|
# define VMXNET_DEBUG_CONFIG_ENABLED 1
|
||||||
do { \
|
|
||||||
printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
|
||||||
## __VA_ARGS__); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
#else
|
||||||
#define VMW_CFPRN(fmt, ...) do {} while (0)
|
# define VMXNET_DEBUG_CONFIG_ENABLED 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VMXNET_DEBUG_RINGS
|
#ifdef VMXNET_DEBUG_RINGS
|
||||||
|
# define VMXNET_DEBUG_RINGS_ENABLED 1
|
||||||
|
#else
|
||||||
|
# define VMXNET_DEBUG_RINGS_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VMXNET_DEBUG_PACKETS
|
||||||
|
# define VMXNET_DEBUG_PACKETS_ENABLED 1
|
||||||
|
#else
|
||||||
|
# define VMXNET_DEBUG_PACKETS_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VMXNET_DEBUG_INTERRUPTS
|
||||||
|
# define VMXNET_DEBUG_INTERRUPTS_ENABLED 1
|
||||||
|
#else
|
||||||
|
# define VMXNET_DEBUG_INTERRUPTS_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VMXNET_DEBUG_SHMEM_ACCESS
|
||||||
|
# define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 1
|
||||||
|
#else
|
||||||
|
# define VMXNET_DEBUG_SHMEM_ACCESS_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define VMW_SHPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_SHMEM_ACCESS_ENABLED) { \
|
||||||
|
printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define VMW_CBPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_CB_ENABLED) { \
|
||||||
|
printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define VMW_PKPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_PACKETS_ENABLED) { \
|
||||||
|
printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define VMW_WRPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_WARNINGS_ENABLED) { \
|
||||||
|
printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define VMW_ERPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_ERRORS_ENABLED) { \
|
||||||
|
printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define VMW_IRPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_INTERRUPTS_ENABLED) { \
|
||||||
|
printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define VMW_CFPRN(fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (VMXNET_DEBUG_CONFIG_ENABLED) { \
|
||||||
|
printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#define VMW_RIPRN(fmt, ...) \
|
#define VMW_RIPRN(fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
if (VMXNET_DEBUG_RINGS_ENABLED) { \
|
||||||
## __VA_ARGS__); \
|
printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \
|
||||||
|
## __VA_ARGS__); \
|
||||||
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#else
|
|
||||||
#define VMW_RIPRN(fmt, ...) do {} while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define VMXNET_MF "%02X:%02X:%02X:%02X:%02X:%02X"
|
#define VMXNET_MF "%02X:%02X:%02X:%02X:%02X:%02X"
|
||||||
#define VMXNET_MA(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
|
#define VMXNET_MA(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
|
||||||
|
Loading…
Reference in New Issue
Block a user