Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4535244imm; Mon, 17 Sep 2018 16:03:15 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbEz+5pnL6NTs5PLG8D/EXqxUARwFxYzSDqWmhllukIV50zxIjhGsussf6jBFQEpVDyL98+ X-Received: by 2002:a17:902:344:: with SMTP id 62-v6mr26936235pld.164.1537225395042; Mon, 17 Sep 2018 16:03:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537225395; cv=none; d=google.com; s=arc-20160816; b=gmduIuUbHdlXxgrnrlglHRY1khiN5Qpx+kXNBGXy8vXSK6IZRAhOct2sswKUT8HZdG DUSAUbEJ58UJe64gBa3S8N8CYUTIWnwokRaiWPwcsgThVmYi2SsSmRot+ILtmVk4l1Nr +Xcci3biIxTXakUkzQE6muxep0oZHr9ypSfFcUQe9obTPDPxDxNcNOZkArYngxTpzgUF BqGutJ5ogO/Im+i15bNJK1ba7ZwyjufccmUcXHoYaqQyrCEtvewyHbyDiKNX1jsC3GqL 6XSHMMsmp54d1zhxUYRI2jZcLFMl5qMq442+I12tAcNSLTR1gbN3zYmiK21X3Tgf89Xg oYEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=qU7Cyc9WM3WzvIWxrZdkh9yyK6qXrdCQobC8pIPr/ms=; b=A2Y5KvP5QONmNTFZIuhG5x12C5UCnIxXVOHQA5TP+92fAQZnEIBL80io2n869vFx8n zY2aqZTJbLtO8lvTPK5A0XAgLogsTJjSJR4YJME/jvSnGU7cXcYZCjyTLIew4cGtkypE 52MVLYm8PAm5SJzKnuCwS8hkaladobuM8Yu82xTzLat4lA0mBnsiNax+qzxj3V1DZhaI DUXdUUUPKcB8bYUZ04UOQelEKn1qGflNsrEt2XYzmsOTyQTPiWkHHb0uh8/G6K+F+9H6 wNdJg4sp6s5GPfPozarbCcJtzYlrzlSJ8w95e+6Aal2PPoqB72fpI7UFkJrMguAOVp7M 7RlQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x23-v6si16403917pgj.543.2018.09.17.16.02.59; Mon, 17 Sep 2018 16:03:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730458AbeIREcL (ORCPT + 99 others); Tue, 18 Sep 2018 00:32:11 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:48538 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727088AbeIREcK (ORCPT ); Tue, 18 Sep 2018 00:32:10 -0400 Received: from localhost (li1825-44.members.linode.com [172.104.248.44]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id B2879C03; Mon, 17 Sep 2018 23:02:41 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Anton Vasilyev , Adam Radford , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 4.14 059/126] scsi: 3ware: fix return 0 on the error path of probe Date: Tue, 18 Sep 2018 00:41:47 +0200 Message-Id: <20180917211708.302790822@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180917211703.481236999@linuxfoundation.org> References: <20180917211703.481236999@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Anton Vasilyev [ Upstream commit 4dc98c1995482262e70e83ef029135247fafe0f2 ] tw_probe() returns 0 in case of fail of tw_initialize_device_extension(), pci_resource_start() or tw_reset_sequence() and releases resources. twl_probe() returns 0 in case of fail of twl_initialize_device_extension(), pci_iomap() and twl_reset_sequence(). twa_probe() returns 0 in case of fail of tw_initialize_device_extension(), ioremap() and twa_reset_sequence(). The patch adds retval initialization for these cases. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Anton Vasilyev Acked-by: Adam Radford Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/3w-9xxx.c | 6 +++++- drivers/scsi/3w-sas.c | 3 +++ drivers/scsi/3w-xxxx.c | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c @@ -2042,6 +2042,7 @@ static int twa_probe(struct pci_dev *pde if (twa_initialize_device_extension(tw_dev)) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x25, "Failed to initialize device extension"); + retval = -ENOMEM; goto out_free_device_extension; } @@ -2064,6 +2065,7 @@ static int twa_probe(struct pci_dev *pde tw_dev->base_addr = ioremap(mem_addr, mem_len); if (!tw_dev->base_addr) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x35, "Failed to ioremap"); + retval = -ENOMEM; goto out_release_mem_region; } @@ -2071,8 +2073,10 @@ static int twa_probe(struct pci_dev *pde TW_DISABLE_INTERRUPTS(tw_dev); /* Initialize the card */ - if (twa_reset_sequence(tw_dev, 0)) + if (twa_reset_sequence(tw_dev, 0)) { + retval = -ENOMEM; goto out_iounmap; + } /* Set host specific parameters */ if ((pdev->device == PCI_DEVICE_ID_3WARE_9650SE) || --- a/drivers/scsi/3w-sas.c +++ b/drivers/scsi/3w-sas.c @@ -1597,6 +1597,7 @@ static int twl_probe(struct pci_dev *pde if (twl_initialize_device_extension(tw_dev)) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1a, "Failed to initialize device extension"); + retval = -ENOMEM; goto out_free_device_extension; } @@ -1611,6 +1612,7 @@ static int twl_probe(struct pci_dev *pde tw_dev->base_addr = pci_iomap(pdev, 1, 0); if (!tw_dev->base_addr) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1c, "Failed to ioremap"); + retval = -ENOMEM; goto out_release_mem_region; } @@ -1620,6 +1622,7 @@ static int twl_probe(struct pci_dev *pde /* Initialize the card */ if (twl_reset_sequence(tw_dev, 0)) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1d, "Controller reset failed during probe"); + retval = -ENOMEM; goto out_iounmap; } --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c @@ -2280,6 +2280,7 @@ static int tw_probe(struct pci_dev *pdev if (tw_initialize_device_extension(tw_dev)) { printk(KERN_WARNING "3w-xxxx: Failed to initialize device extension."); + retval = -ENOMEM; goto out_free_device_extension; } @@ -2294,6 +2295,7 @@ static int tw_probe(struct pci_dev *pdev tw_dev->base_addr = pci_resource_start(pdev, 0); if (!tw_dev->base_addr) { printk(KERN_WARNING "3w-xxxx: Failed to get io address."); + retval = -ENOMEM; goto out_release_mem_region; }