diff options
author | David S. Miller <davem@davemloft.net> | 2017-03-24 01:11:56 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-24 02:41:27 +0300 |
commit | 16ae1f223601c44e5cb65c99257ffae003504704 (patch) | |
tree | 1f5284c0e82e4d94ca07eb022fa7911d99bb0cb6 /drivers/net/ethernet/mellanox/mlx4/cmd.c | |
parent | 6f359f99b8c2ff3b09329611da00fe39a7c10e7e (diff) | |
parent | d038e3dcfff6e3de132726a9c7174d8170032aa4 (diff) | |
download | linux-16ae1f223601c44e5cb65c99257ffae003504704.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/broadcom/genet/bcmmii.c
drivers/net/hyperv/netvsc.c
kernel/bpf/hashtab.c
Almost entirely overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/cmd.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/cmd.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c index e8c105164931..0e0fa7030565 100644 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c @@ -2305,6 +2305,17 @@ static int sync_toggles(struct mlx4_dev *dev) rd_toggle = swab32(readl(&priv->mfunc.comm->slave_read)); if (wr_toggle == 0xffffffff || rd_toggle == 0xffffffff) { /* PCI might be offline */ + + /* If device removal has been requested, + * do not continue retrying. + */ + if (dev->persist->interface_state & + MLX4_INTERFACE_STATE_NOWAIT) { + mlx4_warn(dev, + "communication channel is offline\n"); + return -EIO; + } + msleep(100); wr_toggle = swab32(readl(&priv->mfunc.comm-> slave_write)); |