From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0068.outbound.protection.outlook.com [104.47.0.68]) by dpdk.org (Postfix) with ESMTP id EB78C23B for ; Sun, 6 May 2018 08:25:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=tD9LGgmIkDs2M2wNkMyT6FkE5e9OuPiY3iUrMivnUEE=; b=nDSUhb2viMQX9ir0gZqyCX/VX5t5V3QIEtdkTyRR1JnHf6PdLXSf6hsSlOh+ygym9HTDTjWIf+NDxqlX1nXMmBrIJi/ZoPdfAQUw5TnUtCh3345cGGiFoiHOczbRRxcj4psfhI7HXZl0f/YPc4KZa92TOlJqoXpjPeT2BZu53+k= Received: from DB7PR05MB4426.eurprd05.prod.outlook.com (52.134.109.15) by DB7PR05MB4428.eurprd05.prod.outlook.com (52.134.109.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.735.18; Sun, 6 May 2018 06:25:27 +0000 Received: from DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::f116:5be4:ba29:fed8]) by DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::f116:5be4:ba29:fed8%13]) with mapi id 15.20.0735.018; Sun, 6 May 2018 06:25:27 +0000 From: Shahaf Shuler To: Yongseok Koh , Adrien Mazarguil , =?iso-8859-1?Q?N=E9lio_Laranjeiro?= CC: "dev@dpdk.org" , Yongseok Koh Thread-Topic: [dpdk-dev] [PATCH v2] net/mlx5: change device reference for secondary process Thread-Index: AQHT4mrZ8He3BxeH0kmuA5RwYJy4u6QiN4DA Date: Sun, 6 May 2018 06:25:26 +0000 Message-ID: References: <20180502061320.6675-1-yskoh@mellanox.com> <20180502231039.7369-1-yskoh@mellanox.com> In-Reply-To: <20180502231039.7369-1-yskoh@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; x-originating-ip: [31.154.10.107] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB4428; 7:+CJ3iX2/MvctGcG2VLI8omnWkQoSl/2zUETfGNQ/WzhaqEjpLCv4rOjOP8d9Gl5OJl6CZ+Tad2i9OQk4atsdiwjWoPRCxq3DE1egnHnh3LWYwpHPKRH1E9TRzc1aDZJntpr663DSNiC8l/61jQ+CGk+7gBQ5nXKm3SBhXq7QnX7nOtqThSM10+tWzZQ9/7OpVV2wf8Ky29x807bA2M+U1SmCigxFG/KQYP1CW543m+BwLv0HZXaGw0QUCeoh/otU x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB4428; x-ms-traffictypediagnostic: DB7PR05MB4428: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231254)(944501410)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011); SRVR:DB7PR05MB4428; BCL:0; PCL:0; RULEID:; SRVR:DB7PR05MB4428; x-forefront-prvs: 06640999CA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(39380400002)(376002)(396003)(346002)(366004)(189003)(199004)(3846002)(7696005)(6116002)(110136005)(33656002)(106356001)(105586002)(486006)(25786009)(2900100001)(316002)(54906003)(97736004)(68736007)(53946003)(14454004)(53936002)(9686003)(55016002)(4326008)(6246003)(107886003)(102836004)(6506007)(66066001)(26005)(81156014)(81166006)(8936002)(7736002)(6436002)(59450400001)(76176011)(3660700001)(476003)(3280700002)(446003)(11346002)(2906002)(305945005)(575784001)(86362001)(5660300001)(5250100002)(478600001)(99286004)(229853002)(74316002)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB4428; H:DB7PR05MB4426.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: A7mmynlN05G0g5A/I5vq+p+xdfGwINCf4G8YcWH6LLskAKmAZyynbvHF0NYk9vsJS21MbQBz8CEOXLcnds/0+U0lE/feVM+irHmei/qQBfOojvtvrwFUWRH6Ayo8X2KH03bRymW5v6OC6hYeS4bU+v734PLQt+AeC7xMWDVk08a8VWovj8LlEU5Z/Q2D7hjT spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 6986c2de-2a89-46c0-796f-08d5b31a2865 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6986c2de-2a89-46c0-796f-08d5b31a2865 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2018 06:25:26.9959 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB4428 Subject: Re: [dpdk-dev] [PATCH v2] net/mlx5: change device reference for secondary process X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 May 2018 06:25:30 -0000 Hi Koh, See some small comments.=20 Thursday, May 3, 2018 2:11 AM, Yongseok Koh: > Subject: [dpdk-dev] [PATCH v2] net/mlx5: change device reference for > secondary process >=20 > rte_eth_devices[] is not shared between primary and secondary process, > but a static array to each process. The reverse pointer of device (priv->= dev) is > invalid. Instead, priv has the pointer to shared data of the device, > struct rte_eth_dev_data *dev_data; >=20 > Two macros are added, > #define port_id(priv) ((priv)->dev_data->port_id) > #define eth_dev(priv) (&rte_eth_devices[(priv)->dev_data->port_id]) >=20 > Signed-off-by: Yongseok Koh > --- > drivers/net/mlx5/mlx5.c | 2 +- > drivers/net/mlx5/mlx5.h | 5 ++++- > drivers/net/mlx5/mlx5_flow.c | 21 +++++++++------------ > drivers/net/mlx5/mlx5_mr.c | 19 +++++++++---------- > drivers/net/mlx5/mlx5_rxq.c | 30 +++++++++++++++--------------- > drivers/net/mlx5/mlx5_txq.c | 15 +++++++-------- > 6 files changed, 45 insertions(+), 47 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index > 8f983061a..6c4a571ab 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -946,7 +946,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv > __rte_unused, > goto port_error; > } > eth_dev->data->dev_private =3D priv; > - priv->dev =3D eth_dev; > + priv->dev_data =3D eth_dev->data; > eth_dev->data->mac_addrs =3D priv->mac; > eth_dev->device =3D &pci_dev->device; > rte_eth_copy_pci_info(eth_dev, pci_dev); diff --git > a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index > c4d1d456b..3ab16bfa2 100644 > --- a/drivers/net/mlx5/mlx5.h > +++ b/drivers/net/mlx5/mlx5.h > @@ -121,7 +121,7 @@ struct mlx5_verbs_alloc_ctx { }; >=20 > struct priv { > - struct rte_eth_dev *dev; /* Ethernet device of master process. */ > + struct rte_eth_dev_data *dev_data; /* Pointer to device data. */ > struct ibv_context *ctx; /* Verbs context. */ > struct ibv_device_attr_ex device_attr; /* Device properties. */ > struct ibv_pd *pd; /* Protection Domain. */ @@ -168,6 +168,9 @@ > struct priv { > uint32_t nl_sn; /* Netlink message sequence number. */ }; >=20 > +#define port_id(priv) ((priv)->dev_data->port_id) #define eth_dev(priv) > +(&rte_eth_devices[(priv)->dev_data->port_id]) MACRO should with capital letters and prefixed with MLX5 to align with the = files consistency.=20 Also suggest to use the port_id macro inside the eth_dev one.=20 > + > /* mlx5.c */ >=20 > int mlx5_getenv_int(const char *); > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 129311d50..2e4bfac58 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -2061,7 +2061,7 @@ mlx5_flow_create_action_queue_drop(struct > rte_eth_dev *dev, > parser->queue[HASH_RXQ_ETH].ibv_attr; > if (parser->count) > flow->cs =3D parser->cs; > - if (!priv->dev->data->dev_started) > + if (!dev->data->dev_started) > return 0; > parser->queue[HASH_RXQ_ETH].ibv_attr =3D NULL; > flow->frxq[HASH_RXQ_ETH].ibv_flow =3D > @@ -2113,7 +2113,6 @@ mlx5_flow_create_action_queue_rss(struct > rte_eth_dev *dev, > struct rte_flow *flow, > struct rte_flow_error *error) > { > - struct priv *priv =3D dev->data->dev_private; > unsigned int i; >=20 > for (i =3D 0; i !=3D hash_rxq_init_n; ++i) { @@ -2122,7 +2121,7 @@ > mlx5_flow_create_action_queue_rss(struct rte_eth_dev *dev, > flow->frxq[i].ibv_attr =3D parser->queue[i].ibv_attr; > parser->queue[i].ibv_attr =3D NULL; > flow->frxq[i].hash_fields =3D parser->queue[i].hash_fields; > - if (!priv->dev->data->dev_started) > + if (!dev->data->dev_started) > continue; > flow->frxq[i].hrxq =3D > mlx5_hrxq_get(dev, > @@ -2268,7 +2267,7 @@ mlx5_flow_create_action_queue(struct > rte_eth_dev *dev, > struct rte_flow *flow, > struct rte_flow_error *error) > { > - struct priv *priv =3D dev->data->dev_private; > + struct priv *priv __rte_unused =3D dev->data->dev_private; Why not removing it?=20 > int ret; > unsigned int i; > unsigned int flows_n =3D 0; > @@ -2281,7 +2280,7 @@ mlx5_flow_create_action_queue(struct > rte_eth_dev *dev, > goto error; > if (parser->count) > flow->cs =3D parser->cs; > - if (!priv->dev->data->dev_started) > + if (!dev->data->dev_started) > return 0; > for (i =3D 0; i !=3D hash_rxq_init_n; ++i) { > if (!flow->frxq[i].hrxq) > @@ -3124,9 +3123,9 @@ mlx5_flow_isolate(struct rte_eth_dev *dev, > } > priv->isolated =3D !!enable; > if (enable) > - priv->dev->dev_ops =3D &mlx5_dev_ops_isolate; > + dev->dev_ops =3D &mlx5_dev_ops_isolate; > else > - priv->dev->dev_ops =3D &mlx5_dev_ops; > + dev->dev_ops =3D &mlx5_dev_ops; > return 0; > } >=20 > @@ -3514,11 +3513,10 @@ mlx5_fdir_filter_flush(struct rte_eth_dev *dev) > static void mlx5_fdir_info_get(struct rte_eth_dev *dev, struct > rte_eth_fdir_info *fdir_info) { > - struct priv *priv =3D dev->data->dev_private; > struct rte_eth_fdir_masks *mask =3D > - &priv->dev->data->dev_conf.fdir_conf.mask; > + &dev->data->dev_conf.fdir_conf.mask; >=20 > - fdir_info->mode =3D priv->dev->data->dev_conf.fdir_conf.mode; > + fdir_info->mode =3D dev->data->dev_conf.fdir_conf.mode; > fdir_info->guarant_spc =3D 0; > rte_memcpy(&fdir_info->mask, mask, sizeof(fdir_info->mask)); > fdir_info->max_flexpayload =3D 0; > @@ -3546,9 +3544,8 @@ static int > mlx5_fdir_ctrl_func(struct rte_eth_dev *dev, enum rte_filter_op filter_o= p, > void *arg) > { > - struct priv *priv =3D dev->data->dev_private; > enum rte_fdir_mode fdir_mode =3D > - priv->dev->data->dev_conf.fdir_conf.mode; > + dev->data->dev_conf.fdir_conf.mode; >=20 > if (filter_op =3D=3D RTE_ETH_FILTER_NOP) > return 0; > diff --git a/drivers/net/mlx5/mlx5_mr.c b/drivers/net/mlx5/mlx5_mr.c inde= x > 1b4c7ec5d..7a337d0c3 100644 > --- a/drivers/net/mlx5/mlx5_mr.c > +++ b/drivers/net/mlx5/mlx5_mr.c > @@ -105,8 +105,8 @@ mlx5_txq_mp2mr_reg(struct mlx5_txq_data *txq, > struct rte_mempool *mp, > rte_spinlock_lock(&txq_ctrl->priv->mr_lock); > /* Add a new entry, register MR first. */ > DRV_LOG(DEBUG, "port %u discovered new memory pool \"%s\" > (%p)", > - txq_ctrl->priv->dev->data->port_id, mp->name, (void > *)mp); > - dev =3D txq_ctrl->priv->dev; > + port_id(txq_ctrl->priv), mp->name, (void *)mp); > + dev =3D eth_dev(txq_ctrl->priv); > mr =3D mlx5_mr_get(dev, mp); > if (mr =3D=3D NULL) { > if (rte_eal_process_type() !=3D RTE_PROC_PRIMARY) { @@ - > 114,8 +114,7 @@ mlx5_txq_mp2mr_reg(struct mlx5_txq_data *txq, struct > rte_mempool *mp, > "port %u using unregistered mempool > 0x%p(%s)" > " in secondary process, please create > mempool" > " before rte_eth_dev_start()", > - txq_ctrl->priv->dev->data->port_id, > - (void *)mp, mp->name); > + port_id(txq_ctrl->priv), (void *)mp, mp- > >name); > rte_spinlock_unlock(&txq_ctrl->priv->mr_lock); > rte_errno =3D ENOTSUP; > return NULL; > @@ -126,7 +125,7 @@ mlx5_txq_mp2mr_reg(struct mlx5_txq_data *txq, > struct rte_mempool *mp, > DRV_LOG(DEBUG, > "port %u unable to configure memory region," > " ibv_reg_mr() failed.", > - txq_ctrl->priv->dev->data->port_id); > + port_id(txq_ctrl->priv)); > rte_spinlock_unlock(&txq_ctrl->priv->mr_lock); > return NULL; > } > @@ -135,7 +134,7 @@ mlx5_txq_mp2mr_reg(struct mlx5_txq_data *txq, > struct rte_mempool *mp, > DRV_LOG(DEBUG, > "port %u memory region <-> memory pool table full, > " > " dropping oldest entry", > - txq_ctrl->priv->dev->data->port_id); > + port_id(txq_ctrl->priv)); > --idx; > mlx5_mr_release(txq->mp2mr[0]); > memmove(&txq->mp2mr[0], &txq->mp2mr[1], @@ -146,7 > +145,7 @@ mlx5_txq_mp2mr_reg(struct mlx5_txq_data *txq, struct > rte_mempool *mp, > DRV_LOG(DEBUG, > "port %u new memory region lkey for MP \"%s\" (%p): > 0x%08" > PRIu32, > - txq_ctrl->priv->dev->data->port_id, mp->name, (void *)mp, > + port_id(txq_ctrl->priv), mp->name, (void *)mp, > txq_ctrl->txq.mp2mr[idx]->lkey); > rte_spinlock_unlock(&txq_ctrl->priv->mr_lock); > return mr; > @@ -207,15 +206,15 @@ mlx5_mp2mr_iter(struct rte_mempool *mp, void > *arg) > if (rte_mempool_obj_iter(mp, txq_mp2mr_mbuf_check, &data) =3D=3D > 0 || > data.ret =3D=3D -1) > return; > - mr =3D mlx5_mr_get(priv->dev, mp); > + mr =3D mlx5_mr_get(eth_dev(priv), mp); > if (mr) { > mlx5_mr_release(mr); > return; > } > - mr =3D mlx5_mr_new(priv->dev, mp); > + mr =3D mlx5_mr_new(eth_dev(priv), mp); > if (!mr) > DRV_LOG(ERR, "port %u cannot create memory region: %s", > - priv->dev->data->port_id, strerror(rte_errno)); > + port_id(priv), strerror(rte_errno)); > } >=20 > /** > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index 126412ddd..a85b628fe 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -78,7 +78,7 @@ rxq_alloc_elts(struct mlx5_rxq_ctrl *rxq_ctrl) > buf =3D rte_pktmbuf_alloc(rxq_ctrl->rxq.mp); > if (buf =3D=3D NULL) { > DRV_LOG(ERR, "port %u empty mbuf pool", > - rxq_ctrl->priv->dev->data->port_id); > + port_id(rxq_ctrl->priv)); > rte_errno =3D ENOMEM; > goto error; > } > @@ -122,7 +122,7 @@ rxq_alloc_elts(struct mlx5_rxq_ctrl *rxq_ctrl) > DRV_LOG(DEBUG, > "port %u Rx queue %u allocated and configured %u > segments" > " (max %u packets)", > - rxq_ctrl->priv->dev->data->port_id, rxq_ctrl->idx, elts_n, > + port_id(rxq_ctrl->priv), rxq_ctrl->idx, elts_n, > elts_n / (1 << rxq_ctrl->rxq.sges_n)); > return 0; > error: > @@ -134,7 +134,7 @@ rxq_alloc_elts(struct mlx5_rxq_ctrl *rxq_ctrl) > (*rxq_ctrl->rxq.elts)[i] =3D NULL; > } > DRV_LOG(DEBUG, "port %u Rx queue %u failed, freed everything", > - rxq_ctrl->priv->dev->data->port_id, rxq_ctrl->idx); > + port_id(rxq_ctrl->priv), rxq_ctrl->idx); > rte_errno =3D err; /* Restore rte_errno. */ > return -rte_errno; > } > @@ -155,7 +155,7 @@ rxq_free_elts(struct mlx5_rxq_ctrl *rxq_ctrl) > uint16_t i; >=20 > DRV_LOG(DEBUG, "port %u Rx queue %u freeing WRs", > - rxq_ctrl->priv->dev->data->port_id, rxq_ctrl->idx); > + port_id(rxq_ctrl->priv), rxq_ctrl->idx); > if (rxq->elts =3D=3D NULL) > return; > /** > @@ -186,7 +186,7 @@ void > mlx5_rxq_cleanup(struct mlx5_rxq_ctrl *rxq_ctrl) { > DRV_LOG(DEBUG, "port %u cleaning up Rx queue %u", > - rxq_ctrl->priv->dev->data->port_id, rxq_ctrl->idx); > + port_id(rxq_ctrl->priv), rxq_ctrl->idx); > if (rxq_ctrl->ibv) > mlx5_rxq_ibv_release(rxq_ctrl->ibv); > memset(rxq_ctrl, 0, sizeof(*rxq_ctrl)); @@ -354,11 +354,11 @@ > mlx5_rx_queue_release(void *dpdk_rxq) > return; > rxq_ctrl =3D container_of(rxq, struct mlx5_rxq_ctrl, rxq); > priv =3D rxq_ctrl->priv; > - if (!mlx5_rxq_releasable(priv->dev, rxq_ctrl->rxq.stats.idx)) > + if (!mlx5_rxq_releasable(eth_dev(priv), rxq_ctrl->rxq.stats.idx)) > rte_panic("port %u Rx queue %u is still used by a flow and" > - " cannot be removed\n", priv->dev->data->port_id, > - rxq_ctrl->idx); > - mlx5_rxq_release(priv->dev, rxq_ctrl->rxq.stats.idx); > + " cannot be removed\n", > + port_id(priv), rxq_ctrl->idx); > + mlx5_rxq_release(eth_dev(priv), rxq_ctrl->rxq.stats.idx); > } >=20 > /** > @@ -378,9 +378,9 @@ mlx5_rx_intr_vec_enable(struct rte_eth_dev *dev) > unsigned int rxqs_n =3D priv->rxqs_n; > unsigned int n =3D RTE_MIN(rxqs_n, > (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID); > unsigned int count =3D 0; > - struct rte_intr_handle *intr_handle =3D priv->dev->intr_handle; > + struct rte_intr_handle *intr_handle =3D dev->intr_handle; >=20 > - if (!priv->dev->data->dev_conf.intr_conf.rxq) > + if (!dev->data->dev_conf.intr_conf.rxq) > return 0; > mlx5_rx_intr_vec_disable(dev); > intr_handle->intr_vec =3D malloc(n * sizeof(intr_handle->intr_vec[0])); > @@ -452,12 +452,12 @@ void > mlx5_rx_intr_vec_disable(struct rte_eth_dev *dev) { > struct priv *priv =3D dev->data->dev_private; > - struct rte_intr_handle *intr_handle =3D priv->dev->intr_handle; > + struct rte_intr_handle *intr_handle =3D dev->intr_handle; > unsigned int i; > unsigned int rxqs_n =3D priv->rxqs_n; > unsigned int n =3D RTE_MIN(rxqs_n, > (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID); >=20 > - if (!priv->dev->data->dev_conf.intr_conf.rxq) > + if (!dev->data->dev_conf.intr_conf.rxq) > return; > if (!intr_handle->intr_vec) > goto free; > @@ -897,7 +897,7 @@ mlx5_rxq_ibv_release(struct mlx5_rxq_ibv *rxq_ibv) > if (!ret) > rxq_ibv->mr =3D NULL; > DRV_LOG(DEBUG, "port %u Verbs Rx queue %u: refcnt %d", > - rxq_ibv->rxq_ctrl->priv->dev->data->port_id, > + port_id(rxq_ibv->rxq_ctrl->priv), > rxq_ibv->rxq_ctrl->idx, rte_atomic32_read(&rxq_ibv- > >refcnt)); > if (rte_atomic32_dec_and_test(&rxq_ibv->refcnt)) { > rxq_free_elts(rxq_ibv->rxq_ctrl); > @@ -990,7 +990,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t > idx, uint16_t desc, > return NULL; > } > tmpl->socket =3D socket; > - if (priv->dev->data->dev_conf.intr_conf.rxq) > + if (dev->data->dev_conf.intr_conf.rxq) > tmpl->irq =3D 1; > /* Enable scattered packets support for this queue if necessary. */ > assert(mb_len >=3D RTE_PKTMBUF_HEADROOM); diff --git > a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index > 44358744d..29959b4c7 100644 > --- a/drivers/net/mlx5/mlx5_txq.c > +++ b/drivers/net/mlx5/mlx5_txq.c > @@ -48,7 +48,7 @@ txq_alloc_elts(struct mlx5_txq_ctrl *txq_ctrl) > for (i =3D 0; (i !=3D elts_n); ++i) > (*txq_ctrl->txq.elts)[i] =3D NULL; > DRV_LOG(DEBUG, "port %u Tx queue %u allocated and configured > %u WRs", > - txq_ctrl->priv->dev->data->port_id, txq_ctrl->idx, elts_n); > + port_id(txq_ctrl->priv), txq_ctrl->idx, elts_n); > txq_ctrl->txq.elts_head =3D 0; > txq_ctrl->txq.elts_tail =3D 0; > txq_ctrl->txq.elts_comp =3D 0; > @@ -70,7 +70,7 @@ txq_free_elts(struct mlx5_txq_ctrl *txq_ctrl) > struct rte_mbuf *(*elts)[elts_n] =3D txq_ctrl->txq.elts; >=20 > DRV_LOG(DEBUG, "port %u Tx queue %u freeing WRs", > - txq_ctrl->priv->dev->data->port_id, txq_ctrl->idx); > + port_id(txq_ctrl->priv), txq_ctrl->idx); > txq_ctrl->txq.elts_head =3D 0; > txq_ctrl->txq.elts_tail =3D 0; > txq_ctrl->txq.elts_comp =3D 0; > @@ -255,9 +255,9 @@ mlx5_tx_queue_release(void *dpdk_txq) > priv =3D txq_ctrl->priv; > for (i =3D 0; (i !=3D priv->txqs_n); ++i) > if ((*priv->txqs)[i] =3D=3D txq) { > - mlx5_txq_release(priv->dev, i); > + mlx5_txq_release(eth_dev(priv), i); > DRV_LOG(DEBUG, "port %u removing Tx queue %u > from list", > - priv->dev->data->port_id, txq_ctrl->idx); > + port_id(priv), txq_ctrl->idx); > break; > } > } > @@ -618,7 +618,7 @@ mlx5_txq_ibv_release(struct mlx5_txq_ibv *txq_ibv) > { > assert(txq_ibv); > DRV_LOG(DEBUG, "port %u Verbs Tx queue %u: refcnt %d", > - txq_ibv->txq_ctrl->priv->dev->data->port_id, > + port_id(txq_ibv->txq_ctrl->priv), > txq_ibv->txq_ctrl->idx, rte_atomic32_read(&txq_ibv- > >refcnt)); > if (rte_atomic32_dec_and_test(&txq_ibv->refcnt)) { > claim_zero(mlx5_glue->destroy_qp(txq_ibv->qp)); > @@ -685,7 +685,7 @@ txq_set_params(struct mlx5_txq_ctrl *txq_ctrl) > unsigned int txqs_inline; > unsigned int inline_max_packet_sz; > eth_tx_burst_t tx_pkt_burst =3D > - mlx5_select_tx_function(txq_ctrl->priv->dev); > + mlx5_select_tx_function(eth_dev(priv)); > int is_empw_func =3D is_empw_burst_func(tx_pkt_burst); > int tso =3D !!(txq_ctrl->txq.offloads & (DEV_TX_OFFLOAD_TCP_TSO | >=20 > DEV_TX_OFFLOAD_VXLAN_TNL_TSO | @@ -759,8 +759,7 @@ > txq_set_params(struct mlx5_txq_ctrl *txq_ctrl) > DRV_LOG(WARNING, > "port %u txq inline is too large (%d) setting" > " it to the maximum possible: %d\n", > - priv->dev->data->port_id, txq_inline, > - max_inline); > + port_id(priv), txq_inline, max_inline); > txq_ctrl->txq.max_inline =3D max_inline / > RTE_CACHE_LINE_SIZE; > } > -- > 2.11.0