Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp3510731pxb; Tue, 19 Apr 2022 04:21:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyNIkhmX+9AGL3VkcB4ZM8r6rT90vTu80i4xPx6kjoLmstVeQ0xZ4YW2NkUcLu2haV88txV X-Received: by 2002:a17:90a:d3d1:b0:1bb:fdc5:182 with SMTP id d17-20020a17090ad3d100b001bbfdc50182mr23638380pjw.206.1650367309069; Tue, 19 Apr 2022 04:21:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650367309; cv=none; d=google.com; s=arc-20160816; b=x/8tuqJ7aCwdsr0ftvGA3XVJdNiPEafQXgzfPNX3OcpPIyAhBrYKloP5b0v199W4Px eoxFLekzd/H5VgWJ2XI8cEMBcrmi2e1spbQLdqeairIqaQ3ZKv3doLroBbNN3WPWXMC2 nqyjn2dAS6XDiOxgQkJnn3liDITwzg6fQGTxvmyk7+tme/BkBLsLqXMqghI7GtTRA3+K sbiwl5jNsxCWow8c5rYpRDBaMQdqW8/Ox9szXz9FEkuLlribLzIfcHTBfQ6YFiP2dbhA Wqx/yeXLmhg2OvtoOXsoCQKApXt7dJoS5jS9BDQdZwjctqfcw0OAe8KdNKl1H1/aDVPj ik0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=D3bK01oZaQXoGGPZ5ZsnkwMV22Ffp2sXvOAE66XxrkM=; b=dt1nG4TvjXOxjV2FH21HBEcux7huwI6Lvit9OaoDoOpvdyw6eG+3VsDzc24xW6YB/H aXxRGn+qJyiOyr7NZk46FG4gmGjMrJxFBIHOCfpgZRmnt9maLUFrPJReKgL2WmE5xJiZ +9ay7vEXAwdF44uyOYKVVp/+rBGdZuJwkZCE1HirDR4eTSSNDOrdS0Xuhq6n9/hrYIfx 6RlNDx3g5HKXj7zAabGFMrid1HDmIa+OcUqqkD2FNSbD9JsUE5Q2Kb2MUuJrCyzRyHoU H6KykWsp1lYGZQ9wKsKz77FBLYiZ1Bt0M12mL474qSak7F3buMrRSWT/Z+oqoyT+xXFR QA2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="BznI/IyG"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o16-20020a056a0015d000b0050a7c6d6cbfsi4564270pfu.77.2022.04.19.04.21.34; Tue, 19 Apr 2022 04:21:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="BznI/IyG"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239816AbiDRNL5 (ORCPT + 99 others); Mon, 18 Apr 2022 09:11:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242066AbiDRM7f (ORCPT ); Mon, 18 Apr 2022 08:59:35 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67AB61D0DB; Mon, 18 Apr 2022 05:39:54 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A3FCEB80EC0; Mon, 18 Apr 2022 12:39:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0795C385A7; Mon, 18 Apr 2022 12:39:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1650285592; bh=Uu7VIrb7ME9y2Ns26nkZF0NerK26h//hTrPsKXDKuPU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BznI/IyGTKAxLRAIheAPmhzPpXpKYbz/mfpcajaTT1FQbbTYLDS0/PkUCJM5Ic+LW AWkBrk2rPLJCm46kJMQNfQfJCazFoQzoT5kMM0NOdqlFYU7KO8cQSdcto/d/BexNnG HAjDFthRQHJzWupE9bWV8tbNMAI9XBaH4eHi+4zA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chandrakanth patil , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.10 067/105] scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan Date: Mon, 18 Apr 2022 14:13:09 +0200 Message-Id: <20220418121148.391815880@linuxfoundation.org> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220418121145.140991388@linuxfoundation.org> References: <20220418121145.140991388@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chandrakanth patil [ 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 Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- 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