From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0069.outbound.protection.outlook.com [104.47.32.69]) by dpdk.org (Postfix) with ESMTP id EE76B592F for ; Tue, 5 Jul 2016 14:50:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=EMSlcxOdtHhv3WF2OkE5JiLKCHXY+hRjLfovaBms+6E=; b=SJzLmz6wjGdBVwF3qDHEG5Na4xOPMxHjskjPbRKmxtVp7GSNOsMWuHJ9YQF3zl9QunGcLmZfoL39VYVxcb2hvjif2JgScQbhYmGqxAmPPaVsHvRm8n/9EZQztyaSZhRh8bS549STHaUugSWDHjc9vHfPIl6CBnhIVWxsKY3qWuY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.com (111.93.218.67) by BLUPR0701MB1716.namprd07.prod.outlook.com (10.163.85.142) with Microsoft SMTP Server (TLS) id 15.1.534.14; Tue, 5 Jul 2016 12:50:06 +0000 From: Jerin Jacob To: CC: , , , , , Jerin Jacob Date: Tue, 5 Jul 2016 18:19:23 +0530 Message-ID: <1467722966-2572-2-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1467722966-2572-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1467371814-26754-1-git-send-email-jerin.jacob@caviumnetworks.com> <1467722966-2572-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MAXPR01CA0020.INDPRD01.PROD.OUTLOOK.COM (10.164.147.27) To BLUPR0701MB1716.namprd07.prod.outlook.com (10.163.85.142) X-MS-Office365-Filtering-Correlation-Id: adfc7109-f394-4b0c-4c16-08d3a4d2e5c8 X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 2:SgZBTwkXGOoY4fzHu7aBfvVXw7n9yLbD+7pl8c5pi23v/4KyUYkAphyq36GTmRocUKpOuTIOJPLAoTMN18I3AxNvBxiWnXH/f45LG/3gUaTYk977KhaqQ71labaMBnwRHrc7dd5LWBKS2tVNHeal4xAz5bVC40p3LtqU/2WTnDoijs12HcEw34hkSZvrBA5P; 3:AjTAIECJ0w/IIdLufq0AJaasAp/y9ml/nU0CctBwJQAk5Kapm4BSmk8qQECTzXOHH4ZEuDi97ZEX1HtU05Gqd0GFW/DOTCcx4edjuvKJ0uibnHpumCiiJWcB0Hc7vmAq X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1716; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 25:zUCCB1iK1qJ6ZFmvsI5P/ZsZazEq/4wR+SbBZ2x/bY1ZwoY83IfbIk+f+wArd5UtENAc8OaeohostwDQOK8v4wf4r6+MrMywmIriTduo576+yz4rIclm5xN+9LpV9hSE5QqjVv5b3DhIZvdfbbw2E3GlpYPoQVWV2f9IUb2BnNXeHwalaYRnxhsVlylaFiBkmIadBac+NBTnroqnPS2m0oryX/2iKiomzmBAsxB+YLCJXqELuDGfZWinfddLa3TajpMY/b8/8VVkBlEDKyKZM0tJZ0/grgniRlEmUYfrRQJ1urHMR/bzUh27R9Dj10HxFHeMrRWQW4B3Fo47rETDtFNyLWG6fMT07ZMdnRhTRzQF7Ax5LLmJ6e7wDLUxBE60zSdwXZBkMBL5oMAf0w5eFpzyapGsT6PUY2u/+gq60WmJ8mHnNtmm9qWGuuok1X5Jah0Wg0kFtHJSXw8niT7DwPGDS2h4tVsNt3AtrgXcHYtnbgHrG9WuWgDIjn+lathqXQesD8L52Vuu7QYkKAwxNWaaGWBw2UjG2aKDmq7fXzVU2EBW/u1Z+XOP5XrfgW1833dYhEkZZdfWOrA5p91OsmM3vrxGvEaNv8w9qSruBDKz+5bt51g4D3TS6yLL6sIs3I2Ogznh0KK5HfRIwS1ld1D5hJN34GvC+tyzULYEHKbAhTE47jKXxCbHRKkYE6DJ+XAbt91wpYjjxDmSCL8b+ivBxxKbTeca+BnOfcgAsve4QcKQLRFIGNy+99UT6UOAJ/NvyN+Qas7JQa4hk6mll2gvMUA5a4CCxT31QW+DYWI= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 31:S/lMrVPY0UA+CoUsUMyTUIWVejFBJWj0iXt3CZFwA504pGVR8KpkEBVbBluBlwFlshR9sQCv0muh5wluW0KaE2lebbwdfH6P7t1phFe+flpzNaU7LaFVvBszw41S+JmTjqrxcGVEGO0Q3rDRf/plTANp9KUI01/DdmX7zRRCyhuoPorgWGVP6RPL1wtwHn+raTrpkiYFTIzoyt56xP86UQ==; 20:IVT1I7l6ipAXo+TwZsp1R2S/AGmLydQEmjCHT6OzYmrlxlNwdNzN6M3sb3AodyJs+Nym3qTgqJUc83hR0yuwmvDg82RHH8jzFhBIclWdFH8FwCXL3Dq07uPFSWLvEhzXK6RmXiD9IjyGKSr/OeyVwlLV3+YnnM7QmrTYuU44/AaMjIwFdUkRkpbB2hAOOrOBfKd7I64vitc83PbXzDmDZjo8AR9621TzByHcUuvL1K6EJt4xYMwVv9vcJaMUaZsAYy+pkmOEy+ukZzYOVpEi//TLFaOr4jkjxvgL36wdAj4KWDNXLmrQ9cOqHIdljSNR+FV9ditdXVsdkplkrq+uTuojFVOeRZ2qEk/dlwRSUeaj6zxdq97XH5XP4D0ja8Be3gJlAmwL5Evzto9nOpK38Qo4EsWF7qqsqU3cgMF6Hw4D9dHD2GrDT93VlXNfxnac1HDsqwkk1eUxRYNPZea1vzoLpmbi9w25nSXUv065PzbTlZSIYDJ+Un9exMVTE3kbx0t6hAr7VfJeyzS4Y3eUZ8j83Jso9HROxCuPxJdqUtpqMH6qysDlBStAWxGMHnVdtEiSSTCFZgbRZX2BYKao53s97dwobzZq8D1wTkuHSko= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001); SRVR:BLUPR0701MB1716; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1716; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 4:cI4WPzho5YlNzGWGzVIZzW4K8rRtN5cFFnmmsKrxoxKu4P2UCbX1T/VjNxNtRUD4TMtU2hmAK5erCsCdpxQ2h7GBdkTJhefCSQ51qX17nJjLVm6Z7Xn3lk+CRU753COBh8aeU9qKXTrs6EEjFr4XjQXOQvpgeeYMReKORXxZn+E0/asESc2iRCdax53aGIFISU1keCT2E+FlUmCnsOGgFBYsBcKyrxprT4nnxEZzyrttgIM2BBV7ewgKhuOr876LPMoh2n6vtDhuZdx7DJBLRHPe/cgDMSPIhsolNt3AXDb+1jNDsJHFo25Jyv+UwnyVDoqE4SM6R3B00mUcqkKhz7BdJ4TSfVkezAUo+hOr8Rxa4ML6PruHc5A2y8rtBD9h X-Forefront-PRVS: 0994F5E0C5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(305945005)(7846002)(101416001)(7736002)(19580395003)(107886002)(97736004)(19580405001)(189998001)(69596002)(110136002)(68736007)(50226002)(42186005)(92566002)(575784001)(53416004)(48376002)(4001430100002)(2950100001)(50466002)(33646002)(76176999)(5009440100003)(81156014)(8676002)(81166006)(586003)(47776003)(105586002)(2351001)(5003940100001)(229853001)(106356001)(4326007)(6116002)(3846002)(66066001)(36756003)(77096005)(50986999)(2906002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1716; H:localhost.localdomain.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1716; 23:fXQK+F5yXQ9/pV1E12dFd+V6RK21Qgggar+uF/R?= =?us-ascii?Q?/F987s/aCuHgFAXA81Rc0InZQIiK+oDK+R6JKN5AdQdNPdV/OWp0Ldh5IUAu?= =?us-ascii?Q?57UPix6GlZ0Gbb5HhZBREJpWJ3f7FcV8S1d64K0kpHMy4YqO+Ul6NasybAl5?= =?us-ascii?Q?OfVEffP2ifIJvrXVMuOvIt+lEzdzzgsAYB0fWPNY87uaKFq7rCUcpP75SFwm?= =?us-ascii?Q?yX61o0YoaO/zy2PRCqwAE0MzqQm+IRqXC2Q65FCr6Wdd5WrrW5R3rQZKLMsq?= =?us-ascii?Q?qUi0jqpsZYeXEehrEYtRKfQEZAYUSfp8YMHeLOqtGasN4OgO1GvqcqgJ8lGb?= =?us-ascii?Q?LlwCWBZ/U7o0GQIhtVXd9kMQmgxKLXBHBKcrIF1WeVI0jahJFs05+l/2gPZC?= =?us-ascii?Q?YDhLuQGHllCGpGCS7XJC4vstN2XKQlHlEsIEK3CeEBa3BT+Lx8EQS3BEnpF9?= =?us-ascii?Q?z8piUgV0Gilro4ullxQGhHun6/B74f21JijcoSKDN5j/tXY36NM+4q0tT1pX?= =?us-ascii?Q?kjQ7lHlV0T87ed99kJpf0h499OnI3VjbYpRd/+DHZcJxMGk4g2ddvXmBpRbA?= =?us-ascii?Q?5Ten3IK6EdAqcPb6Gucg+p11QbPk9hZuVdSUhvH3ErpBSRszQ4MUxgrv6ifF?= =?us-ascii?Q?7g3vH6GobTrwbII+dUR2On9XUkckUhY3khGebuRPDBAz2Tda3kII6curn7yr?= =?us-ascii?Q?xLfTJE8CjlicirtyOiZVphDrojuuCQpWrQ4ISJZGFTjHr5ESrPTOtptFPwdb?= =?us-ascii?Q?HXdLT1WrX9tFDIV7c0Vw8K3KXxZG+cDr1WN23Z/mQd4gCYmxt6PnCrWYrwfH?= =?us-ascii?Q?WG3CWbQ1lEHXenIX+bMWGMU/hu3AHldKlrSYOdcVIUbueJTHixbhkCOITcyk?= =?us-ascii?Q?1XFjlNKaa2BMKfa78ghuHAjmKyyGCm6hcpOaSK8m5YfI8oRJDqjc72+O0+w1?= =?us-ascii?Q?A4cKw0Crob6k/2yLya9Vtrbc+3B8VTO84UIA0wWkmZ4Di5MKNFAp6ZKgflqp?= =?us-ascii?Q?yPrkF03qzhYp6md2K08zGYT7Mx9EViP36Cf6NVVd3ESbReZjEnb/1D0Vmg+H?= =?us-ascii?Q?JrHvH6UR9jHoJJzuAog7KyKasyaDCwNPtVYEFtspl8hgHufJIkkhXHfGo8ge?= =?us-ascii?Q?38JLt/jmFw1sHe65vbXXUtMIQjT2O8ZiQf5Apo+CHM4Yk28i+9MT1OscsfcF?= =?us-ascii?Q?3synLVaJ9iZrJ9eqQFY3XUUIBExpt2RbP2J0y2iLZwZ6n6a4Ii0UIXWqeug?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 6:EqUQU/TkGlfMC7c0zzGON7rgGWZAVavh8Txke/vj4K5dJKojQw3QAylG1UDFi+AzICC/OOnFMZ68I7EPlPb5djbjOM+/nGQSzz/hAzXBBuK+c3WsDj95tfFxC6heQLxWXC5ppGOjzs9+mggl9NAPCGZ4FfkSWC7WVW9cWV51NRqIIs1UNA8wjMYm2ZxlWDaQtDzoStxUfl0cZVlic/Jx98JRYyzBklbloF/47/vvhY4gQEQlvY0zxCFGt0p53aGAR+F1vdIkELzA7VwQcaDyu29DbNRckSCpyPuy4IR7UzQ=; 5:y8aVl7zUU+l1JTCY3EY8WHv0BFWpQnbrMc2hr01wkKwDzrXLRO594xMliSa6Oe0QntxGOsAlr1kGQEQtY/CLTMSlBK+xXPYQWneUkb8OA5O/ItPNOmxLluKySCrZqeIBdIGDGGwIhFvZF1w8pJ/Ghg==; 24:B5bMW/MHlEGBnifxFc+y3d0rK2ajgThPIPVWaGFqpyEGVRWNCIlWCRd1R01G2Gmx7nAVQlnESr7brNR2vUDxDN999uLxjl2zWsWKmZ/Z6gA=; 7:csyurVZ5ZFwI7PgkvQk9j44oEZ6k94rXgMssor1fW0jbZLqgivcbLLbn0XcdCjLAkw/adO8eiunTmDzN6dTDeYV4hAYQI9s/mTQHD4ojnm8StcBp2IcJ3QjYQncwszcMQGvW82aV0HRv3DDkGzoJ31qxTtM1x5qTNRBBedCeimbPcpUFH/DNLirioFWNAxgYL8oqJgnPylZB/+7/2wnQiBKNJ647g8kWd9cKQYMtlZ+KVi/e/L/BSIaAPiMUdDWc SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2016 12:50:06.2009 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1716 Subject: [dpdk-dev] [PATCH v3 1/4] virtio: conditional compilation cleanup X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jul 2016 12:50:11 -0000 Removed unnecessary compile time dependency on "use_simple_rxtx". Signed-off-by: Jerin Jacob --- drivers/net/virtio/Makefile | 3 --- drivers/net/virtio/virtio_pci.h | 1 + drivers/net/virtio/virtio_rxtx.c | 24 ++++++++---------------- drivers/net/virtio/virtio_rxtx.h | 3 +-- drivers/net/virtio/virtio_rxtx_simple.c | 8 ++++++-- drivers/net/virtio/virtio_user_ethdev.c | 1 + 6 files changed, 17 insertions(+), 23 deletions(-) diff --git a/drivers/net/virtio/Makefile b/drivers/net/virtio/Makefile index 3020b68..b9b0d8d 100644 --- a/drivers/net/virtio/Makefile +++ b/drivers/net/virtio/Makefile @@ -50,10 +50,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtqueue.c SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_pci.c SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx.c SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_ethdev.c - -ifeq ($(findstring RTE_MACHINE_CPUFLAG_SSSE3,$(CFLAGS)),RTE_MACHINE_CPUFLAG_SSSE3) SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple.c -endif ifeq ($(CONFIG_RTE_VIRTIO_USER),y) SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_user/vhost_user.c diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h index dd7693f..b8295a7 100644 --- a/drivers/net/virtio/virtio_pci.h +++ b/drivers/net/virtio/virtio_pci.h @@ -253,6 +253,7 @@ struct virtio_hw { uint8_t use_msix; uint8_t started; uint8_t modern; + uint8_t use_simple_rxtx; uint8_t mac_addr[ETHER_ADDR_LEN]; uint32_t notify_off_multiplier; uint8_t *isr; diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c index a27208e..e707954 100644 --- a/drivers/net/virtio/virtio_rxtx.c +++ b/drivers/net/virtio/virtio_rxtx.c @@ -67,10 +67,6 @@ #define VIRTIO_SIMPLE_FLAGS ((uint32_t)ETH_TXQ_FLAGS_NOMULTSEGS | \ ETH_TXQ_FLAGS_NOOFFLOADS) -#ifdef RTE_MACHINE_CPUFLAG_SSSE3 -static int use_simple_rxtx; -#endif - static void vq_ring_free_chain(struct virtqueue *vq, uint16_t desc_idx) { @@ -333,6 +329,7 @@ virtio_dev_rxtx_start(struct rte_eth_dev *dev) */ uint16_t i; uint16_t desc_idx; + struct virtio_hw *hw = dev->data->dev_private; PMD_INIT_FUNC_TRACE(); @@ -353,8 +350,7 @@ virtio_dev_rxtx_start(struct rte_eth_dev *dev) nbufs = 0; error = ENOSPC; -#ifdef RTE_MACHINE_CPUFLAG_SSSE3 - if (use_simple_rxtx) { + if (hw->use_simple_rxtx) { for (desc_idx = 0; desc_idx < vq->vq_nentries; desc_idx++) { vq->vq_ring.avail->ring[desc_idx] = desc_idx; @@ -362,7 +358,7 @@ virtio_dev_rxtx_start(struct rte_eth_dev *dev) VRING_DESC_F_WRITE; } } -#endif + memset(&rxvq->fake_mbuf, 0, sizeof(rxvq->fake_mbuf)); for (desc_idx = 0; desc_idx < RTE_PMD_VIRTIO_RX_MAX_BURST; desc_idx++) { @@ -378,12 +374,11 @@ virtio_dev_rxtx_start(struct rte_eth_dev *dev) /****************************************** * Enqueue allocated buffers * *******************************************/ -#ifdef RTE_MACHINE_CPUFLAG_SSSE3 - if (use_simple_rxtx) + if (hw->use_simple_rxtx) error = virtqueue_enqueue_recv_refill_simple(vq, m); else -#endif error = virtqueue_enqueue_recv_refill(vq, m); + if (error) { rte_pktmbuf_free(m); break; @@ -404,8 +399,7 @@ virtio_dev_rxtx_start(struct rte_eth_dev *dev) struct virtqueue *vq = txvq->vq; virtio_dev_vring_start(vq); -#ifdef RTE_MACHINE_CPUFLAG_SSSE3 - if (use_simple_rxtx) { + if (hw->use_simple_rxtx) { uint16_t mid_idx = vq->vq_nentries >> 1; for (desc_idx = 0; desc_idx < mid_idx; desc_idx++) { @@ -426,7 +420,7 @@ virtio_dev_rxtx_start(struct rte_eth_dev *dev) desc_idx++) vq->vq_ring.avail->ring[desc_idx] = desc_idx; } -#endif + VIRTQUEUE_DUMP(vq); } } @@ -456,9 +450,7 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev, dev->data->rx_queues[queue_idx] = rxvq; -#ifdef RTE_MACHINE_CPUFLAG_SSSE3 virtio_rxq_vec_setup(rxvq); -#endif return 0; } @@ -517,7 +509,7 @@ virtio_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_LOG(INFO, "Using simple rx/tx path"); dev->tx_pkt_burst = virtio_xmit_pkts_simple; dev->rx_pkt_burst = virtio_recv_pkts_vec; - use_simple_rxtx = 1; + hw->use_simple_rxtx = 1; } #endif diff --git a/drivers/net/virtio/virtio_rxtx.h b/drivers/net/virtio/virtio_rxtx.h index 058b56a..28f82d6 100644 --- a/drivers/net/virtio/virtio_rxtx.h +++ b/drivers/net/virtio/virtio_rxtx.h @@ -86,10 +86,9 @@ struct virtnet_ctl { const struct rte_memzone *mz; /**< mem zone to populate RX ring. */ }; -#ifdef RTE_MACHINE_CPUFLAG_SSSE3 int virtio_rxq_vec_setup(struct virtnet_rx *rxvq); int virtqueue_enqueue_recv_refill_simple(struct virtqueue *vq, struct rte_mbuf *m); -#endif + #endif /* _VIRTIO_RXTX_H_ */ diff --git a/drivers/net/virtio/virtio_rxtx_simple.c b/drivers/net/virtio/virtio_rxtx_simple.c index 242ad90..67430da 100644 --- a/drivers/net/virtio/virtio_rxtx_simple.c +++ b/drivers/net/virtio/virtio_rxtx_simple.c @@ -37,8 +37,6 @@ #include #include -#include - #include #include #include @@ -131,6 +129,10 @@ virtio_rxq_rearm_vec(struct virtnet_rx *rxvq) vq_update_avail_idx(vq); } +#ifdef RTE_MACHINE_CPUFLAG_SSSE3 + +#include + /* virtio vPMD receive routine, only accept(nb_pkts >= RTE_VIRTIO_DESC_PER_LOOP) * * This routine is for non-mergeable RX, one desc for each guest buffer. @@ -293,6 +295,8 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, return nb_pkts_received; } +#endif + #define VIRTIO_TX_FREE_THRESH 32 #define VIRTIO_TX_MAX_FREE_BUF_SZ 32 #define VIRTIO_TX_FREE_NR 32 diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c index 3d3c9da..3185a4c 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -303,6 +303,7 @@ virtio_user_eth_dev_alloc(const char *name) hw->vtpci_ops = &virtio_user_ops; hw->use_msix = 0; hw->modern = 0; + hw->use_simple_rxtx = 0; hw->virtio_user_dev = dev; data->dev_private = hw; data->numa_node = SOCKET_ID_ANY; -- 2.5.5