From patchwork Mon Aug 9 10:36:05 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Carpenter X-Patchwork-Id: 61262 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 8BE2EB70AF for ; Mon, 9 Aug 2010 20:36:40 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756099Ab0HIKgg (ORCPT ); Mon, 9 Aug 2010 06:36:36 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:61239 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756070Ab0HIKge (ORCPT ); Mon, 9 Aug 2010 06:36:34 -0400 Received: by wyb39 with SMTP id 39so9714883wyb.19 for ; Mon, 09 Aug 2010 03:36:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:mime-version:content-type:content-disposition:user-agent; bh=eVm/lCMNvAIn0OCZoViQ/yWVw5dBLaeB4Wd0ZfVqxM0=; b=rqEuK0cUbcaP2jPM73Fdp15+CeYP2XiCiGYeY3BCJl28+1FTKZA0GZGqPM60g/syMV X5bf/i41iSfl9oy3AraJk33PCzRuex3T8t+oe4Fz3YpBTO4ac86Ef0NkIrCXngsuH5UF 9jWN14IWBXPgymcgl/+kYdj+Pz2W/GXIcq6YI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=pB/7c4CtGn8gvTHRr6fzUrFEqooTe9i7ss9skzMzemSWVEvGKT980WzbuuTSYqIUTF 08znGsFw9Qg1uLclct9P+FCI1XqeH/9vbcPE/8IOPrxjK2cjQTkpuJhq44JwTDjv/b8P WXb/nqVBXOOTfBAPNKzGuwSi8F63JBzXiX9Pk= Received: by 10.227.136.146 with SMTP id r18mr13287733wbt.53.1281350193354; Mon, 09 Aug 2010 03:36:33 -0700 (PDT) Received: from bicker ([41.205.146.22]) by mx.google.com with ESMTPS id w46sm2455548weq.19.2010.08.09.03.36.18 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 09 Aug 2010 03:36:32 -0700 (PDT) Date: Mon, 9 Aug 2010 12:36:05 +0200 From: Dan Carpenter To: Amit Kumar Salecha Cc: Anirban Chakraborty , linux-driver@qlogic.com, "David S. Miller" , Sucheta Chakraborty , netdev@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [patch 1/2] qlcnic: clean up qlcnic_init_pci_info() Message-ID: <20100809103542.GG9031@bicker> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In the original code we allocated memory conditionally and freed it in the error handling unconditionally. It turns out that this function is only called during initialization and "adapter->npars" and "adapter->eswitch" are always NULL at the start of the function. I removed those checks. Also since I was cleaning things, I changed the error handling for qlcnic_get_pci_info() and pulled everything in an indent level. Signed-off-by: Dan Carpenter --- 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/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index b9615bd..2b0bc95 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c @@ -477,44 +477,45 @@ qlcnic_init_pci_info(struct qlcnic_adapter *adapter) int i, ret = 0, err; u8 pfn; - if (!adapter->npars) - adapter->npars = kzalloc(sizeof(struct qlcnic_npar_info) * + adapter->npars = kzalloc(sizeof(struct qlcnic_npar_info) * QLCNIC_MAX_PCI_FUNC, GFP_KERNEL); if (!adapter->npars) return -ENOMEM; - if (!adapter->eswitch) - adapter->eswitch = kzalloc(sizeof(struct qlcnic_eswitch) * + adapter->eswitch = kzalloc(sizeof(struct qlcnic_eswitch) * QLCNIC_NIU_MAX_XG_PORTS, GFP_KERNEL); if (!adapter->eswitch) { err = -ENOMEM; - goto err_eswitch; + goto err_npars; } ret = qlcnic_get_pci_info(adapter, pci_info); - if (!ret) { - for (i = 0; i < QLCNIC_MAX_PCI_FUNC; i++) { - pfn = pci_info[i].id; - if (pfn > QLCNIC_MAX_PCI_FUNC) - return QL_STATUS_INVALID_PARAM; - adapter->npars[pfn].active = pci_info[i].active; - adapter->npars[pfn].type = pci_info[i].type; - adapter->npars[pfn].phy_port = pci_info[i].default_port; - adapter->npars[pfn].mac_learning = DEFAULT_MAC_LEARN; - adapter->npars[pfn].min_bw = pci_info[i].tx_min_bw; - adapter->npars[pfn].max_bw = pci_info[i].tx_max_bw; - } - - for (i = 0; i < QLCNIC_NIU_MAX_XG_PORTS; i++) - adapter->eswitch[i].flags |= QLCNIC_SWITCH_ENABLE; + if (ret) + goto err_eswitch; - return ret; + for (i = 0; i < QLCNIC_MAX_PCI_FUNC; i++) { + pfn = pci_info[i].id; + if (pfn > QLCNIC_MAX_PCI_FUNC) + return QL_STATUS_INVALID_PARAM; + adapter->npars[pfn].active = pci_info[i].active; + adapter->npars[pfn].type = pci_info[i].type; + adapter->npars[pfn].phy_port = pci_info[i].default_port; + adapter->npars[pfn].mac_learning = DEFAULT_MAC_LEARN; + adapter->npars[pfn].min_bw = pci_info[i].tx_min_bw; + adapter->npars[pfn].max_bw = pci_info[i].tx_max_bw; } + for (i = 0; i < QLCNIC_NIU_MAX_XG_PORTS; i++) + adapter->eswitch[i].flags |= QLCNIC_SWITCH_ENABLE; + + return 0; + +err_eswitch: kfree(adapter->eswitch); adapter->eswitch = NULL; -err_eswitch: +err_npars: kfree(adapter->npars); + adapter->eswitch = NULL; return ret; }