mlx4_core: Fix fallback from MSI-X to INTx
The test in mlx4_load_one() to remove MLX4_FLAG_MSI_X expects mlx4_NOP() to
fail with -EBUSY. It is also necessary to avoid the reset since the device
is not fully reinitialized before calling mlx4_start_hca() a second time.
Note that this will also affect mlx4_test_interrupts(), the only other user
of MLX4_CMD_NOP.
Fixes: f5aef5a
("net/mlx4_core: Activate reset flow upon fatal command cases")
Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ce0e5c522d
commit
f4ecf29fd7
|
@ -714,8 +714,13 @@ static int mlx4_cmd_wait(struct mlx4_dev *dev, u64 in_param, u64 *out_param,
|
||||||
msecs_to_jiffies(timeout))) {
|
msecs_to_jiffies(timeout))) {
|
||||||
mlx4_warn(dev, "command 0x%x timed out (go bit not cleared)\n",
|
mlx4_warn(dev, "command 0x%x timed out (go bit not cleared)\n",
|
||||||
op);
|
op);
|
||||||
err = -EIO;
|
if (op == MLX4_CMD_NOP) {
|
||||||
goto out_reset;
|
err = -EBUSY;
|
||||||
|
goto out;
|
||||||
|
} else {
|
||||||
|
err = -EIO;
|
||||||
|
goto out_reset;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = context->result;
|
err = context->result;
|
||||||
|
|
Loading…
Reference in New Issue