From patchwork Tue Apr 21 04:32:08 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland Dreier X-Patchwork-Id: 26221 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 A4191B6F56 for ; Tue, 21 Apr 2009 14:33:09 +1000 (EST) Received: by ozlabs.org (Postfix) id 92933DE05A; Tue, 21 Apr 2009 14:33:09 +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 39A78DDEFA for ; Tue, 21 Apr 2009 14:33:09 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750951AbZDUEcM (ORCPT ); Tue, 21 Apr 2009 00:32:12 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750874AbZDUEcK (ORCPT ); Tue, 21 Apr 2009 00:32:10 -0400 Received: from sj-iport-1.cisco.com ([171.71.176.70]:62289 "EHLO sj-iport-1.cisco.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750825AbZDUEcJ (ORCPT ); Tue, 21 Apr 2009 00:32:09 -0400 X-IronPort-AV: E=Sophos;i="4.40,221,1238976000"; d="scan'208";a="174380349" Received: from sj-dkim-4.cisco.com ([171.71.179.196]) by sj-iport-1.cisco.com with ESMTP; 21 Apr 2009 04:32:09 +0000 Received: from sj-core-5.cisco.com (sj-core-5.cisco.com [171.71.177.238]) by sj-dkim-4.cisco.com (8.12.11/8.12.11) with ESMTP id n3L4W9uN003599; Mon, 20 Apr 2009 21:32:09 -0700 Received: from xbh-sjc-221.amer.cisco.com (xbh-sjc-221.cisco.com [128.107.191.63]) by sj-core-5.cisco.com (8.13.8/8.13.8) with ESMTP id n3L4W9qR024132; Tue, 21 Apr 2009 04:32:09 GMT Received: from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by xbh-sjc-221.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 20 Apr 2009 21:32:09 -0700 Received: from roland-conroe ([10.33.42.9]) by xfe-sjc-212.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 20 Apr 2009 21:32:08 -0700 Received: by roland-conroe (Postfix, from userid 33217) id 58D99E7208; Mon, 20 Apr 2009 21:32:08 -0700 (PDT) From: Roland Dreier To: Yevgeny Petrilin , David Miller Cc: netdev@vger.kernel.org, tziporet@mellanox.co.il Subject: [PATCH] mlx4_en: Fix cleanup if workqueue create in mlx4_en_add() fails References: <49EC859C.700@mellanox.co.il> <49EC85FD.2080009@mellanox.co.il> X-Message-Flag: Warning: May contain useful information Date: Mon, 20 Apr 2009 21:32:08 -0700 In-Reply-To: <49EC85FD.2080009@mellanox.co.il> (Yevgeny Petrilin's message of "Mon, 20 Apr 2009 17:26:05 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 X-OriginalArrivalTime: 21 Apr 2009 04:32:08.0756 (UTC) FILETIME=[21CA2F40:01C9C23A] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=1090; t=1240288329; x=1241152329; c=relaxed/simple; s=sjdkim4002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=rdreier@cisco.com; z=From:=20Roland=20Dreier=20 |Subject:=20[PATCH]=20mlx4_en=3A=20Fix=20cleanup=20if=20wor kqueue=20create=20in=20mlx4_en_add()=20fails |Sender:=20; bh=T0M1w2oMil606lTmG4F7jdhTbJegoVPxax9dFpDpa+M=; b=SeQSgW5Dy0JgB3VOA+uagfEdBTEgYp/7sUkj/HXdHsV8NMhAqeyqfB3F6K 1sgXXIwwivhKtS4Idi5iptGDU7tCFJbMt7Sdswk3LFGLopG2ujCKjki97qlo 721L3DUVQx; Authentication-Results: sj-dkim-4; header.From=rdreier@cisco.com; dkim=pass ( sig from cisco.com/sjdkim4002 verified; ); Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If creating a workqueue fails, don't jump to the error path where that same workqueue is destroyed, since destroy_workqueue() can't handle a NULL pointer. This was spotted by the Coverity checker (CID 2617). Signed-off-by: Roland Dreier --- drivers/net/mlx4/en_main.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/mlx4/en_main.c b/drivers/net/mlx4/en_main.c index eda72dd..510633f 100644 --- a/drivers/net/mlx4/en_main.c +++ b/drivers/net/mlx4/en_main.c @@ -181,7 +181,7 @@ static void *mlx4_en_add(struct mlx4_dev *dev) mdev->workqueue = create_singlethread_workqueue("mlx4_en"); if (!mdev->workqueue) { err = -ENOMEM; - goto err_close_nic; + goto err_mr; } /* At this stage all non-port specific tasks are complete: @@ -214,9 +214,8 @@ err_free_netdev: flush_workqueue(mdev->workqueue); /* Stop event queue before we drop down to release shared SW state */ - -err_close_nic: destroy_workqueue(mdev->workqueue); + err_mr: mlx4_mr_free(dev, &mdev->mr); err_uar: