DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status
@ 2018-08-10  8:10 Yanglong Wu
  2018-09-06  5:33 ` Zhang, Qi Z
  2018-11-13  6:34 ` [dpdk-dev] [PATCH v2] " Yanglong Wu
  0 siblings, 2 replies; 8+ messages in thread
From: Yanglong Wu @ 2018-08-10  8:10 UTC (permalink / raw)
  To: dev; +Cc: rosen.xu, dong1.wang, qi.z.zhang, Yanglong Wu

For ixgbevf kernel driver, link status changes from down to up
will trigger vf kernel driver send IXGBE_VF_RESET message to pf
kernel driver, after this, vf kernel driver will disable and enable
it self. By these series operations, the vf kernel driver report
link up. Besides, all these operations handles in kernel thread.
For DPDK user space driver, it only gets link status changes from
down to up, but miss IXGBE_VF_RESET message sending and reset itself.
If we will add fully implementation of link status change for DPDK
user space driver, we need take much more modification. We have
aligned that for link status changes from down to up we only notify
link is up, users need to reset vf port.

Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 26b192737..4d5f4441b 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3865,13 +3865,12 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
 
 static int
 ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
-		   int *link_up, int wait_to_complete)
+		   int *link_up, __attribute__((unused)) int wait_to_complete)
 {
 	/**
 	 * for a quick link status checking, wait_to_compelet == 0,
 	 * skip PF link status checking
 	 */
-	bool no_pflink_check = wait_to_complete == 0;
 	struct ixgbe_mbx_info *mbx = &hw->mbx;
 	struct ixgbe_mac_info *mac = &hw->mac;
 	uint32_t links_reg, in_msg;
@@ -3931,15 +3930,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 	default:
 		*speed = IXGBE_LINK_SPEED_UNKNOWN;
 	}
-
-	if (no_pflink_check) {
-		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
-			mac->get_link_status = true;
-		else
-			mac->get_link_status = false;
-
-		goto out;
-	}
 	/* if the read failed it could just be a mailbox collision, best wait
 	 * until we are called again and don't report an error
 	 */
@@ -3949,7 +3939,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
 		/* msg is not CTS and is NACK we must have lost CTS status */
 		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
-			ret_val = -1;
+			mac->get_link_status = false;
 		goto out;
 	}
 
