[dpdk-dev,1/1] net/mlx4: update link status upon probing with lsc

Message ID 0521c983473b30b9e2bb7a6b84eda4fe4aec5240.1488550853.git.gaetan.rivet@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Gaëtan Rivet March 3, 2017, 3:39 p.m. UTC
  If LSC interrupts are enabled, the application expects the link_update
ops to be executed by the PMD itself.

No link status change event is received upon probing, therefore the link
status update must be forced.

Fixes: c4da6caa426d ("mlx4: handle link status interrupts")
Cc: stable@dpdk.org

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
 drivers/net/mlx4/mlx4.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Adrien Mazarguil March 17, 2017, 10:40 a.m. UTC | #1
On Fri, Mar 03, 2017 at 04:39:56PM +0100, Gaetan Rivet wrote:
> If LSC interrupts are enabled, the application expects the link_update
> ops to be executed by the PMD itself.
> 
> No link status change event is received upon probing, therefore the link
> status update must be forced.
> 
> Fixes: c4da6caa426d ("mlx4: handle link status interrupts")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>

Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
  
Ferruh Yigit March 20, 2017, 2:16 p.m. UTC | #2
On 3/17/2017 10:40 AM, Adrien Mazarguil wrote:
> On Fri, Mar 03, 2017 at 04:39:56PM +0100, Gaetan Rivet wrote:
>> If LSC interrupts are enabled, the application expects the link_update
>> ops to be executed by the PMD itself.
>>
>> No link status change event is received upon probing, therefore the link
>> status update must be forced.
>>
>> Fixes: c4da6caa426d ("mlx4: handle link status interrupts")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
> 
> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index fc84464..35a680c 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -5722,6 +5722,9 @@  mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 		/* Bring Ethernet device up. */
 		DEBUG("forcing Ethernet interface up");
 		priv_set_flags(priv, ~IFF_UP, IFF_UP);
+		/* Update link status once if waiting for LSC. */
+		if (eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
+			mlx4_link_update(eth_dev, 0);
 		continue;
 
 port_error: