[dpdk-dev] [PATCH v3 2/2] net/i40e: fix VF bonded device link down

Ferruh Yigit ferruh.yigit at intel.com
Fri Oct 28 13:05:02 CEST 2016


Hi Qiming,

On 10/28/2016 5:18 AM, Qiming Yang wrote:
> If VF device is used as slave of a bond device, it will be polled
> periodically through alarm. Interrupt is involved here. And then
> VF will send I40E_VIRTCHNL_OP_GET_LINK_STAT message to
> PF to query the status. The response is handled by interrupt
> callback. Interrupt is involved here again. That's why bond
> device cannot bring up.
> 
> This patch removes I40E_VIRTCHNL_OP_GET_LINK_STAT
> message. Link status in VF driver will be updated when PF driver
> notify it, and VF stores this link status locally. VF driver just
> returns the local status when being required.
> 
> Fixes: 4861cde46116 ("i40e: new poll mode driver")
> 
> Signed-off-by: Qiming Yang <qiming.yang at intel.com>
> ---

<...>

>  static void
> +i40e_notify_all_vfs_link_status(struct rte_eth_dev *dev)
> +{
> +	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
> +	struct i40e_virtchnl_pf_event event;
> +	int i;
> +
> +	event.event = I40E_VIRTCHNL_EVENT_LINK_CHANGE;
> +	event.event_data.link_event.link_status =
> +		dev->data->dev_link.link_status;
> +	event.event_data.link_event.link_speed =
> +		dev->data->dev_link.link_speed;

This gives a compilation error with icc [1], casting to enum will be
enough to fix I guess.

[1]
.../drivers/net/i40e/i40e_ethdev.c(5453): error #188: enumerated type
mixed with another type
        event.event_data.link_event.link_speed =
                                               ^
<...>

> diff --git a/drivers/net/i40e/i40e_pf.c b/drivers/net/i40e/i40e_pf.c
> index d5b2d45..350f6a0 100644

<...>

>  
> +static void
> +i40e_notify_vf_link_status(struct rte_eth_dev *dev, struct i40e_pf_vf *vf)
> +{
> +	struct i40e_virtchnl_pf_event event;
> +
> +	event.event = I40E_VIRTCHNL_EVENT_LINK_CHANGE;
> +	event.event_data.link_event.link_status =
> +			dev->data->dev_link.link_status;
> +	event.event_data.link_event.link_speed =
> +			dev->data->dev_link.link_speed;

Same error here:

.../drivers/net/i40e/i40e_pf.c(908): error #188: enumerated type mixed
with another type
        event.event_data.link_event.link_speed =
                                               ^


And while sending a new version of the patch, can you please:

1- CC the maintainers
2- Patchset already acked by Jingjing, keep the ack in the patches.

Thanks,
ferruh


More information about the dev mailing list