net/i40e: cancel alarm handler at the end of device closure
Checks
Commit Message
Some operations in i40evf_dev_close like i40evf_dev_promiscuous_disable
still need alarm handler to clear the pending cmd, if alarm handler is
canceled in early stage of i40evf_dev_close, i40evf_dev_promiscuous_disable
will result in failure.
Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")
Cc: stable@dpdk.org
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Ye, Xiaolong
> Sent: Tuesday, October 23, 2018 8:54 AM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Ye, Xiaolong <xiaolong.ye@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/i40e: cancel alarm handler at the end of device closure
>
> Some operations in i40evf_dev_close like i40evf_dev_promiscuous_disable
> still need alarm handler to clear the pending cmd, if alarm handler is
> canceled in early stage of i40evf_dev_close, i40evf_dev_promiscuous_disable
> will result in failure.
>
> Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")
>
> Cc: stable@dpdk.org
> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
> ---
> drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index baa6cc58f..52ae578d6 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -2249,7 +2249,6 @@ i40evf_dev_close(struct rte_eth_dev *dev) {
> struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data-
> >dev_private);
>
> - rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
> i40evf_dev_stop(dev);
> i40e_dev_free_queues(dev);
> /*
> @@ -2263,6 +2262,7 @@ i40evf_dev_close(struct rte_eth_dev *dev)
> i40evf_reset_vf(hw);
> i40e_shutdown_adminq(hw);
> i40evf_disable_irq0(hw);
> + rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
> }
>
> /*
> --
> 2.17.1
Acked-by: Beilei Xing <beilei.xing@intel.com>
> -----Original Message-----
> From: Xing, Beilei
> Sent: Tuesday, October 23, 2018 2:10 AM
> To: Ye, Xiaolong <xiaolong.ye@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: RE: [PATCH] net/i40e: cancel alarm handler at the end of device
> closure
>
>
>
> > -----Original Message-----
> > From: Ye, Xiaolong
> > Sent: Tuesday, October 23, 2018 8:54 AM
> > To: Zhang, Qi Z <qi.z.zhang@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>
> > Cc: dev@dpdk.org; Ye, Xiaolong <xiaolong.ye@intel.com>;
> > stable@dpdk.org
> > Subject: [PATCH] net/i40e: cancel alarm handler at the end of device
> > closure
> >
> > Some operations in i40evf_dev_close like
> > i40evf_dev_promiscuous_disable still need alarm handler to clear the
> > pending cmd, if alarm handler is canceled in early stage of
> > i40evf_dev_close, i40evf_dev_promiscuous_disable will result in failure.
> >
> > Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")
> >
> > Cc: stable@dpdk.org
> > Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
> > ---
> > drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> > b/drivers/net/i40e/i40e_ethdev_vf.c
> > index baa6cc58f..52ae578d6 100644
> > --- a/drivers/net/i40e/i40e_ethdev_vf.c
> > +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> > @@ -2249,7 +2249,6 @@ i40evf_dev_close(struct rte_eth_dev *dev) {
> > struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data-
> > >dev_private);
> >
> > - rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
> > i40evf_dev_stop(dev);
> > i40e_dev_free_queues(dev);
> > /*
> > @@ -2263,6 +2262,7 @@ i40evf_dev_close(struct rte_eth_dev *dev)
> > i40evf_reset_vf(hw);
> > i40e_shutdown_adminq(hw);
> > i40evf_disable_irq0(hw);
> > + rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
> > }
> >
> > /*
> > --
> > 2.17.1
>
> Acked-by: Beilei Xing <beilei.xing@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -2249,7 +2249,6 @@ i40evf_dev_close(struct rte_eth_dev *dev)
{
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
- rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
i40evf_dev_stop(dev);
i40e_dev_free_queues(dev);
/*
@@ -2263,6 +2262,7 @@ i40evf_dev_close(struct rte_eth_dev *dev)
i40evf_reset_vf(hw);
i40e_shutdown_adminq(hw);
i40evf_disable_irq0(hw);
+ rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
}
/*