From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 1A7568E01 for ; Tue, 2 Jan 2018 12:35:05 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Jan 2018 03:35:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,496,1508828400"; d="scan'208";a="6831278" Received: from irsmsx153.ger.corp.intel.com ([163.33.192.75]) by fmsmga008.fm.intel.com with ESMTP; 02 Jan 2018 03:35:03 -0800 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.167]) by IRSMSX153.ger.corp.intel.com ([169.254.9.34]) with mapi id 14.03.0319.002; Tue, 2 Jan 2018 11:35:03 +0000 From: "Iremonger, Bernard" To: Thomas Monjalon , "dev@dpdk.org" CC: "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH v3 1/5] ethdev: remove useless parameter in callback process Thread-Index: AQHTgKo6Vqss9o3FbUqvmbg+9xCpiKNgdH4A Date: Tue, 2 Jan 2018 11:35:02 +0000 Message-ID: <8CEF83825BEC744B83065625E567D7C24E06EEA4@IRSMSX108.ger.corp.intel.com> References: <20171128221302.15400-1-thomas@monjalon.net> <20171229133658.31258-1-thomas@monjalon.net> <20171229133658.31258-2-thomas@monjalon.net> In-Reply-To: <20171229133658.31258-2-thomas@monjalon.net> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzk4YzQ4YWUtMDIyYi00MDhiLTg0MDAtMzM3YWQzYTllMDQxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJrSlpDZXU1OGNZMTRHTnRMVDJ0elB6T0dOcEg0VnJ3WGJXTnpOZ0hNZHcyeGU3VG1tRzkzRHNnd3dDSDZmTG8xIn0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 1/5] ethdev: remove useless parameter in callback 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: Tue, 02 Jan 2018 11:35:06 -0000 Hi Thomas, > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon > Sent: Friday, December 29, 2017 1:37 PM > To: dev@dpdk.org > Cc: Yigit, Ferruh > Subject: [dpdk-dev] [PATCH v3 1/5] ethdev: remove useless parameter in > callback process >=20 > The pointer to the user parameter of the callback registration is automat= ically > pass to the callback function. > There is no point to allow changing this user parameter by a caller. > That's why this parameter is always set to NULL by PMDs and set only in e= thdev > layer before calling the callback function. >=20 > The history is that the user parameter was initially used by the callback > implementation to pass some information between the application and the > driver: > c1ceaf3ad056 ("ethdev: add an argument to internal callback function") > Then a new parameter has been added to leave the user parameter to its > standard usage of context given at registration: > d6af1a13d7a1 ("ethdev: add return values to callback process API") >=20 > The NULL parameter in the internal callback processing function is now > removed. It makes clear that the callback parameter is user managed and > opaque from a DPDK point of view. >=20 > Signed-off-by: Thomas Monjalon > Reviewed-by: Ferruh Yigit > --- > v2: add history > v3: no change > --- > doc/guides/prog_guide/poll_mode_drv.rst | 4 ++-- > drivers/net/bnxt/rte_pmd_bnxt.c | 2 +- > drivers/net/bonding/rte_eth_bond_pmd.c | 6 +++--- > drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- > drivers/net/e1000/em_ethdev.c | 2 +- > drivers/net/e1000/igb_ethdev.c | 4 ++-- > drivers/net/enic/enic_main.c | 2 +- > drivers/net/failsafe/failsafe_ether.c | 2 +- > drivers/net/fm10k/fm10k_ethdev.c | 8 ++++---- > drivers/net/i40e/i40e_ethdev.c | 2 +- > drivers/net/i40e/i40e_ethdev_vf.c | 2 +- > drivers/net/i40e/i40e_pf.c | 3 +-- > drivers/net/ixgbe/ixgbe_ethdev.c | 6 +++--- > drivers/net/ixgbe/ixgbe_pf.c | 4 ++-- > drivers/net/mlx4/mlx4_intr.c | 4 ++-- > drivers/net/mlx5/mlx5_ethdev.c | 9 +++------ > drivers/net/nfp/nfp_net.c | 2 +- > drivers/net/sfc/sfc_intr.c | 4 ++-- > drivers/net/thunderx/nicvf_ethdev.c | 2 +- > drivers/net/vhost/rte_eth_vhost.c | 9 +++------ > drivers/net/virtio/virtio_ethdev.c | 2 +- > drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 +- > lib/librte_ether/rte_ethdev.c | 4 +--- > lib/librte_ether/rte_ethdev.h | 4 +--- > test/test/virtual_pmd.c | 2 +- > 25 files changed, 41 insertions(+), 52 deletions(-) >=20 > diff --git a/doc/guides/prog_guide/poll_mode_drv.rst > b/doc/guides/prog_guide/poll_mode_drv.rst > index 6a0c9f992..d1d4b1cb7 100644 > --- a/doc/guides/prog_guide/poll_mode_drv.rst > +++ b/doc/guides/prog_guide/poll_mode_drv.rst > @@ -581,8 +581,8 @@ thread safety all these operations should be called f= rom > the same thread. > For example when PF is reset, the PF sends a message to notify VFs of t= his > event and also trigger an interrupt to VFs. Then in the interrupt servic= e routine > the VFs detects this notification message and calls - > _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_RESET, NULL, - > NULL). This means that a PF reset triggers an RTE_ETH_EVENT_INTR_RESET > +_rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_RESET, NULL). > +This means that a PF reset triggers an RTE_ETH_EVENT_INTR_RESET > event within VFs. The function _rte_eth_dev_callback_process() will cal= l the > registered callback function. The callback function can trigger the appl= ication to > handle all operations the VF reset requires including diff --git > a/drivers/net/bnxt/rte_pmd_bnxt.c b/drivers/net/bnxt/rte_pmd_bnxt.c index > a31340742..e86e670dc 100644 > --- a/drivers/net/bnxt/rte_pmd_bnxt.c > +++ b/drivers/net/bnxt/rte_pmd_bnxt.c > @@ -57,7 +57,7 @@ int bnxt_rcv_msg_from_vf(struct bnxt *bp, uint16_t vf_i= d, > void *msg) > ret_param.msg =3D msg; >=20 > _rte_eth_dev_callback_process(bp->eth_dev, > RTE_ETH_EVENT_VF_MBOX, > - NULL, &ret_param); > + &ret_param); >=20 > /* Default to approve */ > if (ret_param.retval =3D=3D RTE_PMD_BNXT_MB_EVENT_PROCEED) diff -- > git a/drivers/net/bonding/rte_eth_bond_pmd.c > b/drivers/net/bonding/rte_eth_bond_pmd.c > index fe2328954..68952c4c0 100644 > --- a/drivers/net/bonding/rte_eth_bond_pmd.c > +++ b/drivers/net/bonding/rte_eth_bond_pmd.c > @@ -2476,7 +2476,7 @@ bond_ethdev_delayed_lsc_propagation(void *arg) > return; >=20 > _rte_eth_dev_callback_process((struct rte_eth_dev *)arg, > - RTE_ETH_EVENT_INTR_LSC, NULL, NULL); > + RTE_ETH_EVENT_INTR_LSC, NULL); > } >=20 > int > @@ -2584,7 +2584,7 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, > enum rte_eth_event_type type, > else >=20 > _rte_eth_dev_callback_process(bonded_eth_dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); >=20 > } else { > if (internals->link_down_delay_ms > 0) @@ -2594,7 > +2594,7 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, enum > rte_eth_event_type type, > else >=20 > _rte_eth_dev_callback_process(bonded_eth_dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } > } > return 0; > diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c > b/drivers/net/dpaa2/dpaa2_ethdev.c > index 202f84f0a..b302bbb7b 100644 > --- a/drivers/net/dpaa2/dpaa2_ethdev.c > +++ b/drivers/net/dpaa2/dpaa2_ethdev.c > @@ -655,7 +655,7 @@ dpaa2_interrupt_handler(void *param) > dpaa2_dev_link_update(dev, 0); > /* calling all the apps registered for link status event */ > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } > out: > ret =3D dpni_clear_irq_status(dpni, CMD_PRI_LOW, priv->token, diff --gi= t > a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c index > a0c3b4dc5..d9fafca8c 100644 > --- a/drivers/net/e1000/em_ethdev.c > +++ b/drivers/net/e1000/em_ethdev.c > @@ -1678,7 +1678,7 @@ eth_em_interrupt_handler(void *param) >=20 > eth_em_interrupt_get_status(dev); > eth_em_interrupt_action(dev, dev->intr_handle); > - _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, > NULL, NULL); > + _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, > NULL); > } >=20 > static int > diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethde= v.c > index fdc139f35..ad4c0865a 100644 > --- a/drivers/net/e1000/igb_ethdev.c > +++ b/drivers/net/e1000/igb_ethdev.c > @@ -2916,7 +2916,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev, > E1000_WRITE_REG(hw, E1000_RCTL, rctl); > E1000_WRITE_FLUSH(hw); > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > return 0; > @@ -2976,7 +2976,7 @@ void igbvf_mbx_process(struct rte_eth_dev *dev) > /* PF reset VF event */ > if (in_msg =3D=3D E1000_PF_CONTROL_MSG) > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_RESET, > - NULL, NULL); > + NULL); > } >=20 > static int > diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c = index > 8af0ccd3c..a9509f068 100644 > --- a/drivers/net/enic/enic_main.c > +++ b/drivers/net/enic/enic_main.c > @@ -434,7 +434,7 @@ enic_intr_handler(void *arg) > vnic_intr_return_all_credits(&enic->intr); >=20 > enic_link_update(enic); > - _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, > NULL, NULL); > + _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, > NULL); > enic_log_q_error(enic); > } >=20 > diff --git a/drivers/net/failsafe/failsafe_ether.c > b/drivers/net/failsafe/failsafe_ether.c > index 21392e5a7..8a4cacf4a 100644 > --- a/drivers/net/failsafe/failsafe_ether.c > +++ b/drivers/net/failsafe/failsafe_ether.c > @@ -480,7 +480,7 @@ failsafe_eth_lsc_event_callback(uint16_t port_id > __rte_unused, > if (ret) > return _rte_eth_dev_callback_process(dev, >=20 > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > else > return 0; > } > diff --git a/drivers/net/fm10k/fm10k_ethdev.c > b/drivers/net/fm10k/fm10k_ethdev.c > index 2d05a4669..3cd30b854 100644 > --- a/drivers/net/fm10k/fm10k_ethdev.c > +++ b/drivers/net/fm10k/fm10k_ethdev.c > @@ -2625,7 +2625,7 @@ fm10k_dev_interrupt_handler_pf(void *param) > dev_info->sm_down =3D 0; > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } > } >=20 > @@ -2638,7 +2638,7 @@ fm10k_dev_interrupt_handler_pf(void *param) > PMD_INIT_LOG(INFO, "INT: Switch is down"); > dev_info->sm_down =3D 1; > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > /* Handle SRAM error */ > @@ -2706,7 +2706,7 @@ fm10k_dev_interrupt_handler_vf(void *param) > /* Setting reset flag */ > dev_info->sm_down =3D 1; > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > if (dev_info->sm_down =3D=3D 1 && > @@ -2735,7 +2735,7 @@ fm10k_dev_interrupt_handler_vf(void *param) >=20 > dev_info->sm_down =3D 0; > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > /* Re-enable interrupt from device side */ diff --git > a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index > 811cc9ffe..0fe6eeacc 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -5996,7 +5996,7 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev) > ret =3D i40e_dev_link_update(dev, 0); > if (!ret) > _rte_eth_dev_callback_process(dev, > - RTE_ETH_EVENT_INTR_LSC, NULL, > NULL); > + RTE_ETH_EVENT_INTR_LSC, NULL); > break; > default: > PMD_DRV_LOG(DEBUG, "Request %u is not supported > yet", diff --git a/drivers/net/i40e/i40e_ethdev_vf.c > b/drivers/net/i40e/i40e_ethdev_vf.c > index 91b5bb033..74473d267 100644 > --- a/drivers/net/i40e/i40e_ethdev_vf.c > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > @@ -1308,7 +1308,7 @@ i40evf_handle_pf_event(struct rte_eth_dev *dev, > uint8_t *msg, > case VIRTCHNL_EVENT_RESET_IMPENDING: > PMD_DRV_LOG(DEBUG, > "VIRTCHNL_EVENT_RESET_IMPENDING event"); > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_RESET, > - NULL, NULL); > + NULL); > break; > case VIRTCHNL_EVENT_LINK_CHANGE: > PMD_DRV_LOG(DEBUG, "VIRTCHNL_EVENT_LINK_CHANGE > event"); diff --git a/drivers/net/i40e/i40e_pf.c b/drivers/net/i40e/i40e_= pf.c > index 94bb0cfd1..322396368 100644 > --- a/drivers/net/i40e/i40e_pf.c > +++ b/drivers/net/i40e/i40e_pf.c > @@ -1185,8 +1185,7 @@ i40e_pf_host_handle_vf_msg(struct rte_eth_dev > *dev, > * do nothing and send not_supported to VF. As PF must send a response > * to VF and ACK/NACK is not defined. > */ > - _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_VF_MBOX, > - NULL, &ret_param); > + _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_VF_MBOX, > &ret_param); > if (ret_param.retval !=3D RTE_PMD_I40E_MB_EVENT_PROCEED) { > PMD_DRV_LOG(WARNING, "VF to PF message(%d) is not > permitted!", > opcode); > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_e= thdev.c > index ff19a564a..6dbda9c7d 100644 > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > @@ -4383,12 +4383,12 @@ ixgbe_dev_interrupt_delayed_handler(void > *param) > intr->flags &=3D ~IXGBE_FLAG_NEED_LINK_UPDATE; > ixgbe_dev_link_status_print(dev); > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > if (intr->flags & IXGBE_FLAG_MACSEC) { > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_MACSEC, > - NULL, NULL); > + NULL); > intr->flags &=3D ~IXGBE_FLAG_MACSEC; > } >=20 > @@ -8171,7 +8171,7 @@ static void ixgbevf_mbx_process(struct rte_eth_dev > *dev) > /* PF reset VF event */ > if (in_msg =3D=3D IXGBE_PF_CONTROL_MSG) > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_RESET, > - NULL, NULL); > + NULL); > } >=20 > static int > diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c = index > 676e92c7b..e18ec8660 100644 > --- a/drivers/net/ixgbe/ixgbe_pf.c > +++ b/drivers/net/ixgbe/ixgbe_pf.c > @@ -768,7 +768,7 @@ ixgbe_rcv_msg_from_vf(struct rte_eth_dev *dev, > uint16_t vf) >=20 > /* notify application about VF reset */ > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_VF_MBOX, > - NULL, &ret_param); > + &ret_param); > return ret; > } >=20 > @@ -780,7 +780,7 @@ ixgbe_rcv_msg_from_vf(struct rte_eth_dev *dev, > uint16_t vf) > * if ret_param.retval > 1, do nothing and send NAK to VF > */ > _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_VF_MBOX, > - NULL, &ret_param); > + &ret_param); >=20 > retval =3D ret_param.retval; >=20 > diff --git a/drivers/net/mlx4/mlx4_intr.c b/drivers/net/mlx4/mlx4_intr.c = index > 50d197698..9becee4a8 100644 > --- a/drivers/net/mlx4/mlx4_intr.c > +++ b/drivers/net/mlx4/mlx4_intr.c > @@ -154,7 +154,7 @@ mlx4_link_status_alarm(struct priv *priv) > if (intr_conf->lsc && !mlx4_link_status_check(priv)) > _rte_eth_dev_callback_process(priv->dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > /** > @@ -236,7 +236,7 @@ mlx4_interrupt_handler(struct priv *priv) > for (i =3D 0; i !=3D RTE_DIM(caught); ++i) > if (caught[i]) > _rte_eth_dev_callback_process(priv->dev, type[i], > - NULL, NULL); > + NULL); > } >=20 > /** > diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethde= v.c > index a3cef6891..62474ab1c 100644 > --- a/drivers/net/mlx5/mlx5_ethdev.c > +++ b/drivers/net/mlx5/mlx5_ethdev.c > @@ -1230,8 +1230,7 @@ mlx5_dev_link_status_handler(void *arg) > ret =3D priv_link_status_update(priv); > priv_unlock(priv); > if (!ret) > - _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, NULL, > - NULL); > + _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, NULL); > } >=20 > /** > @@ -1253,11 +1252,9 @@ mlx5_dev_interrupt_handler(void *cb_arg) > events =3D priv_dev_status_handler(priv); > priv_unlock(priv); > if (events & (1 << RTE_ETH_EVENT_INTR_LSC)) > - _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, NULL, > - NULL); > + _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, NULL); > if (events & (1 << RTE_ETH_EVENT_INTR_RMV)) > - _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_RMV, NULL, > - NULL); > + _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_RMV, NULL); > } >=20 > /** > diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index > 0501156ba..99b6aa65e 100644 > --- a/drivers/net/nfp/nfp_net.c > +++ b/drivers/net/nfp/nfp_net.c > @@ -1450,7 +1450,7 @@ nfp_net_dev_interrupt_delayed_handler(void > *param) > struct rte_eth_dev *dev =3D (struct rte_eth_dev *)param; >=20 > nfp_net_link_update(dev, 0); > - _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, > NULL, NULL); > + _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, > NULL); >=20 > nfp_net_dev_link_status_print(dev); >=20 > diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c inde= x > ee59cb1c0..aa324c4b6 100644 > --- a/drivers/net/sfc/sfc_intr.c > +++ b/drivers/net/sfc/sfc_intr.c > @@ -112,7 +112,7 @@ sfc_intr_line_handler(void *cb_arg) > "UP" : "DOWN"); > _rte_eth_dev_callback_process(sa->eth_dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } > } >=20 > @@ -154,7 +154,7 @@ sfc_intr_message_handler(void *cb_arg) > sfc_info(sa, "link status change event"); > _rte_eth_dev_callback_process(sa->eth_dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } > } >=20 > diff --git a/drivers/net/thunderx/nicvf_ethdev.c > b/drivers/net/thunderx/nicvf_ethdev.c > index d65d3cee7..5cead831b 100644 > --- a/drivers/net/thunderx/nicvf_ethdev.c > +++ b/drivers/net/thunderx/nicvf_ethdev.c > @@ -113,7 +113,7 @@ nicvf_interrupt(void *arg) > if (dev->data->dev_conf.intr_conf.lsc) > nicvf_set_eth_link_status(nic, &dev->data->dev_link); > _rte_eth_dev_callback_process(dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > rte_eal_alarm_set(NICVF_INTR_POLL_INTERVAL_MS * 1000, diff --git > a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c > index 2536ee4a2..014428580 100644 > --- a/drivers/net/vhost/rte_eth_vhost.c > +++ b/drivers/net/vhost/rte_eth_vhost.c > @@ -609,8 +609,7 @@ new_device(int vid) >=20 > RTE_LOG(INFO, PMD, "New connection established\n"); >=20 > - _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, > NULL); >=20 > return 0; > } > @@ -664,8 +663,7 @@ destroy_device(int vid) >=20 > RTE_LOG(INFO, PMD, "Connection closed\n"); >=20 > - _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, > NULL); > } >=20 > static int > @@ -694,8 +692,7 @@ vring_state_changed(int vid, uint16_t vring, int enab= le) > RTE_LOG(INFO, PMD, "vring%u is %s\n", > vring, enable ? "enabled" : "disabled"); >=20 > - _rte_eth_dev_callback_process(eth_dev, > RTE_ETH_EVENT_QUEUE_STATE, > - NULL, NULL); > + _rte_eth_dev_callback_process(eth_dev, > RTE_ETH_EVENT_QUEUE_STATE, > +NULL); >=20 > return 0; > } > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virt= io_ethdev.c > index e0328f61d..4290d59a5 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -1266,7 +1266,7 @@ virtio_interrupt_handler(void *param) > if (virtio_dev_link_update(dev, 0) =3D=3D 0) > _rte_eth_dev_callback_process(dev, >=20 > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > } > diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c > b/drivers/net/vmxnet3/vmxnet3_ethdev.c > index 82d59ca8c..54b688f2f 100644 > --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c > +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c > @@ -1332,7 +1332,7 @@ vmxnet3_process_events(struct rte_eth_dev *dev) > if (vmxnet3_dev_link_update(dev, 0) =3D=3D 0) > _rte_eth_dev_callback_process(dev, >=20 > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > /* Check if there is an error on xmit/recv queues */ diff --git > a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index > 318af2869..c196c3692 100644 > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -2905,7 +2905,7 @@ rte_eth_dev_callback_unregister(uint16_t port_id, >=20 > int > _rte_eth_dev_callback_process(struct rte_eth_dev *dev, > - enum rte_eth_event_type event, void *cb_arg, void *ret_param) > + enum rte_eth_event_type event, void *ret_param) > { > struct rte_eth_dev_callback *cb_lst; > struct rte_eth_dev_callback dev_cb; > @@ -2917,8 +2917,6 @@ _rte_eth_dev_callback_process(struct rte_eth_dev > *dev, > continue; > dev_cb =3D *cb_lst; > cb_lst->active =3D 1; > - if (cb_arg !=3D NULL) > - dev_cb.cb_arg =3D cb_arg; > if (ret_param !=3D NULL) > dev_cb.ret_param =3D ret_param; >=20 > diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.= h index > 341c2d624..15309aa7c 100644 > --- a/lib/librte_ether/rte_ethdev.h > +++ b/lib/librte_ether/rte_ethdev.h > @@ -3585,8 +3585,6 @@ int rte_eth_dev_callback_unregister(uint16_t port_i= d, > * Pointer to struct rte_eth_dev. > * @param event > * Eth device interrupt event type. > - * @param cb_arg > - * callback parameter. > * @param ret_param > * To pass data back to user application. > * This allows the user application to decide if a particular function = @@ -3596,7 > +3594,7 @@ int rte_eth_dev_callback_unregister(uint16_t port_id, > * int > */ > int _rte_eth_dev_callback_process(struct rte_eth_dev *dev, > - enum rte_eth_event_type event, void *cb_arg, void > *ret_param); > + enum rte_eth_event_type event, void *ret_param); As this is a change to the public API of librte_ether is a deprecation noti= ce needed ? This API is currently used by the test/test/virtual_pmd.c APP and may be us= ed by other APP's in the field.=20 =20 > /** > * When there is no rx packet coming in Rx Queue for a long time, we can= diff -- > git a/test/test/virtual_pmd.c b/test/test/virtual_pmd.c index > b57a9493b..f55288537 100644 > --- a/test/test/virtual_pmd.c > +++ b/test/test/virtual_pmd.c > @@ -489,7 +489,7 @@ virtual_ethdev_simulate_link_status_interrupt(uint16_= t > port_id, > vrtl_eth_dev->data->dev_link.link_status =3D link_status; >=20 > _rte_eth_dev_callback_process(vrtl_eth_dev, > RTE_ETH_EVENT_INTR_LSC, > - NULL, NULL); > + NULL); > } >=20 > int > -- > 2.15.1 Regards, Bernard