From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62FD7C00454 for ; Wed, 11 Dec 2019 15:47:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2CE172073D for ; Wed, 11 Dec 2019 15:47:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576079245; bh=fACRZaa/+j6olVsYvjPHFq5EnO3bUVwKGg4PqMminCo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=hN5izaP4xuDhcZI7iwetGbFW2x/2ojXuRSZnSZUENs66//tdKAJ1mTJsVXPhhTmak AnDEDYk7UnMun4HM+/0ynMuDpXYDREl7kEnQX9LcAVqWXjlK9Grk8EGukaZoR7g+6y kAlanSjI9zJNy5Lc0p/TZdw6ZtLpNuBJFovZTFs4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387764AbfLKPrY (ORCPT ); Wed, 11 Dec 2019 10:47:24 -0500 Received: from mail.kernel.org ([198.145.29.99]:60190 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732689AbfLKP0r (ORCPT ); Wed, 11 Dec 2019 10:26:47 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E8B362173E; Wed, 11 Dec 2019 15:26:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576078006; bh=fACRZaa/+j6olVsYvjPHFq5EnO3bUVwKGg4PqMminCo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SaY5Nh7ZS0lS1WKbHR6I23sGrjUVBICx07qVAfT63l+G18Y249X6IqQZrjWBrc1RD ebvfbAEL/74UtX6WWidEZoV2mHUBoWXRyWwe0DjDmOoi1EvsOEltFdoopyXCzU+Lnd IsUykZDaNmLw2xSA1nFNy5iRHmYIqrrlt9H4qGQg= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sreekanth Reddy , "Martin K . Petersen" , Sasha Levin , MPT-FusionLinux.pdl@avagotech.com, linux-scsi@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 02/79] scsi: mpt3sas: Fix clear pending bit in ioctl status Date: Wed, 11 Dec 2019 10:25:26 -0500 Message-Id: <20191211152643.23056-2-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191211152643.23056-1-sashal@kernel.org> References: <20191211152643.23056-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sreekanth Reddy [ Upstream commit 782b281883caf70289ba6a186af29441a117d23e ] When user issues diag register command from application with required size, and if driver unable to allocate the memory, then it will fail the register command. While failing the register command, driver is not currently clearing MPT3_CMD_PENDING bit in ctl_cmds.status variable which was set before trying to allocate the memory. As this bit is set, subsequent register command will be failed with BUSY status even when user wants to register the trace buffer will less memory. Clear MPT3_CMD_PENDING bit in ctl_cmds.status before returning the diag register command with no memory status. Link: https://lore.kernel.org/r/1568379890-18347-4-git-send-email-sreekanth.reddy@broadcom.com Signed-off-by: Sreekanth Reddy Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c index 5e8c059ce2c92..07345016fd9c7 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c +++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c @@ -1597,7 +1597,8 @@ _ctl_diag_register_2(struct MPT3SAS_ADAPTER *ioc, " for diag buffers, requested size(%d)\n", ioc->name, __func__, request_data_sz); mpt3sas_base_free_smid(ioc, smid); - return -ENOMEM; + rc = -ENOMEM; + goto out; } ioc->diag_buffer[buffer_type] = request_data; ioc->diag_buffer_sz[buffer_type] = request_data_sz; -- 2.20.1