From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <adrien.mazarguil@6wind.com>
Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66])
 by dpdk.org (Postfix) with ESMTP id 97DF2199B6
 for <dev@dpdk.org>; Fri,  2 Feb 2018 17:46:25 +0100 (CET)
Received: by mail-wm0-f66.google.com with SMTP id v123so13651819wmd.5
 for <dev@dpdk.org>; Fri, 02 Feb 2018 08:46:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:message-id:references:mime-version
 :content-disposition:in-reply-to;
 bh=FoYO4RFdz1WFapMg7Vm8naPO8VRMtNKzLpvorsM4tRQ=;
 b=jRjpKpF1/hDCmHDBlxcmNTn7uipayjnAk9UTmECZct1kQYSMXF7NBoYm44JwxbodsI
 YsstM6rwSv0OYuM0wD/O6XeZbK8RskXBimrDli/hF8Mb9rTVAnNT3nZsCyT5awwbqeB8
 bS3NSaBKv7UcuDK3DqY3gfnOfuMll/FDkRAnqdZrJG2fuZpxbVlJ2qAmug7LfIL84LT8
 jwzDQT40onl1Y5IQpSOq0pHFy9YWx1e6Fnl/dPm10Xdr5aV8EDmR3UFcBqFpfZJaV/DG
 GmSO/WZ1u1tT74h3EEUhK1DLGoB+FUnUd4A+l002tGi1toog2jpmmLxcKovchXPfWLSY
 GWOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:message-id:references
 :mime-version:content-disposition:in-reply-to;
 bh=FoYO4RFdz1WFapMg7Vm8naPO8VRMtNKzLpvorsM4tRQ=;
 b=TNeleMNGFOkL/ms+xUB7iig7OGMMMPXjaaIngSyvHK2ZmSnU1iCCLdF9BNwHTngkWg
 hlQTYEVfzFwGAPN9pFLdy7aaq7QScSfpUuRM8gimXUlqkwCvIXKK+QdN8skl55JxlJpu
 Vaqg1HLVtkwODTXWvhJ3WSecF7gwIe1OeV74zuplMhJ6eJC72GQ6fAkIdMRAq1lIuO6L
 njnMpvnnuyHV83Ye32NOJ+GDPCU8OHF4kQLSDuz1g5zXVdYr0mW7TAsDCR2yyPN2VKAX
 J6oFWSJ8L0Ac1Gsd46kz5NnAq9E+AGXqWuuOhHsfDaQAqKmu5LXFr8gyXUAVhninS8pK
 X2/g==
X-Gm-Message-State: AKwxytcipI21p8qSb90G2r/S/2FAxNX9X1qVoNGPIhcA3PhCXRUxwL7R
 ba1CsnPoG0t5Gxw0ccS1pCezRE4a
X-Google-Smtp-Source: AH8x225g42rtq5VIXdEF1lzC96KgzqxnBZjWzI5+PxHpZ1SYsp1mmexIzGR00WL4hHVT9dexvp6dEQ==
X-Received: by 10.28.26.21 with SMTP id a21mr27379175wma.158.1517589985286;
 Fri, 02 Feb 2018 08:46:25 -0800 (PST)
Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78])
 by smtp.gmail.com with ESMTPSA id p4sm3124942wrb.59.2018.02.02.08.46.24
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 02 Feb 2018 08:46:24 -0800 (PST)
Date: Fri, 2 Feb 2018 17:46:12 +0100
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Shahaf Shuler <shahafs@mellanox.com>
Cc: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>, dev@dpdk.org,
 Marcelo Ricardo Leitner <mleitner@redhat.com>
Message-ID: <20180202164050.13017-2-adrien.mazarguil@6wind.com>
References: <20180202144736.8239-1-adrien.mazarguil@6wind.com>
 <20180202164050.13017-1-adrien.mazarguil@6wind.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20180202164050.13017-1-adrien.mazarguil@6wind.com>
X-Mailer: git-send-email 2.11.0
Subject: [dpdk-dev] [PATCH v2 1/4] net/mlx: add debug checks to glue
	structure
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Feb 2018 16:46:25 -0000

This code should catch mistakes early if a glue structure member is added
without a corresponding implementation in the library.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx4/mlx4.c | 9 +++++++++
 drivers/net/mlx5/mlx5.c | 9 +++++++++
 2 files changed, 18 insertions(+)

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 50a55ee52..201d39b6e 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -799,6 +799,15 @@ rte_mlx4_pmd_init(void)
 		return;
 	assert(mlx4_glue);
 #endif
+#ifndef NDEBUG
+	/* Glue structure must not contain any NULL pointers. */
+	{
+		unsigned int i;
+
+		for (i = 0; i != sizeof(*mlx4_glue) / sizeof(void *); ++i)
+			assert(((const void *const *)mlx4_glue)[i]);
+	}
+#endif
 	mlx4_glue->fork_init();
 	rte_pci_register(&mlx4_driver);
 }
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 544599b01..050cfac0d 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1142,6 +1142,15 @@ rte_mlx5_pmd_init(void)
 		return;
 	assert(mlx5_glue);
 #endif
+#ifndef NDEBUG
+	/* Glue structure must not contain any NULL pointers. */
+	{
+		unsigned int i;
+
+		for (i = 0; i != sizeof(*mlx5_glue) / sizeof(void *); ++i)
+			assert(((const void *const *)mlx5_glue)[i]);
+	}
+#endif
 	mlx5_glue->fork_init();
 	rte_pci_register(&mlx5_driver);
 }
-- 
2.11.0