[v2] net/ixgbe: fix missing NULL point check
Checks
Commit Message
Add missing NULL point check inside ixgbe_pf_host_uninit, or it may cause
segment fault when detaching a device.
Fixes: cf80ba6e2038 ("net/ixgbe: add support for representor ports")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
v2: rebase
drivers/net/ixgbe/ixgbe_pf.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Comments
Hi Remy:
Would you mind to give an ack for this patch if no more issue, so I can merge to dpdk-next-net-intel.
Thanks
Qi
> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Monday, July 16, 2018 8:47 PM
> To: Horton, Remy <remy.horton@intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>; stable@dpdk.org
> Subject: [PATCH v2] net/ixgbe: fix missing NULL point check
>
> Add missing NULL point check inside ixgbe_pf_host_uninit, or it may cause
> segment fault when detaching a device.
>
> Fixes: cf80ba6e2038 ("net/ixgbe: add support for representor ports")
> Cc: stable@dpdk.org
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
>
> v2: rebase
>
> drivers/net/ixgbe/ixgbe_pf.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c index
> c381acf44..4b833ffab 100644
> --- a/drivers/net/ixgbe/ixgbe_pf.c
> +++ b/drivers/net/ixgbe/ixgbe_pf.c
> @@ -128,8 +128,6 @@ void ixgbe_pf_host_uninit(struct rte_eth_dev
> *eth_dev)
>
> PMD_INIT_FUNC_TRACE();
>
> - vfinfo =
> IXGBE_DEV_PRIVATE_TO_P_VFDATA(eth_dev->data->dev_private);
> -
> RTE_ETH_DEV_SRIOV(eth_dev).active = 0;
> RTE_ETH_DEV_SRIOV(eth_dev).nb_q_per_pool = 0;
> RTE_ETH_DEV_SRIOV(eth_dev).def_vmdq_idx = 0; @@ -139,6 +137,10
> @@ void ixgbe_pf_host_uninit(struct rte_eth_dev *eth_dev)
> if (vf_num == 0)
> return;
>
> + vfinfo =
> IXGBE_DEV_PRIVATE_TO_P_VFDATA(eth_dev->data->dev_private);
> + if (*vfinfo == NULL)
> + return;
> +
> ret = rte_eth_switch_domain_free((*vfinfo)->switch_domain_id);
> if (ret)
> PMD_INIT_LOG(WARNING, "failed to free switch domain: %d", ret);
> --
> 2.13.6
On 16/07/2018 13:47, Qi Zhang wrote:
> Add missing NULL point check inside ixgbe_pf_host_uninit, or it may cause
> segment fault when detaching a device.
>
> Fixes: cf80ba6e2038 ("net/ixgbe: add support for representor ports")
> Cc: stable@dpdk.org
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Remy Horton <remy.horton@intel.com>
> -----Original Message-----
> From: Horton, Remy
> Sent: Thursday, July 19, 2018 8:41 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org; stable@dpdk.org
> Subject: Re: [PATCH v2] net/ixgbe: fix missing NULL point check
>
>
> On 16/07/2018 13:47, Qi Zhang wrote:
> > Add missing NULL point check inside ixgbe_pf_host_uninit, or it may
> > cause segment fault when detaching a device.
> >
> > Fixes: cf80ba6e2038 ("net/ixgbe: add support for representor ports")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>
> Acked-by: Remy Horton <remy.horton@intel.com>
Applied to dpdk-next-net-intel.
Thanks!
Qi
@@ -128,8 +128,6 @@ void ixgbe_pf_host_uninit(struct rte_eth_dev *eth_dev)
PMD_INIT_FUNC_TRACE();
- vfinfo = IXGBE_DEV_PRIVATE_TO_P_VFDATA(eth_dev->data->dev_private);
-
RTE_ETH_DEV_SRIOV(eth_dev).active = 0;
RTE_ETH_DEV_SRIOV(eth_dev).nb_q_per_pool = 0;
RTE_ETH_DEV_SRIOV(eth_dev).def_vmdq_idx = 0;
@@ -139,6 +137,10 @@ void ixgbe_pf_host_uninit(struct rte_eth_dev *eth_dev)
if (vf_num == 0)
return;
+ vfinfo = IXGBE_DEV_PRIVATE_TO_P_VFDATA(eth_dev->data->dev_private);
+ if (*vfinfo == NULL)
+ return;
+
ret = rte_eth_switch_domain_free((*vfinfo)->switch_domain_id);
if (ret)
PMD_INIT_LOG(WARNING, "failed to free switch domain: %d", ret);