-- 
2.11.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status
  2018-08-10  8:10 [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status Yanglong Wu
@ 2018-09-06  5:33 ` Zhang, Qi Z
  2018-10-26  6:10   ` Wu, Yanglong
  2018-11-13  6:34 ` [dpdk-dev] [PATCH v2] " Yanglong Wu
  1 sibling, 1 reply; 8+ messages in thread
From: Zhang, Qi Z @ 2018-09-06  5:33 UTC (permalink / raw)
  To: Wu, Yanglong, dev; +Cc: Xu, Rosen, Wang, Dong1

Hi Yanglong:

> -----Original Message-----
> From: Wu, Yanglong
> Sent: Friday, August 10, 2018 4:10 PM
> To: dev@dpdk.org
> Cc: Xu, Rosen <rosen.xu@intel.com>; Wang, Dong1 <dong1.wang@intel.com>;
> Zhang, Qi Z <qi.z.zhang@intel.com>; Wu, Yanglong <yanglong.wu@intel.com>
> Subject: [PATCH] net/ixgbe: fix ixgbevf link status
> 
> For ixgbevf kernel driver, link status changes from down to up will trigger vf
> kernel driver send IXGBE_VF_RESET message to pf kernel driver, after this, vf
> kernel driver will disable and enable it self. By these series operations, the vf
> kernel driver report link up. Besides, all these operations handles in kernel
> thread.
> For DPDK user space driver, it only gets link status changes from down to up,
> but miss IXGBE_VF_RESET message sending and reset itself.
> If we will add fully implementation of link status change for DPDK user space
> driver, we need take much more modification. We have aligned that for link
> status changes from down to up we only notify link is up, users need to reset
> vf port.

OK, the commit log described the gap between kernel driver and DPDK driver, and the workaround which require proper change in application.
But what is the problem the patch is going to fix?, what's the relationship between the fix and commit log, I can't figure out.
Basically the patch remove the no_pflink_check branch, so it will always check with PF for the link status. I guess this help to guarantee that application can always get correct link status, but why we need that commit log here? would you explain more?

> 
> Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")
> 
> Signed-off-by: Rosen Xu <rosen.xu@intel.com>
> Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 14 ++------------
>  1 file changed, 2 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 26b192737..4d5f4441b 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -3865,13 +3865,12 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
> 
>  static int
>  ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
> -		   int *link_up, int wait_to_complete)
> +		   int *link_up, __attribute__((unused)) int wait_to_complete)

I think we can just remove "wait_to_complete", right?

>  {
>  	/**
>  	 * for a quick link status checking, wait_to_compelet == 0,
>  	 * skip PF link status checking
>  	 */
> -	bool no_pflink_check = wait_to_complete == 0;
>  	struct ixgbe_mbx_info *mbx = &hw->mbx;
>  	struct ixgbe_mac_info *mac = &hw->mac;
>  	uint32_t links_reg, in_msg;
> @@ -3931,15 +3930,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw,
> ixgbe_link_speed *speed,
>  	default:
>  		*speed = IXGBE_LINK_SPEED_UNKNOWN;
>  	}
> -
> -	if (no_pflink_check) {
> -		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
> -			mac->get_link_status = true;
> -		else
> -			mac->get_link_status = false;
> -
> -		goto out;
> -	}
>  	/* if the read failed it could just be a mailbox collision, best wait
>  	 * until we are called again and don't report an error
>  	 */
> @@ -3949,7 +3939,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw,
> ixgbe_link_speed *speed,
>  	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
>  		/* msg is not CTS and is NACK we must have lost CTS status */
>  		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
> -			ret_val = -1;
> +			mac->get_link_status = false;
>  		goto out;
>  	}
> 
> --
> 2.11.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status
  2018-09-06  5:33 ` Zhang, Qi Z
@ 2018-10-26  6:10   ` Wu, Yanglong
  0 siblings, 0 replies; 8+ messages in thread
From: Wu, Yanglong @ 2018-10-26  6:10 UTC (permalink / raw)
  To: Zhang, Qi Z, dev; +Cc: Xu, Rosen, Wang, Dong1

Hi, qi:

 This patch we are going to fix the problem H3C: 82599 Niantic VF can't get correct link status when use cable :https://jira01.devtools.intel.com/browse/DPDK-5543?filter=-3

The commit log describe about the gap between kernel and dpdk and why we design  this workaround to get right link status. 

Regard
Yanglong wu 

-----Original Message-----
From: Zhang, Qi Z 
Sent: Thursday, September 6, 2018 1:34 PM
To: Wu, Yanglong <yanglong.wu@intel.com>; dev@dpdk.org
Cc: Xu, Rosen <rosen.xu@intel.com>; Wang, Dong1 <dong1.wang@intel.com>
Subject: RE: [PATCH] net/ixgbe: fix ixgbevf link status

Hi Yanglong:

> -----Original Message-----
> From: Wu, Yanglong
> Sent: Friday, August 10, 2018 4:10 PM
> To: dev@dpdk.org
> Cc: Xu, Rosen <rosen.xu@intel.com>; Wang, Dong1 
> <dong1.wang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Wu, 
> Yanglong <yanglong.wu@intel.com>
> Subject: [PATCH] net/ixgbe: fix ixgbevf link status
> 
> For ixgbevf kernel driver, link status changes from down to up will 
> trigger vf kernel driver send IXGBE_VF_RESET message to pf kernel 
> driver, after this, vf kernel driver will disable and enable it self. 
> By these series operations, the vf kernel driver report link up. 
> Besides, all these operations handles in kernel thread.
> For DPDK user space driver, it only gets link status changes from down 
> to up, but miss IXGBE_VF_RESET message sending and reset itself.
> If we will add fully implementation of link status change for DPDK 
> user space driver, we need take much more modification. We have 
> aligned that for link status changes from down to up we only notify 
> link is up, users need to reset vf port.

OK, the commit log described the gap between kernel driver and DPDK driver, and the workaround which require proper change in application.
But what is the problem the patch is going to fix?, what's the relationship between the fix and commit log, I can't figure out.
Basically the patch remove the no_pflink_check branch, so it will always check with PF for the link status. I guess this help to guarantee that application can always get correct link status, but why we need that commit log here? would you explain more?

> 
> Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")
> 
> Signed-off-by: Rosen Xu <rosen.xu@intel.com>
> Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 14 ++------------
>  1 file changed, 2 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 26b192737..4d5f4441b 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -3865,13 +3865,12 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
> 
>  static int
>  ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
> -		   int *link_up, int wait_to_complete)
> +		   int *link_up, __attribute__((unused)) int wait_to_complete)

I think we can just remove "wait_to_complete", right?

>  {
>  	/**
>  	 * for a quick link status checking, wait_to_compelet == 0,
>  	 * skip PF link status checking
>  	 */
> -	bool no_pflink_check = wait_to_complete == 0;
>  	struct ixgbe_mbx_info *mbx = &hw->mbx;
>  	struct ixgbe_mac_info *mac = &hw->mac;
>  	uint32_t links_reg, in_msg;
> @@ -3931,15 +3930,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, 
> ixgbe_link_speed *speed,
>  	default:
>  		*speed = IXGBE_LINK_SPEED_UNKNOWN;
>  	}
> -
> -	if (no_pflink_check) {
> -		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
> -			mac->get_link_status = true;
> -		else
> -			mac->get_link_status = false;
> -
> -		goto out;
> -	}
>  	/* if the read failed it could just be a mailbox collision, best wait
>  	 * until we are called again and don't report an error
>  	 */
> @@ -3949,7 +3939,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, 
> ixgbe_link_speed *speed,
>  	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
>  		/* msg is not CTS and is NACK we must have lost CTS status */
>  		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
> -			ret_val = -1;
> +			mac->get_link_status = false;
>  		goto out;
>  	}
> 
> --
> 2.11.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH v2] net/ixgbe: fix ixgbevf link status
  2018-08-10  8:10 [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status Yanglong Wu
  2018-09-06  5:33 ` Zhang, Qi Z
@ 2018-11-13  6:34 ` Yanglong Wu
  2018-11-13 19:27   ` Zhang, Qi Z
  2018-11-14  5:14   ` Wang, Dong1
  1 sibling, 2 replies; 8+ messages in thread
From: Yanglong Wu @ 2018-11-13  6:34 UTC (permalink / raw)
  To: dev; +Cc: qi.z.zhang, rosen.xu, dong1.wang, Yanglong Wu

For ixgbevf kernel driver, link status changes from down to up
will trigger vf kernel driver send IXGBE_VF_RESET message to pf
kernel driver, after this, vf kernel driver will disable and enable
it self. By these series operations, the vf kernel driver report
link up. Besides, all these operations handles in kernel thread.
For DPDK user space driver, it only gets link status changes from
down to up, but miss IXGBE_VF_RESET message sending and reset itself.
If we will add fully implementation of link status change for DPDK
user space driver, we need take much more modification. We have
aligned that for link status changes from down to up we only notify
link is up, users need to reset vf port.

Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
---
v2
change as comments
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 8148577f5..91ba6201d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3880,11 +3880,6 @@ static int
 ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 		   int *link_up, int wait_to_complete)
 {
-	/**
-	 * for a quick link status checking, wait_to_compelet == 0,
-	 * skip PF link status checking
-	 */
-	bool no_pflink_check = wait_to_complete == 0;
 	struct ixgbe_mbx_info *mbx = &hw->mbx;
 	struct ixgbe_mac_info *mac = &hw->mac;
 	uint32_t links_reg, in_msg;
@@ -3945,14 +3940,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 		*speed = IXGBE_LINK_SPEED_UNKNOWN;
 	}
 
-	if (no_pflink_check) {
-		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
-			mac->get_link_status = true;
-		else
-			mac->get_link_status = false;
-
-		goto out;
-	}
 	/* if the read failed it could just be a mailbox collision, best wait
 	 * until we are called again and don't report an error
 	 */
@@ -3962,7 +3949,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
 		/* msg is not CTS and is NACK we must have lost CTS status */
 		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
-			ret_val = -1;
+			mac->get_link_status = false;
 		goto out;
 	}
 
-- 
2.11.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix ixgbevf link status
  2018-11-13  6:34 ` [dpdk-dev] [PATCH v2] " Yanglong Wu
@ 2018-11-13 19:27   ` Zhang, Qi Z
  2018-11-14  5:14   ` Wang, Dong1
  1 sibling, 0 replies; 8+ messages in thread
From: Zhang, Qi Z @ 2018-11-13 19:27 UTC (permalink / raw)
  To: Wu, Yanglong, dev; +Cc: Xu, Rosen, Wang, Dong1



> -----Original Message-----
> From: Wu, Yanglong
> Sent: Monday, November 12, 2018 10:35 PM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Xu, Rosen <rosen.xu@intel.com>;
> Wang, Dong1 <dong1.wang@intel.com>; Wu, Yanglong
> <yanglong.wu@intel.com>
> Subject: [PATCH v2] net/ixgbe: fix ixgbevf link status
> 
> For ixgbevf kernel driver, link status changes from down to up will trigger vf
> kernel driver send IXGBE_VF_RESET message to pf kernel driver, after this, vf
> kernel driver will disable and enable it self. By these series operations, the vf
> kernel driver report link up. Besides, all these operations handles in kernel
> thread.
> For DPDK user space driver, it only gets link status changes from down to up,
> but miss IXGBE_VF_RESET message sending and reset itself.
> If we will add fully implementation of link status change for DPDK user space
> driver, we need take much more modification. We have aligned that for link
> status changes from down to up we only notify link is up, users need to reset
> vf port.
> 
> Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")
> 
> Signed-off-by: Rosen Xu <rosen.xu@intel.com>
> Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi

> ---
> v2
> change as comments
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 8148577f5..91ba6201d 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -3880,11 +3880,6 @@ static int
>  ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
>  		   int *link_up, int wait_to_complete)  {
> -	/**
> -	 * for a quick link status checking, wait_to_compelet == 0,
> -	 * skip PF link status checking
> -	 */
> -	bool no_pflink_check = wait_to_complete == 0;
>  	struct ixgbe_mbx_info *mbx = &hw->mbx;
>  	struct ixgbe_mac_info *mac = &hw->mac;
>  	uint32_t links_reg, in_msg;
> @@ -3945,14 +3940,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw,
> ixgbe_link_speed *speed,
>  		*speed = IXGBE_LINK_SPEED_UNKNOWN;
>  	}
> 
> -	if (no_pflink_check) {
> -		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
> -			mac->get_link_status = true;
> -		else
> -			mac->get_link_status = false;
> -
> -		goto out;
> -	}
>  	/* if the read failed it could just be a mailbox collision, best wait
>  	 * until we are called again and don't report an error
>  	 */
> @@ -3962,7 +3949,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw,
> ixgbe_link_speed *speed,
>  	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
>  		/* msg is not CTS and is NACK we must have lost CTS status */
>  		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
> -			ret_val = -1;
> +			mac->get_link_status = false;
>  		goto out;
>  	}
> 
> --
> 2.11.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix ixgbevf link status
  2018-11-13  6:34 ` [dpdk-dev] [PATCH v2] " Yanglong Wu
  2018-11-13 19:27   ` Zhang, Qi Z
