Date: Tue, 26 Mar 2019 13:38:50 +0000 (UTC) From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r345534 - stable/11/sys/dev/mlx4/mlx4_en Message-ID: <201903261338.x2QDcoU4031121@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: hselasky Date: Tue Mar 26 13:38:49 2019 New Revision: 345534 URL: https://svnweb.freebsd.org/changeset/base/345534 Log: MFC r344920: Teardown ifnet after stopping port in the mlx4en(4) driver. mlx4_en_stop_port() calls mlx4_en_put_qp() which can refer the link level address of the network interface, which in turn will be freed by the network interface detach function. Make sure the port is stopped before detaching the network interface. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c ============================================================================== --- stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c Tue Mar 26 13:37:56 2019 (r345533) +++ stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c Tue Mar 26 13:38:49 2019 (r345534) @@ -1776,13 +1776,13 @@ void mlx4_en_destroy_netdev(struct net_device *dev) if (priv->vlan_detach != NULL) EVENTHANDLER_DEREGISTER(vlan_unconfig, priv->vlan_detach); - /* Unregister device - this will close the port if it was up */ - if (priv->registered) - ether_ifdetach(dev); - mutex_lock(&mdev->state_lock); mlx4_en_stop_port(dev); mutex_unlock(&mdev->state_lock); + + /* Unregister device - this will close the port if it was up */ + if (priv->registered) + ether_ifdetach(dev); if (priv->allocated) mlx4_free_hwq_res(mdev->dev, &priv->res, MLX4_EN_PAGE_SIZE);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903261338.x2QDcoU4031121>