From patchwork Sun Jun 7 15:16:09 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yevgeny Petrilin X-Patchwork-Id: 28202 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 16592B70B7 for ; Mon, 8 Jun 2009 00:25:35 +1000 (EST) Received: by ozlabs.org (Postfix) id F2DF0DDD0B; Mon, 8 Jun 2009 00:25:34 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 94DFBDDDA2 for ; Mon, 8 Jun 2009 00:25:34 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754821AbZFGOZW (ORCPT ); Sun, 7 Jun 2009 10:25:22 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755591AbZFGOZV (ORCPT ); Sun, 7 Jun 2009 10:25:21 -0400 Received: from mail.mellanox.co.il ([194.90.237.43]:55377 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755351AbZFGOZS (ORCPT ); Sun, 7 Jun 2009 10:25:18 -0400 Received: from Internal Mail-Server by MTLPINE1 (envelope-from yevgenyp@mellanox.co.il) with SMTP; 7 Jun 2009 17:25:17 +0300 Received: from sw275.lab.mtl.com ([10.4.12.75]) by mtlexch01.mtl.com with Microsoft SMTPSVC(6.0.3790.3959); Sun, 7 Jun 2009 17:25:17 +0300 Message-ID: <4A2BD9B9.6000802@mellanox.co.il> Date: Sun, 07 Jun 2009 18:16:09 +0300 From: Yevgeny Petrilin User-Agent: Thunderbird 2.0.0.21 (X11/20090302) MIME-Version: 1.0 To: rdreier@cisco.com CC: netdev@vger.kernel.org, general@lists.openfabrics.org, Christoph Lameter Subject: [ofa-general][PATCH] mlx4: FIX error flow when initializing EQ table X-OriginalArrivalTime: 07 Jun 2009 14:25:17.0368 (UTC) FILETIME=[C7ABAB80:01C9E77B] X-TM-AS-Product-Ver: SMEX-8.0.0.1181-5.600.1016-16688.007 X-TM-AS-Result: No--3.645500-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If mlx4_create_eq() would fail for one of EQ's assigned for completion handling, the code would try to free the same EQ we failed to create. The crash was found by Christoph Lameter Signed-off-by: Yevgeny Petrilin --- drivers/net/mlx4/eq.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/net/mlx4/eq.c b/drivers/net/mlx4/eq.c index 8830dcb..dee1887 100644 --- a/drivers/net/mlx4/eq.c +++ b/drivers/net/mlx4/eq.c @@ -623,8 +623,10 @@ int mlx4_init_eq_table(struct mlx4_dev *dev) err = mlx4_create_eq(dev, dev->caps.num_cqs + MLX4_NUM_SPARE_EQE, (dev->flags & MLX4_FLAG_MSI_X) ? i : 0, &priv->eq_table.eq[i]); - if (err) + if (err) { + --i; goto err_out_unmap; + } } err = mlx4_create_eq(dev, MLX4_NUM_ASYNC_EQE + MLX4_NUM_SPARE_EQE,