From patchwork Tue Aug 15 11:59:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Reinecke X-Patchwork-Id: 9901693 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7E8D160244 for ; Tue, 15 Aug 2017 11:59:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 714A628414 for ; Tue, 15 Aug 2017 11:59:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6616E28843; Tue, 15 Aug 2017 11:59:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B8B5D28833 for ; Tue, 15 Aug 2017 11:59:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752362AbdHOL7V (ORCPT ); Tue, 15 Aug 2017 07:59:21 -0400 Received: from mx2.suse.de ([195.135.220.15]:50625 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752337AbdHOL7U (ORCPT ); Tue, 15 Aug 2017 07:59:20 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id BE0DFAE9A; Tue, 15 Aug 2017 11:59:18 +0000 (UTC) From: Hannes Reinecke To: "Martin K. Petersen" Cc: Christoph Hellwig , James Bottomley , Sumit Saxena , Kashyap Desai , megaraidlinux.pdl@broadcom.com, linux-scsi@vger.kernel.org, Hannes Reinecke , Hannes Reinecke Subject: [PATCH] megaraid_sas: boot hangs while LD is offline Date: Tue, 15 Aug 2017 13:59:15 +0200 Message-Id: <1502798355-59330-1-git-send-email-hare@suse.de> X-Mailer: git-send-email 1.8.5.6 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Offline Logical drives (LDs) should not allowed to be visible to the OS, as the OS will hang trying to send commands to it. This patch skips offline LDs like it already does for non-system physical drives (PDs). Signed-off-by: Hannes Reinecke --- drivers/scsi/megaraid/megaraid_sas_base.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 5202c2f..39b08fc 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -1897,14 +1897,19 @@ static void megasas_set_static_target_properties(struct scsi_device *sdev, static int megasas_slave_configure(struct scsi_device *sdev) { - u16 pd_index = 0; + u16 pd_index = 0, ld_index; struct megasas_instance *instance; int ret_target_prop = DCMD_FAILED; bool is_target_prop = false; instance = megasas_lookup_instance(sdev->host->host_no); if (instance->pd_list_not_supported) { - if (!MEGASAS_IS_LOGICAL(sdev) && sdev->type == TYPE_DISK) { + if (MEGASAS_IS_LOGICAL(sdev)) { + ld_index = ((sdev->channel - MEGASAS_MAX_PD_CHANNELS) * + MEGASAS_MAX_DEV_PER_CHANNEL) + sdev->id; + if (instance->ld_ids[ld_index] == 0xff) + return -ENXIO; + } else if (sdev->type == TYPE_DISK) { pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) + sdev->id; if (instance->pd_list[pd_index].driveState !=