From patchwork Fri May 22 23:12:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Poirier X-Patchwork-Id: 475832 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 5A089140E45 for ; Sat, 23 May 2015 09:13:50 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=To3jCB/Q; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757573AbbEVXNc (ORCPT ); Fri, 22 May 2015 19:13:32 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:36027 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757137AbbEVXN3 (ORCPT ); Fri, 22 May 2015 19:13:29 -0400 Received: by paza2 with SMTP id a2so21085060paz.3; Fri, 22 May 2015 16:13:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id; bh=AY9LHGVUST6f84Xa+s7ltQnBhhZc+KnZ3ukHzhgwJi8=; b=To3jCB/QCnjzbHmQtKpjp9uux9jCfc3vl7ycBZw0gthqSGdOjb0hNll5tYdQwbA08n n322A6GI2g4UYN2GBIvMoMkZ40CabPPgUHU/foWsWEWkRb1DgKkEMhH4QTx5HA5MSDya cEmWIgCVrPdcKOAvlC1I5fjgH1CemtvtDfKVFcfwVRn5KVApxKq5OySgpOBBgBqS5rza KLwQoqEGiQ1eD7wlxrE/FuSt8jsgDLwlHb2MYHMX8TO8urGT6W9BBq6s1kYzxtcg2iWq +47pSfFhcLbPuu1SCY/2Zrsx+YRyy3i1wKC54P66r8I0OTB2Q8G5OYbFA6jtSblDq6xg B12A== X-Received: by 10.66.249.101 with SMTP id yt5mr19691352pac.116.1432336409398; Fri, 22 May 2015 16:13:29 -0700 (PDT) Received: from f1.synalogic.ca (c-73-202-26-186.hsd1.ca.comcast.net. [73.202.26.186]) by mx.google.com with ESMTPSA id we8sm3136420pac.44.2015.05.22.16.13.28 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 22 May 2015 16:13:28 -0700 (PDT) From: Benjamin Poirier To: Amir Vadai , Ido Shamay Cc: Yishai Hadas , Or Gerlitz , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] mlx4_core: Fix fallback from MSI-X to INTx Date: Fri, 22 May 2015 16:12:26 -0700 Message-Id: <1432336346-20290-1-git-send-email-bpoirier@suse.de> X-Mailer: git-send-email 2.3.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- drivers/net/ethernet/mellanox/mlx4/cmd.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c index 4f7dc04..529ef05 100644 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c @@ -714,8 +714,13 @@ static int mlx4_cmd_wait(struct mlx4_dev *dev, u64 in_param, u64 *out_param, msecs_to_jiffies(timeout))) { mlx4_warn(dev, "command 0x%x timed out (go bit not cleared)\n", op); - err = -EIO; - goto out_reset; + if (op == MLX4_CMD_NOP) { + err = -EBUSY; + goto out; + } else { + err = -EIO; + goto out_reset; + } } err = context->result;