@ 2018-11-14  5:14   ` Wang, Dong1
  1 sibling, 0 replies; 8+ messages in thread
From: Wang, Dong1 @ 2018-11-14  5:14 UTC (permalink / raw)
  To: Wu, Yanglong, dev; +Cc: Zhang, Qi Z, Xu, Rosen



-----Original Message-----
From: Wu, Yanglong 
Sent: Tuesday, November 13, 2018 14:35
To: dev@dpdk.org
Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Xu, Rosen <rosen.xu@intel.com>; Wang, Dong1 <dong1.wang@intel.com>; Wu, Yanglong <yanglong.wu@intel.com>
Subject: [PATCH v2] net/ixgbe: fix ixgbevf link status

For ixgbevf kernel driver, link status changes from down to up will trigger vf kernel driver send IXGBE_VF_RESET message to pf kernel driver, after this, vf kernel driver will disable and enable it self. By these series operations, the vf kernel driver report link up. Besides, all these operations handles in kernel thread.
For DPDK user space driver, it only gets link status changes from down to up, but miss IXGBE_VF_RESET message sending and reset itself.
If we will add fully implementation of link status change for DPDK user space driver, we need take much more modification. We have aligned that for link status changes from down to up we only notify link is up, users need to reset vf port.

Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
---
v2
change as comments
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 8148577f5..91ba6201d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3880,11 +3880,6 @@ static int
 ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 		   int *link_up, int wait_to_complete)  {
-	/**
-	 * for a quick link status checking, wait_to_compelet == 0,
-	 * skip PF link status checking
-	 */
-	bool no_pflink_check = wait_to_complete == 0;
 	struct ixgbe_mbx_info *mbx = &hw->mbx;
 	struct ixgbe_mac_info *mac = &hw->mac;
 	uint32_t links_reg, in_msg;
@@ -3945,14 +3940,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 		*speed = IXGBE_LINK_SPEED_UNKNOWN;
 	}
 
-	if (no_pflink_check) {
-		if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
-			mac->get_link_status = true;
-		else
-			mac->get_link_status = false;
-
-		goto out;
-	}
 	/* if the read failed it could just be a mailbox collision, best wait
 	 * until we are called again and don't report an error
 	 */
@@ -3962,7 +3949,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
 	if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
 		/* msg is not CTS and is NACK we must have lost CTS status */
 		if (in_msg & IXGBE_VT_MSGTYPE_NACK)
-			ret_val = -1;
+			mac->get_link_status = false;
 		goto out;
 	}
 
--
2.11.0

Acked-by: Wang Dong  <dong1.wang@intel.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status
  2019-12-17  6:12 [dpdk-dev] [PATCH] " Lunyuan Cui
@ 2019-12-18  2:35 ` Ye Xiaolong
  0 siblings, 0 replies; 8+ messages in thread
