From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id 732391322C for ; Tue, 2 Jan 2018 13:22:36 +0100 (CET) Received: from cpe-2606-a000-111b-423c-e874-da8e-c543-d863.dyn6.twc.com ([2606:a000:111b:423c:e874:da8e:c543:d863] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1eWLa7-0006YS-3U; Tue, 02 Jan 2018 07:22:27 -0500 Date: Tue, 2 Jan 2018 07:21:38 -0500 From: Neil Horman To: "Iremonger, Bernard" Cc: Thomas Monjalon , "dev@dpdk.org" , "Yigit, Ferruh" Message-ID: <20180102122138.GA8096@hmswarspite.think-freely.org> References: <20171128221302.15400-1-thomas@monjalon.net> <20171229133658.31258-1-thomas@monjalon.net> <20171229133658.31258-2-thomas@monjalon.net> <8CEF83825BEC744B83065625E567D7C24E06EEA4@IRSMSX108.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8CEF83825BEC744B83065625E567D7C24E06EEA4@IRSMSX108.ger.corp.intel.com> User-Agent: Mutt/1.9.1 (2017-09-22) X-Spam-Score: -2.9 (--) X-Spam-Status: No 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 12:22:36 -0000 On Tue, Jan 02, 2018 at 11:35:02AM +0000, Iremonger, Bernard wrote: > 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 > > > > The pointer to the user parameter of the callback registration is automatically > > 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 ethdev > > layer before calling the callback function. > > > > 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") > > > > 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. > > > > 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(-) > > > > 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 from > > the same thread. > > For example when PF is reset, the PF sends a message to notify VFs of this > > event and also trigger an interrupt to VFs. Then in the interrupt service 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 call the > > registered callback function. The callback function can trigger the application 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_id, > > void *msg) > > ret_param.msg = msg; > > > > _rte_eth_dev_callback_process(bp->eth_dev, > > RTE_ETH_EVENT_VF_MBOX, > > - NULL, &ret_param); > > + &ret_param); > > > > /* Default to approve */ > > if (ret_param.retval == 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; > > > > _rte_eth_dev_callback_process((struct rte_eth_dev *)arg, > > - RTE_ETH_EVENT_INTR_LSC, NULL, NULL); > > + RTE_ETH_EVENT_INTR_LSC, NULL); > > } > > > > int > > @@ -2584,7 +2584,7 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, > > enum rte_eth_event_type type, > > else > > > > _rte_eth_dev_callback_process(bonded_eth_dev, > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > > > } 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 > > > > _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 = dpni_clear_irq_status(dpni, CMD_PRI_LOW, priv->token, diff --git > > 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) > > > > 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); > > } > > > > static int > > diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.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); > > } > > > > return 0; > > @@ -2976,7 +2976,7 @@ void igbvf_mbx_process(struct rte_eth_dev *dev) > > /* PF reset VF event */ > > if (in_msg == E1000_PF_CONTROL_MSG) > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_INTR_RESET, > > - NULL, NULL); > > + NULL); > > } > > > > 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); > > > > 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); > > } > > > > 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, > > > > 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 = 0; > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > } > > } > > > > @@ -2638,7 +2638,7 @@ fm10k_dev_interrupt_handler_pf(void *param) > > PMD_INIT_LOG(INFO, "INT: Switch is down"); > > dev_info->sm_down = 1; > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > } > > > > /* Handle SRAM error */ > > @@ -2706,7 +2706,7 @@ fm10k_dev_interrupt_handler_vf(void *param) > > /* Setting reset flag */ > > dev_info->sm_down = 1; > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > } > > > > if (dev_info->sm_down == 1 && > > @@ -2735,7 +2735,7 @@ fm10k_dev_interrupt_handler_vf(void *param) > > > > dev_info->sm_down = 0; > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > } > > > > /* 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 = 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 != 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_ethdev.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 &= ~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); > > } > > > > if (intr->flags & IXGBE_FLAG_MACSEC) { > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_MACSEC, > > - NULL, NULL); > > + NULL); > > intr->flags &= ~IXGBE_FLAG_MACSEC; > > } > > > > @@ -8171,7 +8171,7 @@ static void ixgbevf_mbx_process(struct rte_eth_dev > > *dev) > > /* PF reset VF event */ > > if (in_msg == IXGBE_PF_CONTROL_MSG) > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_INTR_RESET, > > - NULL, NULL); > > + NULL); > > } > > > > 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) > > > > /* notify application about VF reset */ > > _rte_eth_dev_callback_process(dev, > > RTE_ETH_EVENT_VF_MBOX, > > - NULL, &ret_param); > > + &ret_param); > > return ret; > > } > > > > @@ -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); > > > > retval = ret_param.retval; > > > > 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); > > } > > > > /** > > @@ -236,7 +236,7 @@ mlx4_interrupt_handler(struct priv *priv) > > for (i = 0; i != RTE_DIM(caught); ++i) > > if (caught[i]) > > _rte_eth_dev_callback_process(priv->dev, type[i], > > - NULL, NULL); > > + NULL); > > } > > > > /** > > diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.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 = 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); > > } > > > > /** > > @@ -1253,11 +1252,9 @@ mlx5_dev_interrupt_handler(void *cb_arg) > > events = 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); > > } > > > > /** > > 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 = (struct rte_eth_dev *)param; > > > > 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); > > > > nfp_net_dev_link_status_print(dev); > > > > diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c index > > 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); > > } > > } > > > > @@ -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); > > } > > } > > > > 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); > > } > > > > 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) > > > > RTE_LOG(INFO, PMD, "New connection established\n"); > > > > - _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); > > > > return 0; > > } > > @@ -664,8 +663,7 @@ destroy_device(int vid) > > > > RTE_LOG(INFO, PMD, "Connection closed\n"); > > > > - _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); > > } > > > > static int > > @@ -694,8 +692,7 @@ vring_state_changed(int vid, uint16_t vring, int enable) > > RTE_LOG(INFO, PMD, "vring%u is %s\n", > > vring, enable ? "enabled" : "disabled"); > > > > - _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); > > > > return 0; > > } > > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_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) == 0) > > _rte_eth_dev_callback_process(dev, > > > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > } > > > > } > > 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) == 0) > > _rte_eth_dev_callback_process(dev, > > > > RTE_ETH_EVENT_INTR_LSC, > > - NULL, NULL); > > + NULL); > > } > > > > /* 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, > > > > 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 = *cb_lst; > > cb_lst->active = 1; > > - if (cb_arg != NULL) > > - dev_cb.cb_arg = cb_arg; > > if (ret_param != NULL) > > dev_cb.ret_param = ret_param; > > > > 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_id, > > * 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 notice needed ? > This API is currently used by the test/test/virtual_pmd.c APP and may be used by other APP's in the field. > Agreed, it definately should go through the deprecation process Neil