From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5lqL-0001FF-Qg for qemu-devel@nongnu.org; Sun, 06 Dec 2015 21:48:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a5lqI-00033h-KA for qemu-devel@nongnu.org; Sun, 06 Dec 2015 21:48:01 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38880) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5lqI-00033c-AE for qemu-devel@nongnu.org; Sun, 06 Dec 2015 21:47:58 -0500 References: <1449305702-2122-1-git-send-email-yanmiaobest@gmail.com> <1449305702-2122-3-git-send-email-yanmiaobest@gmail.com> From: Jason Wang Message-ID: <5664F352.3010305@redhat.com> Date: Mon, 7 Dec 2015 10:47:46 +0800 MIME-Version: 1.0 In-Reply-To: <1449305702-2122-3-git-send-email-yanmiaobest@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 2/3] net/vmxnet3: fix debug macro pattern for vmxnet3 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Miao Yan , dmitry@daynix.com, qemu-devel@nongnu.org, eblake@redhat.com, armbru@redhat.com On 12/05/2015 04:55 PM, Miao Yan wrote: > 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 > Reviewed-by: Eric Blake > --- > Changes in v2: > - Fix grammar error in commit log Applied in my -net for 2.5. Thanks > > hw/net/vmxnet_debug.h | 139 +++++++++++++++++++++++++++++++------------------- > 1 file changed, 86 insertions(+), 53 deletions(-) > > diff --git a/hw/net/vmxnet_debug.h b/hw/net/vmxnet_debug.h > index 96dae0f..96495db 100644 > --- a/hw/net/vmxnet_debug.h > +++ b/hw/net/vmxnet_debug.h > @@ -20,94 +20,127 @@ > > #define VMXNET_DEVICE_NAME "vmxnet3" > > -/* #define VMXNET_DEBUG_CB */ > #define VMXNET_DEBUG_WARNINGS > #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 */ > + > +#undef VMXNET_DEBUG_CB > +#undef VMXNET_DEBUG_INTERRUPTS > +#undef VMXNET_DEBUG_CONFIG > +#undef VMXNET_DEBUG_RINGS > +#undef VMXNET_DEBUG_PACKETS > +#undef VMXNET_DEBUG_SHMEM_ACCESS > + > +#ifdef VMXNET_DEBUG_CB > +# define VMXNET_DEBUG_CB_ENABLED 1 > +#else > +# define VMXNET_DEBUG_CB_ENABLED 0 > +#endif > + > +#ifdef VMXNET_DEBUG_WARNINGS > +# define VMXNET_DEBUG_WARNINGS_ENABLED 1 > +#else > +# define VMXNET_DEBUG_WARNINGS_ENABLED 0 > +#endif > + > +#ifdef VMXNET_DEBUG_ERRORS > +# define VMXNET_DEBUG_ERRORS_ENABLED 1 > +#else > +# define VMXNET_DEBUG_ERRORS_ENABLED 0 > +#endif > + > +#ifdef VMXNET_DEBUG_CONFIG > +# define VMXNET_DEBUG_CONFIG_ENABLED 1 > +#else > +# define VMXNET_DEBUG_CONFIG_ENABLED 0 > +#endif > + > +#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 { \ > - printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_SHMEM_ACCESS_ENABLED) { \ > + printf("[%s][SH][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_SHPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_CB > #define VMW_CBPRN(fmt, ...) \ > do { \ > - printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_CB_ENABLED) { \ > + printf("[%s][CB][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_CBPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_PACKETS > #define VMW_PKPRN(fmt, ...) \ > do { \ > - printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_PACKETS_ENABLED) { \ > + printf("[%s][PK][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_PKPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_WARNINGS > #define VMW_WRPRN(fmt, ...) \ > do { \ > - printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_WARNINGS_ENABLED) { \ > + printf("[%s][WR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_WRPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_ERRORS > #define VMW_ERPRN(fmt, ...) \ > do { \ > - printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_ERRORS_ENABLED) { \ > + printf("[%s][ER][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_ERPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_INTERRUPTS > #define VMW_IRPRN(fmt, ...) \ > do { \ > - printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_INTERRUPTS_ENABLED) { \ > + printf("[%s][IR][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_IRPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_CONFIG > #define VMW_CFPRN(fmt, ...) \ > do { \ > - printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_CONFIG_ENABLED) { \ > + printf("[%s][CF][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_CFPRN(fmt, ...) do {} while (0) > -#endif > > -#ifdef VMXNET_DEBUG_RINGS > #define VMW_RIPRN(fmt, ...) \ > do { \ > - printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > - ## __VA_ARGS__); \ > + if (VMXNET_DEBUG_RINGS_ENABLED) { \ > + printf("[%s][RI][%s]: " fmt "\n", VMXNET_DEVICE_NAME, __func__, \ > + ## __VA_ARGS__); \ > + } \ > } while (0) > -#else > -#define VMW_RIPRN(fmt, ...) do {} while (0) > -#endif > > #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]