From: Ye Xiaolong @ 2019-12-18  2:35 UTC (permalink / raw)
  To: Lunyuan Cui; +Cc: dev, Wenzhuo Lu, Qiming Yang, stable

On 12/17, Lunyuan Cui wrote:
>The link status for ixgbevf is not correct when PF link up.
>IXGBE_ESDP register is only used when media type is fiber.
>
>Fixes: 1ca05831b9be ("net/ixgbe: fix link status")
>Cc: stable@dpdk.org
>
>Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
>---
> drivers/net/ixgbe/ixgbe_ethdev.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
>index 2c6fd0f13..a3f550c53 100644
>--- a/drivers/net/ixgbe/ixgbe_ethdev.c
>+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>@@ -4155,9 +4155,11 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
> 		return rte_eth_linkstatus_set(dev, &link);
> 	}
> 
>-	esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
>-	if ((esdp_reg & IXGBE_ESDP_SDP3))
>-		link_up = 0;
>+	if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
>+		esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
>+		if ((esdp_reg & IXGBE_ESDP_SDP3))
>+			link_up = 0;
>+	}
> 
> 	if (link_up == 0) {
> 		if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
>-- 
>2.17.1
>

Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>

Applied to dpdk-next-net-intel, Thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status
@ 2019-12-17  6:12 Lunyuan Cui
  2019-12-18  2:35 ` Ye Xiaolong
  0 siblings, 1 reply; 8+ messages in thread
From: Lunyuan Cui @ 2019-12-17  6:12 UTC (permalink / raw)
  To: dev; +Cc: Wenzhuo Lu, Qiming Yang, Lunyuan Cui, stable

The link status for ixgbevf is not correct when PF link up.
IXGBE_ESDP register is only used when media type is fiber.

Fixes: 1ca05831b9be ("net/ixgbe: fix link status")
Cc: stable@dpdk.org

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 2c6fd0f13..a3f550c53 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -4155,9 +4155,11 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
 		return rte_eth_linkstatus_set(dev, &link);
 	}
 
-	esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
-	if ((esdp_reg & IXGBE_ESDP_SDP3))
-		link_up = 0;
+	if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
+		esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
+		if ((esdp_reg & IXGBE_ESDP_SDP3))
+			link_up = 0;
+	}
 
 	if (link_up == 0) {
 		if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-12-18  2:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-10  8:10 [dpdk-dev] [PATCH] net/ixgbe: fix ixgbevf link status Yanglong Wu
2018-09-06  5:33 ` Zhang, Qi Z
2018-10-26  6:10   ` Wu, Yanglong
2018-11-13  6:34 ` [dpdk-dev] [PATCH v2] " Yanglong Wu
2018-11-13 19:27   ` Zhang, Qi Z
2018-11-14  5:14   ` Wang, Dong1
2019-12-17  6:12 [dpdk-dev] [PATCH] " Lunyuan Cui
2019-12-18  2:35 ` Ye Xiaolong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).