linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Chandrakanth patil <chandrakanth.patil@broadcom.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	kashyap.desai@broadcom.com, sumit.saxena@broadcom.com,
	shivasharan.srikanteshwara@broadcom.com, jejb@linux.ibm.com,
	megaraidlinux.pdl@broadcom.com, linux-scsi@vger.kernel.org
Subject: [PATCH AUTOSEL 5.10 27/30] scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
Date: Mon, 11 Apr 2022 20:49:01 -0400	[thread overview]
Message-ID: <20220412004906.350678-27-sashal@kernel.org> (raw)
In-Reply-To: <20220412004906.350678-1-sashal@kernel.org>

From: Chandrakanth patil <chandrakanth.patil@broadcom.com>

[ Upstream commit 56495f295d8e021f77d065b890fc0100e3f9f6d8 ]

The megaraid_sas driver supports single LUN for RAID devices. That is LUN
0. All other LUNs are unsupported. When a device scan on a logical target
with invalid LUN number is invoked through sysfs, that target ends up
getting removed.

Add LUN ID validation in the slave destroy function to avoid the target
deletion.

Link: https://lore.kernel.org/r/20220324094711.48833-1-chandrakanth.patil@broadcom.com
Signed-off-by: Chandrakanth patil <chandrakanth.patil@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/megaraid/megaraid_sas.h      | 3 +++
 drivers/scsi/megaraid/megaraid_sas_base.c | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index 6b8ec57e8bdf..c088a848776e 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -2554,6 +2554,9 @@ struct megasas_instance_template {
 #define MEGASAS_IS_LOGICAL(sdev)					\
 	((sdev->channel < MEGASAS_MAX_PD_CHANNELS) ? 0 : 1)
 
+#define MEGASAS_IS_LUN_VALID(sdev)					\
+	(((sdev)->lun == 0) ? 1 : 0)
+
 #define MEGASAS_DEV_INDEX(scp)						\
 	(((scp->device->channel % 2) * MEGASAS_MAX_DEV_PER_CHANNEL) +	\
 	scp->device->id)
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 1a70cc995c28..84a2e9292fd0 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -2111,6 +2111,9 @@ static int megasas_slave_alloc(struct scsi_device *sdev)
 			goto scan_target;
 		}
 		return -ENXIO;
+	} else if (!MEGASAS_IS_LUN_VALID(sdev)) {
+		sdev_printk(KERN_INFO, sdev, "%s: invalid LUN\n", __func__);
+		return -ENXIO;
 	}
 
 scan_target:
@@ -2141,6 +2144,10 @@ static void megasas_slave_destroy(struct scsi_device *sdev)
 	instance = megasas_lookup_instance(sdev->host->host_no);
 
 	if (MEGASAS_IS_LOGICAL(sdev)) {
+		if (!MEGASAS_IS_LUN_VALID(sdev)) {
+			sdev_printk(KERN_INFO, sdev, "%s: invalid LUN\n", __func__);
+			return;
+		}
 		ld_tgt_id = MEGASAS_TARGET_ID(sdev);
 		instance->ld_tgtid_status[ld_tgt_id] = LD_TARGET_ID_DELETED;
 		if (megasas_dbg_lvl & LD_PD_DEBUG)
-- 
2.35.1


  parent reply	other threads:[~2022-04-12  1:02 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-12  0:48 [PATCH AUTOSEL 5.10 01/30] drm/amd: Add USBC connector ID Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 02/30] btrfs: fix fallocate to use file_modified to update permissions consistently Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 03/30] btrfs: do not warn for free space inode in cow_file_range Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 04/30] drm/amd/display: fix audio format not updated after edid updated Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 05/30] drm/amd/display: FEC check in timing validation Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 06/30] drm/amd/display: Update VTEM Infopacket definition Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 07/30] drm/amdkfd: Fix Incorrect VMIDs passed to HWS Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 08/30] drm/amdgpu/vcn: improve vcn dpg stop procedure Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 09/30] drm/amdkfd: Check for potential null return of kmalloc_array() Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 10/30] Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 11/30] scsi: target: tcmu: Fix possible page UAF Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 12/30] scsi: lpfc: Fix queue failures when recovering from PCI parity error Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 13/30] scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024 Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 14/30] net: micrel: fix KS8851_MLL Kconfig Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 15/30] ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 16/30] gpu: ipu-v3: Fix dev_dbg frequency output Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 17/30] regulator: wm8994: Add an off-on delay for WM8994 variant Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 18/30] arm64: alternatives: mark patch_alternative() as `noinstr` Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 19/30] tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 20/30] net: axienet: setup mdio unconditionally Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 21/30] net: usb: aqc111: Fix out-of-bounds accesses in RX fixup Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 22/30] myri10ge: fix an incorrect free for skb in myri10ge_sw_tso Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 23/30] drm/amd/display: Revert FEC check in validation Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 24/30] drm/amd/display: Fix allocate_mst_payload assert on resume Sasha Levin
2022-04-12  0:48 ` [PATCH AUTOSEL 5.10 25/30] powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit Sasha Levin
2022-04-12  0:49 ` [PATCH AUTOSEL 5.10 26/30] scsi: mvsas: Add PCI ID of RocketRaid 2640 Sasha Levin
2022-04-12  0:49 ` Sasha Levin [this message]
2022-04-12  0:49 ` [PATCH AUTOSEL 5.10 28/30] drivers: net: slip: fix NPD bug in sl_tx_timeout() Sasha Levin
2022-04-12  0:49 ` [PATCH AUTOSEL 5.10 29/30] arm64: Add part number for Arm Cortex-A78AE Sasha Levin
2022-04-12  0:49 ` [PATCH AUTOSEL 5.10 30/30] perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220412004906.350678-27-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=chandrakanth.patil@broadcom.com \
    --cc=jejb@linux.ibm.com \
    --cc=kashyap.desai@broadcom.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=megaraidlinux.pdl@broadcom.com \
    --cc=shivasharan.srikanteshwara@broadcom.com \
    --cc=stable@vger.kernel.org \
    --cc=sumit.saxena@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).