From patchwork Fri Oct 12 10:57:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638481 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 541B5933 for ; Fri, 12 Oct 2018 10:58:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4329A2BAFC for ; Fri, 12 Oct 2018 10:58:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3695C2BB2F; Fri, 12 Oct 2018 10:58:00 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 2A6752BB4D for ; Fri, 12 Oct 2018 10:57:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727945AbeJLS3t (ORCPT ); Fri, 12 Oct 2018 14:29:49 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:45868 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLS3t (ORCPT ); Fri, 12 Oct 2018 14:29:49 -0400 Received: by mail-ed1-f68.google.com with SMTP id v18-v6so11072909edq.12 for ; Fri, 12 Oct 2018 03:57:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5+q6UcWv2KjF8DRds2vEqn+ekb50wqq8QDOvRREi0qc=; b=T4J/UPQ4mOwTZ/7hAy0ffP/HvTDYQ2P1+eu779vH/9RO4vvXEPP31nhxoTOucJUvyx n5VL87DRb8JiM42OxNF3qn9twAAycQX+0KwTxgqvhtZpVeseBlLfpQzjm6PwOpUWfKrn iHcK1Bt5apYPU9oINaMIPsZQ6OTkC5F/EzuPo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=5+q6UcWv2KjF8DRds2vEqn+ekb50wqq8QDOvRREi0qc=; b=HEw1bFyQyzcw1FHYEV/1XX4cbZXMqIKK30Noi3iYzeav6jUX9pP2gfogd387Zi4b4U 5YcQh+FGjUEasvgyX9eic7BkCrc+MggyzjQKUYTACUR/LsIhoVrf0cuOr3sCHXJzpn4c jGSX8EX4asSQb/Aj3THolnh/YYiBljECrcgcLB8PBaDNH1EjfYws6jEt6blcC7mhvJSg B/u5OqWxUc8UELN+BNuAw+yb2QRETDKl2f0W1J9xP1y2p/CtWGxOcEcMTzEdAWsVnaiY yrXTeB1JdNnuTBbOzOQTRyY9gKsV2+d36/5wRGSY9mYF5ZThwmHEwFKKRdcdtEUDRcuY LZ1w== X-Gm-Message-State: ABuFfoj5NxhzdtF9+sJppddWG1/4PvZlJLnJKwj/XymulPCrxNXsUiqo uB65Pi0wr/sQoT9xaG0rqpZG3qfaLQaFwQ== X-Google-Smtp-Source: ACcGV63IdFtip5kNNrE9cAxE7q3QjOT7vVyKu90dc6BQcZ1tRIfF+wAee0AmmqUZt6hYnEJ8tbttOw== X-Received: by 2002:a50:998a:: with SMTP id m10-v6mr8418342edb.7.1539341874509; Fri, 12 Oct 2018 03:57:54 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.57.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:57:53 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 01/19] megaraid_sas: Add watchdog thread to detect Firmware fault Date: Fri, 12 Oct 2018 03:57:15 -0700 Message-Id: <1539341853-26814-2-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Issue - Currently driver checks for Firmware state change from ISR context, and only when there are interrupts tied with no I/O completions. We have seen multiple cases where doorbell interrupts sent by firmware, to indicate FW state change are not processed by driver and it takes long time for driver to trigger OCR. And if there are no IOs running, since we only check the FW state as part of ISR code, fault goes undetected by driver and OCR will not be triggered. Fix - This patch introduces a separate workqueue that runs every one second to detect Firmware FAULT state and trigger reset immediately. As an additional gain, removing PCI reads from ISR to check FW state results in improved performance as well. Signed-off-by: Sumit Saxena Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas.h | 12 +- drivers/scsi/megaraid/megaraid_sas_base.c | 34 +++++- drivers/scsi/megaraid/megaraid_sas_fusion.c | 175 ++++++++++++++++++++-------- 3 files changed, 167 insertions(+), 54 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 67d356d84717..8c0f74a2740a 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1544,6 +1544,10 @@ enum FW_BOOT_CONTEXT { #define MR_CAN_HANDLE_64_BIT_DMA_OFFSET (1 << 25) +#define MEGASAS_WATCHDOG_THREAD_INTERVAL 1000 +#define MEGASAS_WAIT_FOR_NEXT_DMA_MSECS 20 +#define MEGASAS_WATCHDOG_WAIT_COUNT 50 + enum MR_ADAPTER_TYPE { MFI_SERIES = 1, THUNDERBOLT_SERIES = 2, @@ -2250,7 +2254,9 @@ struct megasas_instance { struct megasas_instance_template *instancet; struct tasklet_struct isr_tasklet; struct work_struct work_init; - struct work_struct crash_init; + struct delayed_work fw_fault_work; + struct workqueue_struct *fw_fault_work_q; + char fault_handler_work_q_name[48]; u8 flag; u8 unload; @@ -2539,7 +2545,6 @@ int megasas_get_target_prop(struct megasas_instance *instance, int megasas_set_crash_dump_params(struct megasas_instance *instance, u8 crash_buf_state); void megasas_free_host_crash_buffer(struct megasas_instance *instance); -void megasas_fusion_crash_dump_wq(struct work_struct *work); void megasas_return_cmd_fusion(struct megasas_instance *instance, struct megasas_cmd_fusion *cmd); @@ -2560,6 +2565,9 @@ int megasas_reset_target_fusion(struct scsi_cmnd *scmd); u32 mega_mod64(u64 dividend, u32 divisor); int megasas_alloc_fusion_context(struct megasas_instance *instance); void megasas_free_fusion_context(struct megasas_instance *instance); +int megasas_fusion_start_watchdog(struct megasas_instance *instance); +void megasas_fusion_stop_watchdog(struct megasas_instance *instance); + void megasas_set_dma_settings(struct megasas_instance *instance, struct megasas_dcmd_frame *dcmd, dma_addr_t dma_addr, u32 dma_len); diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 9aa9590c5373..3d7fa3c4cc68 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5583,8 +5583,20 @@ static int megasas_init_fw(struct megasas_instance *instance) instance->skip_heartbeat_timer_del = 1; } + /* + * Create and start watchdog thread which will monitor + * controller state every 1 sec and trigger OCR when + * it enters fault state + */ + if (instance->adapter_type != MFI_SERIES) + if (megasas_fusion_start_watchdog(instance) != SUCCESS) + goto fail_start_watchdog; + return 0; +fail_start_watchdog: + if (instance->requestorId && !instance->skip_heartbeat_timer_del) + del_timer_sync(&instance->sriov_heartbeat_timer); fail_get_ld_pd_list: instance->instancet->disable_intr(instance); fail_init_adapter: @@ -6437,12 +6449,10 @@ static inline void megasas_init_ctrl_params(struct megasas_instance *instance) instance->disableOnlineCtrlReset = 1; instance->UnevenSpanSupport = 0; - if (instance->adapter_type != MFI_SERIES) { + if (instance->adapter_type != MFI_SERIES) INIT_WORK(&instance->work_init, megasas_fusion_ocr_wq); - INIT_WORK(&instance->crash_init, megasas_fusion_crash_dump_wq); - } else { + else INIT_WORK(&instance->work_init, process_fw_state_change_wq); - } } /** @@ -6708,6 +6718,10 @@ megasas_suspend(struct pci_dev *pdev, pm_message_t state) if (instance->requestorId && !instance->skip_heartbeat_timer_del) del_timer_sync(&instance->sriov_heartbeat_timer); + /* Stop the FW fault detection watchdog */ + if (instance->adapter_type != MFI_SERIES) + megasas_fusion_stop_watchdog(instance); + megasas_flush_cache(instance); megasas_shutdown_controller(instance, MR_DCMD_HIBERNATE_SHUTDOWN); @@ -6843,8 +6857,16 @@ megasas_resume(struct pci_dev *pdev) if (megasas_start_aen(instance)) dev_err(&instance->pdev->dev, "Start AEN failed\n"); + /* Re-launch FW fault watchdog */ + if (instance->adapter_type != MFI_SERIES) + if (megasas_fusion_start_watchdog(instance) != SUCCESS) + goto fail_start_watchdog; + return 0; +fail_start_watchdog: + if (instance->requestorId && !instance->skip_heartbeat_timer_del) + del_timer_sync(&instance->sriov_heartbeat_timer); fail_init_mfi: megasas_free_ctrl_dma_buffers(instance); megasas_free_ctrl_mem(instance); @@ -6912,6 +6934,10 @@ static void megasas_detach_one(struct pci_dev *pdev) if (instance->requestorId && !instance->skip_heartbeat_timer_del) del_timer_sync(&instance->sriov_heartbeat_timer); + /* Stop the FW fault detection watchdog */ + if (instance->adapter_type != MFI_SERIES) + megasas_fusion_stop_watchdog(instance); + if (instance->fw_crash_state != UNAVAILABLE) megasas_free_host_crash_buffer(instance); scsi_remove_host(instance->host); diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index c7f95bace353..de16797ba093 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -95,6 +96,7 @@ static void megasas_free_rdpq_fusion(struct megasas_instance *instance); static void megasas_free_reply_fusion(struct megasas_instance *instance); static inline void megasas_configure_queue_sizes(struct megasas_instance *instance); +static void megasas_fusion_crash_dump(struct megasas_instance *instance); /** * megasas_check_same_4gb_region - check if allocation @@ -1759,6 +1761,90 @@ megasas_init_adapter_fusion(struct megasas_instance *instance) return 1; } +/** + * megasas_fault_detect_work - Worker function of + * FW fault handling workqueue. + */ +static void +megasas_fault_detect_work(struct work_struct *work) +{ + struct megasas_instance *instance = + container_of(work, struct megasas_instance, + fw_fault_work.work); + u32 fw_state, dma_state, status; + + /* Check the fw state */ + fw_state = instance->instancet->read_fw_status_reg(instance->reg_set) & + MFI_STATE_MASK; + + if (fw_state == MFI_STATE_FAULT) { + dma_state = instance->instancet->read_fw_status_reg( + instance->reg_set) & MFI_STATE_DMADONE; + /* Start collecting crash, if DMA bit is done */ + if (instance->crash_dump_drv_support && + instance->crash_dump_app_support && dma_state) { + megasas_fusion_crash_dump(instance); + } else { + if (instance->unload == 0) { + status = megasas_reset_fusion(instance->host, 0); + if (status != SUCCESS) { + dev_err(&instance->pdev->dev, + "Failed from %s %d, do not re-arm timer\n", + __func__, __LINE__); + return; + } + } + } + } + + if (instance->fw_fault_work_q) + queue_delayed_work(instance->fw_fault_work_q, + &instance->fw_fault_work, + msecs_to_jiffies(MEGASAS_WATCHDOG_THREAD_INTERVAL)); +} + +int +megasas_fusion_start_watchdog(struct megasas_instance *instance) +{ + /* Check if the Fault WQ is already started */ + if (instance->fw_fault_work_q) + return SUCCESS; + + INIT_DELAYED_WORK(&instance->fw_fault_work, megasas_fault_detect_work); + + snprintf(instance->fault_handler_work_q_name, + sizeof(instance->fault_handler_work_q_name), + "poll_megasas%d_status", instance->host->host_no); + + instance->fw_fault_work_q = + create_singlethread_workqueue(instance->fault_handler_work_q_name); + if (!instance->fw_fault_work_q) { + dev_err(&instance->pdev->dev, "Failed from %s %d\n", + __func__, __LINE__); + return FAILED; + } + + queue_delayed_work(instance->fw_fault_work_q, + &instance->fw_fault_work, + msecs_to_jiffies(MEGASAS_WATCHDOG_THREAD_INTERVAL)); + + return SUCCESS; +} + +void +megasas_fusion_stop_watchdog(struct megasas_instance *instance) +{ + struct workqueue_struct *wq; + + if (instance->fw_fault_work_q) { + wq = instance->fw_fault_work_q; + instance->fw_fault_work_q = NULL; + if (!cancel_delayed_work_sync(&instance->fw_fault_work)) + flush_workqueue(wq); + destroy_workqueue(wq); + } +} + /** * map_cmd_status - Maps FW cmd status to OS cmd status * @cmd : Pointer to cmd @@ -3525,7 +3611,7 @@ irqreturn_t megasas_isr_fusion(int irq, void *devp) { struct megasas_irq_context *irq_context = devp; struct megasas_instance *instance = irq_context->instance; - u32 mfiStatus, fw_state, dma_state; + u32 mfiStatus; if (instance->mask_interrupts) return IRQ_NONE; @@ -3542,31 +3628,7 @@ irqreturn_t megasas_isr_fusion(int irq, void *devp) return IRQ_HANDLED; } - if (!complete_cmd_fusion(instance, irq_context->MSIxIndex)) { - instance->instancet->clear_intr(instance->reg_set); - /* If we didn't complete any commands, check for FW fault */ - fw_state = instance->instancet->read_fw_status_reg( - instance->reg_set) & MFI_STATE_MASK; - dma_state = instance->instancet->read_fw_status_reg - (instance->reg_set) & MFI_STATE_DMADONE; - if (instance->crash_dump_drv_support && - instance->crash_dump_app_support) { - /* Start collecting crash, if DMA bit is done */ - if ((fw_state == MFI_STATE_FAULT) && dma_state) - schedule_work(&instance->crash_init); - else if (fw_state == MFI_STATE_FAULT) { - if (instance->unload == 0) - schedule_work(&instance->work_init); - } - } else if (fw_state == MFI_STATE_FAULT) { - dev_warn(&instance->pdev->dev, "Iop2SysDoorbellInt" - "for scsi%d\n", instance->host->host_no); - if (instance->unload == 0) - schedule_work(&instance->work_init); - } - } - - return IRQ_HANDLED; + return complete_cmd_fusion(instance, irq_context->MSIxIndex); } /** @@ -4752,13 +4814,12 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int reason) return retval; } -/* Fusion Crash dump collection work queue */ -void megasas_fusion_crash_dump_wq(struct work_struct *work) +/* Fusion Crash dump collection */ +void megasas_fusion_crash_dump(struct megasas_instance *instance) { - struct megasas_instance *instance = - container_of(work, struct megasas_instance, crash_init); u32 status_reg; u8 partial_copy = 0; + int wait = 0; status_reg = instance->instancet->read_fw_status_reg(instance->reg_set); @@ -4786,21 +4847,42 @@ void megasas_fusion_crash_dump_wq(struct work_struct *work) "allocated: %d\n", instance->drv_buf_alloc); } - /* - * Driver has allocated max buffers, which can be allocated - * and FW has more crash dump data, then driver will - * ignore the data. - */ - if (instance->drv_buf_index >= (instance->drv_buf_alloc)) { - dev_info(&instance->pdev->dev, "Driver is done copying " - "the buffer: %d\n", instance->drv_buf_alloc); - status_reg |= MFI_STATE_CRASH_DUMP_DONE; - partial_copy = 1; - } else { - memcpy(instance->crash_buf[instance->drv_buf_index], - instance->crash_dump_buf, CRASH_DMA_BUF_SIZE); - instance->drv_buf_index++; - status_reg &= ~MFI_STATE_DMADONE; + while (!(status_reg & MFI_STATE_CRASH_DUMP_DONE) && + (wait < MEGASAS_WATCHDOG_WAIT_COUNT)) { + if (!(status_reg & MFI_STATE_DMADONE)) { + /* + * Next crash dump buffer is not yet DMA'd by FW + * Check after 10ms. Wait for 1 second for FW to + * post the next buffer. If not bail out. + */ + wait++; + msleep(MEGASAS_WAIT_FOR_NEXT_DMA_MSECS); + status_reg = instance->instancet->read_fw_status_reg( + instance->reg_set); + continue; + } + + wait = 0; + if (instance->drv_buf_index >= instance->drv_buf_alloc) { + dev_info(&instance->pdev->dev, + "Driver is done copying the buffer: %d\n", + instance->drv_buf_alloc); + status_reg |= MFI_STATE_CRASH_DUMP_DONE; + partial_copy = 1; + break; + } else { + memcpy(instance->crash_buf[instance->drv_buf_index], + instance->crash_dump_buf, CRASH_DMA_BUF_SIZE); + instance->drv_buf_index++; + status_reg &= ~MFI_STATE_DMADONE; + } + + writel(status_reg, &instance->reg_set->outbound_scratch_pad); + readl(&instance->reg_set->outbound_scratch_pad); + + msleep(MEGASAS_WAIT_FOR_NEXT_DMA_MSECS); + status_reg = instance->instancet->read_fw_status_reg( + instance->reg_set); } if (status_reg & MFI_STATE_CRASH_DUMP_DONE) { @@ -4813,9 +4895,6 @@ void megasas_fusion_crash_dump_wq(struct work_struct *work) readl(&instance->reg_set->outbound_scratch_pad); if (!partial_copy) megasas_reset_fusion(instance->host, 0); - } else { - writel(status_reg, &instance->reg_set->outbound_scratch_pad); - readl(&instance->reg_set->outbound_scratch_pad); } } From patchwork Fri Oct 12 10:57:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638483 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7772B933 for ; Fri, 12 Oct 2018 10:58:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 62A602BAFC for ; Fri, 12 Oct 2018 10:58:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 56C162BB4D; Fri, 12 Oct 2018 10:58:03 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 6B0F52BAFC for ; Fri, 12 Oct 2018 10:58:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728009AbeJLS3x (ORCPT ); Fri, 12 Oct 2018 14:29:53 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:36239 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLS3x (ORCPT ); Fri, 12 Oct 2018 14:29:53 -0400 Received: by mail-ed1-f68.google.com with SMTP id c26-v6so11107731edt.3 for ; Fri, 12 Oct 2018 03:57:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TPKU6c2f/giNGZP9VkGDFCjn8Fo1tbuvEXx9jKpLzEU=; b=HiCR3+FLQozbEbtAC1LoaaDbIKyuhLKW8aajulvJWnZr90cWPUfD3hY3cxi57yttLa ZX2gFruY9EVcVPzAoPWllCArvqxxD2o+BB6+2ZIe4s7gBRYbBmFytEudF9EZROz0RCOm M+NBtaUSkynMgs4UoPdZB43TDHdrlwEgXkaYs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TPKU6c2f/giNGZP9VkGDFCjn8Fo1tbuvEXx9jKpLzEU=; b=K29QPocLDFAFF/X1AFLNtn910i/xBxdkA5isEiT6e7alWtEacnMuWZeATjritH0JBr RUrdGNr9B3EXVo6kbBkzppZGyFmjvpflJZ9fTOZoOmIsreKcoZbfOHTzfXULlVGaY/4P U0ILjgIkMNbKKsbhCZ7yqYZMH+UMk2IVqbLxpNrqfQc8QnkW2iD+eMGUU+tCMH+XP06t Fi94kUbuvfYcSv2KEpoQHlZVur38MHq7PnGVsLLzXts7kpjI2Bm2IXfLwOfih7oUt07m sKjnx7Sa9Nb8769zjOv1hPH0/sduH4k6ARGLwOX2Jsb2jDMeXYBzJPInhMGkzY678fqU WatQ== X-Gm-Message-State: ABuFfoirwItvEYA90KvlEfnILSk/+hgLmRKHIenVNQQP4mw3RmRwtFF2 kx7TzLjRk7ZWHRnOqSHxVfMM9nm2JYAdZw== X-Google-Smtp-Source: ACcGV638898MK/6WW+BGX1l6nfYL4viwPVD+rfVyIsJ6A2BimZz3HpeB/SCqj96R9jLElfjndhQKFg== X-Received: by 2002:a50:e1c8:: with SMTP id m8-v6mr8173968edl.195.1539341878272; Fri, 12 Oct 2018 03:57:58 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.57.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:57:57 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 02/19] megaraid_sas: Add support for FW snap dump Date: Fri, 12 Oct 2018 03:57:16 -0700 Message-Id: <1539341853-26814-3-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Latest firmware adds a mechanism to save firmware logs just before controller reset on pre-allocated internal controller DRAM. This feature is called snapdump which will help debugging firmware issues. This feature requires extra time and firmware reports these values through new driver interface. Before initiating an OCR, driver needs to inform FW to save a snapdump and then wait for a specified time for the snapdump to complete. Signed-off-by: Sumit Saxena Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas.h | 25 +++++- drivers/scsi/megaraid/megaraid_sas_base.c | 118 +++++++++++++++++++++++++++- drivers/scsi/megaraid/megaraid_sas_fusion.c | 66 ++++++++++++++-- drivers/scsi/megaraid/megaraid_sas_fusion.h | 12 +++ 4 files changed, 208 insertions(+), 13 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 8c0f74a2740a..a2df9827e932 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -142,6 +142,7 @@ * CLR_HANDSHAKE: FW is waiting for HANDSHAKE from BIOS or Driver * HOTPLUG : Resume from Hotplug * MFI_STOP_ADP : Send signal to FW to stop processing + * MFI_ADP_TRIGGER_SNAP_DUMP: Inform firmware to initiate snap dump */ #define WRITE_SEQUENCE_OFFSET (0x0000000FC) /* I20 */ #define HOST_DIAGNOSTIC_OFFSET (0x000000F8) /* I20 */ @@ -158,6 +159,7 @@ #define MFI_RESET_FLAGS MFI_INIT_READY| \ MFI_INIT_MFIMODE| \ MFI_INIT_ABORT +#define MFI_ADP_TRIGGER_SNAP_DUMP 0x00000100 #define MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE (0x01) /* @@ -860,8 +862,22 @@ struct megasas_ctrl_prop { u32 reserved:18; #endif } OnOffProperties; - u8 autoSnapVDSpace; - u8 viewSpace; + + union { + u8 autoSnapVDSpace; + u8 viewSpace; + struct { +#if defined(__BIG_ENDIAN_BITFIELD) + u16 reserved2:11; + u16 enable_snap_dump:1; + u16 reserved1:4; +#else + u16 reserved1:4; + u16 enable_snap_dump:1; + u16 reserved2:11; +#endif + } on_off_properties2; + }; __le16 spinDownTime; u8 reserved[24]; } __packed; @@ -2185,6 +2201,9 @@ struct megasas_instance { struct MR_LD_TARGETID_LIST *ld_targetid_list_buf; dma_addr_t ld_targetid_list_buf_h; + struct MR_SNAPDUMP_PROPERTIES *snapdump_prop; + dma_addr_t snapdump_prop_h; + void *crash_buf[MAX_CRASH_DUMP_SIZE]; unsigned int fw_crash_buffer_size; unsigned int fw_crash_state; @@ -2316,6 +2335,7 @@ struct megasas_instance { bool support_nvme_passthru; u8 task_abort_tmo; u8 max_reset_tmo; + u8 snapdump_wait_time; }; struct MR_LD_VF_MAP { u32 size; @@ -2541,6 +2561,7 @@ void megasas_set_dynamic_target_properties(struct scsi_device *sdev, bool is_target_prop); int megasas_get_target_prop(struct megasas_instance *instance, struct scsi_device *sdev); +void megasas_get_snapdump_properties(struct megasas_instance *instance); int megasas_set_crash_dump_params(struct megasas_instance *instance, u8 crash_buf_state); diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 3d7fa3c4cc68..1a9abeed4d97 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -4661,6 +4661,87 @@ static void megasas_update_ext_vd_details(struct megasas_instance *instance) fusion->drv_map_sz = sizeof(struct MR_DRV_RAID_MAP_ALL); } +/* + * dcmd.opcode - MR_DCMD_CTRL_SNAPDUMP_GET_PROPERTIES + * dcmd.hdr.length - number of bytes to read + * dcmd.sge - Ptr to MR_SNAPDUMP_PROPERTIES + * Desc: Fill in snapdump properties + * Status: MFI_STAT_OK- Command successful + */ +void megasas_get_snapdump_properties(struct megasas_instance *instance) +{ + int ret = 0; + struct megasas_cmd *cmd; + struct megasas_dcmd_frame *dcmd; + struct MR_SNAPDUMP_PROPERTIES *ci; + dma_addr_t ci_h = 0; + + ci = instance->snapdump_prop; + ci_h = instance->snapdump_prop_h; + + if (!ci) + return; + + cmd = megasas_get_cmd(instance); + + if (!cmd) { + dev_dbg(&instance->pdev->dev, "Failed to get a free cmd\n"); + return; + } + + dcmd = &cmd->frame->dcmd; + + memset(ci, 0, sizeof(*ci)); + memset(dcmd->mbox.b, 0, MFI_MBOX_SIZE); + + dcmd->cmd = MFI_CMD_DCMD; + dcmd->cmd_status = MFI_STAT_INVALID_STATUS; + dcmd->sge_count = 1; + dcmd->flags = MFI_FRAME_DIR_READ; + dcmd->timeout = 0; + dcmd->pad_0 = 0; + dcmd->data_xfer_len = cpu_to_le32(sizeof(struct MR_SNAPDUMP_PROPERTIES)); + dcmd->opcode = cpu_to_le32(MR_DCMD_CTRL_SNAPDUMP_GET_PROPERTIES); + + megasas_set_dma_settings(instance, dcmd, ci_h, + sizeof(struct MR_SNAPDUMP_PROPERTIES)); + + if (!instance->mask_interrupts) { + ret = megasas_issue_blocked_cmd(instance, cmd, + MFI_IO_TIMEOUT_SECS); + } else { + ret = megasas_issue_polled(instance, cmd); + cmd->flags |= DRV_DCMD_SKIP_REFIRE; + } + + switch (ret) { + case DCMD_SUCCESS: + instance->snapdump_wait_time = + min_t(u8, ci->trigger_min_num_sec_before_ocr, + MEGASAS_MAX_SNAP_DUMP_WAIT_TIME); + break; + + case DCMD_TIMEOUT: + switch (dcmd_timeout_ocr_possible(instance)) { + case INITIATE_OCR: + cmd->flags |= DRV_DCMD_SKIP_REFIRE; + megasas_reset_fusion(instance->host, + MFI_IO_TIMEOUT_OCR); + break; + case KILL_ADAPTER: + megaraid_sas_kill_hba(instance); + break; + case IGNORE_TIMEOUT: + dev_info(&instance->pdev->dev, "Ignore DCMD timeout: %s %d\n", + __func__, __LINE__); + break; + } + } + + if (ret != DCMD_TIMEOUT) + megasas_return_cmd(instance, cmd); +} + /** * megasas_get_controller_info - Returns FW's controller structure * @instance: Adapter soft state @@ -4720,6 +4801,7 @@ megasas_get_ctrl_info(struct megasas_instance *instance) * CPU endianness format. */ le32_to_cpus((u32 *)&ci->properties.OnOffProperties); + le16_to_cpus((u16 *)&ci->properties.on_off_properties2); le32_to_cpus((u32 *)&ci->adapterOperations2); le32_to_cpus((u32 *)&ci->adapterOperations3); le16_to_cpus((u16 *)&ci->adapter_operations4); @@ -4741,6 +4823,11 @@ megasas_get_ctrl_info(struct megasas_instance *instance) /*Check whether controller is iMR or MR */ instance->is_imr = (ci->memory_size ? 0 : 1); + + instance->snapdump_wait_time = + (ci->properties.on_off_properties2.enable_snap_dump ? + MEGASAS_DEFAULT_SNAP_DUMP_WAIT_TIME : 0); + dev_info(&instance->pdev->dev, "controller type\t: %s(%dMB)\n", instance->is_imr ? "iMR" : "MR", @@ -5540,6 +5627,11 @@ static int megasas_init_fw(struct megasas_instance *instance) instance->crash_dump_buf = NULL; } + if (instance->snapdump_wait_time) { + megasas_get_snapdump_properties(instance); + dev_info(&instance->pdev->dev, "Snap dump wait time\t: %d\n", + instance->snapdump_wait_time); + } dev_info(&instance->pdev->dev, "pci id\t\t: (0x%04x)/(0x%04x)/(0x%04x)/(0x%04x)\n", @@ -5554,7 +5646,6 @@ static int megasas_init_fw(struct megasas_instance *instance) dev_info(&instance->pdev->dev, "jbod sync map : %s\n", instance->use_seqnum_jbod_fp ? "yes" : "no"); - instance->max_sectors_per_req = instance->max_num_sge * SGE_BUFFER_SIZE / 512; if (tmp_sectors && (instance->max_sectors_per_req > tmp_sectors)) @@ -6259,6 +6350,15 @@ int megasas_alloc_ctrl_dma_buffers(struct megasas_instance *instance) "Failed to allocate PD list buffer\n"); return -ENOMEM; } + + instance->snapdump_prop = + pci_alloc_consistent(pdev, + sizeof(struct MR_SNAPDUMP_PROPERTIES), + &instance->snapdump_prop_h); + + if (!instance->snapdump_prop) + dev_err(&pdev->dev, + "Failed to allocate snapdump properties buffer\n"); } instance->pd_list_buf = @@ -6403,6 +6503,11 @@ void megasas_free_ctrl_dma_buffers(struct megasas_instance *instance) pci_free_consistent(pdev, CRASH_DMA_BUF_SIZE, instance->crash_dump_buf, instance->crash_dump_h); + + if (instance->snapdump_prop) + pci_free_consistent(pdev, sizeof(struct MR_SNAPDUMP_PROPERTIES), + instance->snapdump_prop, + instance->snapdump_prop_h); } /* @@ -7760,8 +7865,15 @@ megasas_aen_polling(struct work_struct *work) break; case MR_EVT_CTRL_PROP_CHANGED: - dcmd_ret = megasas_get_ctrl_info(instance); - break; + dcmd_ret = megasas_get_ctrl_info(instance); + if (dcmd_ret == DCMD_SUCCESS && + instance->snapdump_wait_time) { + megasas_get_snapdump_properties(instance); + dev_info(&instance->pdev->dev, + "Snap dump wait time\t: %d\n", + instance->snapdump_wait_time); + } + break; default: doscan = 0; break; diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index de16797ba093..0b78787698a5 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -3884,14 +3884,57 @@ megasas_check_reset_fusion(struct megasas_instance *instance, return 0; } +/** + * megasas_trigger_snap_dump - Trigger snap dump in FW + * @instance: Soft instance of adapter + */ +static inline void megasas_trigger_snap_dump(struct megasas_instance *instance) +{ + int j; + u32 fw_state; + + if (!instance->disableOnlineCtrlReset) { + dev_info(&instance->pdev->dev, "Trigger snap dump\n"); + writel(MFI_ADP_TRIGGER_SNAP_DUMP, + &instance->reg_set->doorbell); + readl(&instance->reg_set->doorbell); + } + + for (j = 0; j < instance->snapdump_wait_time; j++) { + fw_state = instance->instancet->read_fw_status_reg( + instance->reg_set) & MFI_STATE_MASK; + if (fw_state == MFI_STATE_FAULT) { + dev_err(&instance->pdev->dev, + "Found FW in FAULT state, after snap dump trigger\n"); + return; + } + msleep(1000); + } +} + /* This function waits for outstanding commands on fusion to complete */ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance, int reason, int *convert) { int i, outstanding, retval = 0, hb_seconds_missed = 0; u32 fw_state; + u32 waittime_for_io_completion; - for (i = 0; i < resetwaittime; i++) { + waittime_for_io_completion = + min_t(u32, resetwaittime, + (resetwaittime - instance->snapdump_wait_time)); + + if (reason == MFI_IO_TIMEOUT_OCR) { + dev_info(&instance->pdev->dev, + "MFI command is timed out\n"); + megasas_complete_cmd_dpc_fusion((unsigned long)instance); + if (instance->snapdump_wait_time) + megasas_trigger_snap_dump(instance); + retval = 1; + goto out; + } + + for (i = 0; i < waittime_for_io_completion; i++) { /* Check if firmware is in fault state */ fw_state = instance->instancet->read_fw_status_reg( instance->reg_set) & MFI_STATE_MASK; @@ -3912,13 +3955,6 @@ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance, goto out; } - if (reason == MFI_IO_TIMEOUT_OCR) { - dev_info(&instance->pdev->dev, - "MFI IO is timed out, initiating OCR\n"); - megasas_complete_cmd_dpc_fusion((unsigned long)instance); - retval = 1; - goto out; - } /* If SR-IOV VF mode & heartbeat timeout, don't wait */ if (instance->requestorId && !reason) { @@ -3963,6 +3999,12 @@ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance, msleep(1000); } + if (instance->snapdump_wait_time) { + megasas_trigger_snap_dump(instance); + retval = 1; + goto out; + } + if (atomic_read(&instance->fw_outstanding)) { dev_err(&instance->pdev->dev, "pending commands remain after waiting, " "will reset adapter scsi%d.\n", @@ -3970,6 +4012,7 @@ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance, *convert = 1; retval = 1; } + out: return retval; } @@ -4783,6 +4826,13 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int reason) megasas_set_crash_dump_params(instance, MR_CRASH_BUF_TURN_OFF); + if (instance->snapdump_wait_time) { + megasas_get_snapdump_properties(instance); + dev_info(&instance->pdev->dev, + "Snap dump wait time\t: %d\n", + instance->snapdump_wait_time); + } + retval = SUCCESS; /* Adapter reset completed successfully */ diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.h b/drivers/scsi/megaraid/megaraid_sas_fusion.h index 8e5ebee6517f..14d8e409832c 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.h +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.h @@ -725,6 +725,7 @@ struct MPI2_IOC_INIT_REQUEST { #define MR_DCMD_CTRL_SHARED_HOST_MEM_ALLOC 0x010e8485 /* SR-IOV HB alloc*/ #define MR_DCMD_LD_VF_MAP_GET_ALL_LDS_111 0x03200200 #define MR_DCMD_LD_VF_MAP_GET_ALL_LDS 0x03150200 +#define MR_DCMD_CTRL_SNAPDUMP_GET_PROPERTIES 0x01200100 struct MR_DEV_HANDLE_INFO { __le16 curDevHdl; @@ -1063,6 +1064,9 @@ struct MR_FW_RAID_MAP_DYNAMIC { #define MPI26_IEEE_SGE_FLAGS_NSF_NVME_PRP (0x08) #define MPI26_IEEE_SGE_FLAGS_NSF_NVME_SGL (0x10) +#define MEGASAS_DEFAULT_SNAP_DUMP_WAIT_TIME 15 +#define MEGASAS_MAX_SNAP_DUMP_WAIT_TIME 60 + struct megasas_register_set; struct megasas_instance; @@ -1350,6 +1354,14 @@ enum CMD_RET_VALUES { RETURN_CMD = 3, }; +struct MR_SNAPDUMP_PROPERTIES { + u8 offload_num; + u8 max_num_supported; + u8 cur_num_supported; + u8 trigger_min_num_sec_before_ocr; + u8 reserved[12]; +}; + void megasas_free_cmds_fusion(struct megasas_instance *instance); int megasas_ioc_init_fusion(struct megasas_instance *instance); u8 megasas_get_map_info(struct megasas_instance *instance); From patchwork Fri Oct 12 10:57:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638485 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 25FB114E2 for ; Fri, 12 Oct 2018 10:58:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 167842BAFC for ; Fri, 12 Oct 2018 10:58:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0B0AD2BB4D; Fri, 12 Oct 2018 10:58:05 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 A7F552BAFC for ; Fri, 12 Oct 2018 10:58:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728144AbeJLS34 (ORCPT ); Fri, 12 Oct 2018 14:29:56 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:34731 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLS3z (ORCPT ); Fri, 12 Oct 2018 14:29:55 -0400 Received: by mail-ed1-f68.google.com with SMTP id w19-v6so11102180eds.1 for ; Fri, 12 Oct 2018 03:58:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yI9x6zt+cKPqd03QTE4KRvNKSiVY3+qt4KDC/mXIdxw=; b=W+Ybk4Eu99JKZMuRc3XKaLTQ44aNFShcJnFlymgBXJfdfnNF1IeMLttjbI5pqmwxXT w5Yi5I25v47vc6tv+F6a/n0KNM3Va/bjE2thSVnYmKKpTLsQ2G4ESi0Sc3c/ILF9LacR YjWkFg/xO6wlS2WE4lq4UUbKT3oq2A4okoQaI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yI9x6zt+cKPqd03QTE4KRvNKSiVY3+qt4KDC/mXIdxw=; b=UfD6//oLGgROYi41yyM3QRu/3yRsdr86MVPKm3SEkAbxpHQy6gKo+QZmGCsu2YVJ1+ /Z+HGdVIrruNcgTDd/THHakxYsY4dvx+1RXVE3qjBXonu+wNKMlgHwH3h0vedK9qPPwl m8zbH6XoUeECxpusvLEULHJUBkX5lUW7/xQzk9fwVJCBKGpTGiTK/NdlzDQE+ly1bkfR QT6wHgsRG5EsAAvSKTWe7hV33b1oATRQGXaI3aPGJ0PcDJ4QPKWTSTM+siSl7QXP4Txp wwXvVwh4rxEe2k6a6scAmo32qePCQWcvZU/at1FwbEe9dRof6agqvpb42t1mFjCs1/Td pvag== X-Gm-Message-State: ABuFfohVgNn+v9PpmkjOTxg2Tg6vQhaYXcLiLrjwGj6QG6SGMCas0h8C I7JIcwDzM5v9fFVcopUjU5W+kwMfPy42iw== X-Google-Smtp-Source: ACcGV62NVem5G9YVNHKPUinbgM41YDUZYWxY51Or7JIHHouLpF455drH/mbziOrTaygIAskwJhnkwg== X-Received: by 2002:a50:fa84:: with SMTP id w4-v6mr7967378edr.59.1539341881956; Fri, 12 Oct 2018 03:58:01 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.57.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:01 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 03/19] megaraid_sas: Fix msleep granularity Date: Fri, 12 Oct 2018 03:57:17 -0700 Message-Id: <1539341853-26814-4-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Issue - In megasas_transition_to_ready() driver waits 180seconds for controller to change FW state. Here we are calling msleep(1) in a loop for this. As explained in timers-howto.txt, msleep(1) will actually sleep longer than 1ms. If a faulty controller is connected, we will end up waiting for much more than 180 seconds causing unnecessary delays during load. Fix - Change the granularity of msleep() call from 1ms to 1000ms. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 1a9abeed4d97..aefc4c936b60 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -3891,12 +3891,12 @@ megasas_transition_to_ready(struct megasas_instance *instance, int ocr) /* * The cur_state should not last for more than max_wait secs */ - for (i = 0; i < (max_wait * 1000); i++) { + for (i = 0; i < max_wait; i++) { curr_abs_state = instance->instancet-> read_fw_status_reg(instance->reg_set); if (abs_state == curr_abs_state) { - msleep(1); + msleep(1000); } else break; } From patchwork Fri Oct 12 10:57:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638487 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D88F8933 for ; Fri, 12 Oct 2018 10:58:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C8F1F2BAFC for ; Fri, 12 Oct 2018 10:58:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BD8A82BB4D; Fri, 12 Oct 2018 10:58:08 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 5E8FE2BAFC for ; Fri, 12 Oct 2018 10:58:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728097AbeJLS37 (ORCPT ); Fri, 12 Oct 2018 14:29:59 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:41730 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLS37 (ORCPT ); Fri, 12 Oct 2018 14:29:59 -0400 Received: by mail-ed1-f67.google.com with SMTP id x31-v6so11086439edd.8 for ; Fri, 12 Oct 2018 03:58:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GMFXvZmP9RBfdE4BHMURPn0eCvymBLrvbFDzc3QPXzw=; b=f2sz4t2qp8G0jA3Fd3cNFoAK/xrW7NqDJR4QPbng0mztTGC+xMGszMVpoc6AqvHaGw 3fP3qphua1MbVc+nBm60Gve4J6oWvNhRsJjqvvXhlmU/SFV9C9rOdr+TXRympYkttluU Ky09KnfhV3mW+h1VqUQ/dIjMiH0kRHPK0QtlA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GMFXvZmP9RBfdE4BHMURPn0eCvymBLrvbFDzc3QPXzw=; b=H/RPAAC5zFFlP+PZHXx1seM9D/5GuASqugBDobn+KvrS0JmJb0Kmode0emSaWDkp+k tIGebpVEMUD+NphH21H8Z69RxFAZDelpiisTUwUSj4iOwtg1gXJfegxebz13uvGVgocw SPlI0oFuxUH1Pk8fsazJDiW5pSN6sBfJnNQd+sA+wDGlU0b7r9JhpzW8nqOS4I7buiNR /OC74dnkWOlCR9oqK4IgQlenNXzToCN8vk5fByWa9R8G+omw44Bo1IPuAe5sLZn3bYJo h6IWvvXLJ8s+7m53nTanjnqwfMOq9mKb6SNPYlIbjtA+C6HeeI4eIiC+EHwWLa+3Eh+N 4AgQ== X-Gm-Message-State: ABuFfogUp92V2gzM9dZW0J33aV7kuTf7I/doxKde31OtHcnb+J3/z5m4 OhajIH+zv8wmr/cdbAQqoqqt7WBckwEcxA== X-Google-Smtp-Source: ACcGV63z+ztFjoSq4xHli4CSjro09JZNw5Vjy46JIuUjks7biIWR8jfhVJKE6lVgpvl9GRvPNtt9Vg== X-Received: by 2002:a17:906:1ec9:: with SMTP id m9-v6mr6555970ejj.35.1539341885656; Fri, 12 Oct 2018 03:58:05 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:04 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 04/19] megaraid_sas: Add check for reset adapter bit Date: Fri, 12 Oct 2018 03:57:18 -0700 Message-Id: <1539341853-26814-5-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 For SAS3 and later controllers, FW sets the reset adapter bit indicating the driver to perform a controller reset. Driver needs to check if this bit is set before doing a reset. This reduces the driver probe failure time to 180seconds in case there is a faulty controller connected. Signed-off-by: Sumit Saxena Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 33 ++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index aefc4c936b60..e8b3d2185692 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5301,7 +5301,7 @@ static int megasas_init_fw(struct megasas_instance *instance) { u32 max_sectors_1; u32 max_sectors_2, tmp_sectors, msix_enable; - u32 scratch_pad_2, scratch_pad_3, scratch_pad_4; + u32 scratch_pad_2, scratch_pad_3, scratch_pad_4, status_reg; resource_size_t base_addr; struct megasas_register_set __iomem *reg_set; struct megasas_ctrl_info *ctrl_info = NULL; @@ -5309,6 +5309,7 @@ static int megasas_init_fw(struct megasas_instance *instance) int i, j, loop, fw_msix_count = 0; struct IOV_111 *iovPtr; struct fusion_context *fusion; + bool do_adp_reset = true; fusion = instance->ctrl_context; @@ -5357,19 +5358,29 @@ static int megasas_init_fw(struct megasas_instance *instance) } if (megasas_transition_to_ready(instance, 0)) { - atomic_set(&instance->fw_reset_no_pci_access, 1); - instance->instancet->adp_reset - (instance, instance->reg_set); - atomic_set(&instance->fw_reset_no_pci_access, 0); - dev_info(&instance->pdev->dev, - "FW restarted successfully from %s!\n", - __func__); + if (instance->adapter_type >= INVADER_SERIES) { + status_reg = instance->instancet->read_fw_status_reg( + instance->reg_set); + do_adp_reset = status_reg & MFI_RESET_ADAPTER; + } - /*waitting for about 30 second before retry*/ - ssleep(30); + if (do_adp_reset) { + atomic_set(&instance->fw_reset_no_pci_access, 1); + instance->instancet->adp_reset + (instance, instance->reg_set); + atomic_set(&instance->fw_reset_no_pci_access, 0); + dev_info(&instance->pdev->dev, + "FW restarted successfully from %s!\n", + __func__); + + /*waitting for about 30 second before retry*/ + ssleep(30); - if (megasas_transition_to_ready(instance, 0)) + if (megasas_transition_to_ready(instance, 0)) + goto fail_ready_state; + } else { goto fail_ready_state; + } } megasas_init_ctrl_params(instance); From patchwork Fri Oct 12 10:57:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638489 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BFE62933 for ; Fri, 12 Oct 2018 10:58:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ABC872B370 for ; Fri, 12 Oct 2018 10:58:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 97E4C2A04D; Fri, 12 Oct 2018 10:58:13 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 D0CEB2A04D for ; Fri, 12 Oct 2018 10:58:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728074AbeJLSaE (ORCPT ); Fri, 12 Oct 2018 14:30:04 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:39513 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSaE (ORCPT ); Fri, 12 Oct 2018 14:30:04 -0400 Received: by mail-ed1-f67.google.com with SMTP id d15-v6so11093789edq.6 for ; Fri, 12 Oct 2018 03:58:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qOKT6M08HKYv/sVc7mvJsa1Yao2bSmhbxJY2dbtB3Cs=; b=dA9CgME2shH/fFAH3mv6DnEmKdtHhZhz2b9OCCLqGzuRb70STBzlWvrTorhthsNUOy zKvPg8A/DxCZrqQ92C8fBClY+v75srror/7B5VmTVs8IxTiAtO+DF4sF12VYjbXvxt3+ deI0HTQKgelIAx4Ni7B/leCi0KkdSYvHlq5so= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qOKT6M08HKYv/sVc7mvJsa1Yao2bSmhbxJY2dbtB3Cs=; b=j0EV56GnCwRfsoosez/8MOvDnwacEk/ZIbGFiw78qlbK3DkYRUaUs1DlSam5Ruz4n1 NFoTN+XS3hciZcRc4vsGmlWQXACtEuSSNsHIHPs7ms3BxWXjoTbRUhrVCUJmSCD3XkJ+ p8IhReR3aMR5pjXi2behicK5NkUKWpF+S4bl6Df1owukzSnxb+I/XGP1m54Eb7JfyGQC ZiIwceqPFyWLwhruIacpvHcJm/MnT52rdKOamICA6LmKiYQ6BdtCgMvh+ogNnvXMYA/q zOwbTjHM5YTnTBO8R9DfVwaWXkJk4LWHrk4+RX9XYlnRCaa39NZ55ncsKLggmVphcMvQ Bjhw== X-Gm-Message-State: ABuFfoiYwwNY5R74Uh78fSxf6rAnuHy1j9d1rXlO5OoHjiFEZdDSyvxo UzhjFBk4ZjI7j64fJ4xzO7gtEvbStMI3kg== X-Google-Smtp-Source: ACcGV63UM/LYKuWq0ma8pF8kOpoUbBaK8i9SjviRISZB8dDWLlVQaGWlqBT5Ye4qsLv2G3YOhz/lIQ== X-Received: by 2002:a17:906:8410:: with SMTP id n16-v6mr6754894ejx.138.1539341889357; Fri, 12 Oct 2018 03:58:09 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:08 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 05/19] megaraid_sas: Update copyright information Date: Fri, 12 Oct 2018 03:57:19 -0700 Message-Id: <1539341853-26814-6-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Change copyright to Broadcom Inc. Also update any references to Avago with Broadcom. Update copyright duration wherever required. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas.h | 14 ++++++-------- drivers/scsi/megaraid/megaraid_sas_base.c | 18 ++++++++---------- drivers/scsi/megaraid/megaraid_sas_fp.c | 14 ++++++-------- drivers/scsi/megaraid/megaraid_sas_fusion.c | 14 ++++++-------- drivers/scsi/megaraid/megaraid_sas_fusion.h | 14 ++++++-------- 5 files changed, 32 insertions(+), 42 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index a2df9827e932..ccf1aa629f69 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -2,7 +2,8 @@ * Linux MegaRAID driver for SAS based RAID controllers * * Copyright (c) 2003-2013 LSI Corporation - * Copyright (c) 2013-2014 Avago Technologies + * Copyright (c) 2013-2016 Avago Technologies + * Copyright (c) 2016-2018 Broadcom Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -19,14 +20,11 @@ * * FILE: megaraid_sas.h * - * Authors: Avago Technologies - * Kashyap Desai - * Sumit Saxena + * Authors: Broadcom Inc. + * Kashyap Desai + * Sumit Saxena * - * Send feedback to: megaraidlinux.pdl@avagotech.com - * - * Mail to: Avago Technologies, 350 West Trimble Road, Building 90, - * San Jose, California 95131 + * Send feedback to: megaraidlinux.pdl@broadcom.com */ #ifndef LSI_MEGARAID_SAS_H diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index e8b3d2185692..68c59c809cb7 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -2,7 +2,8 @@ * Linux MegaRAID driver for SAS based RAID controllers * * Copyright (c) 2003-2013 LSI Corporation - * Copyright (c) 2013-2014 Avago Technologies + * Copyright (c) 2013-2016 Avago Technologies + * Copyright (c) 2016-2018 Broadcom Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -17,18 +18,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . * - * Authors: Avago Technologies + * Authors: Broadcom Inc. * Sreenivas Bagalkote * Sumant Patro * Bo Yang * Adam Radford - * Kashyap Desai - * Sumit Saxena + * Kashyap Desai + * Sumit Saxena * - * Send feedback to: megaraidlinux.pdl@avagotech.com - * - * Mail to: Avago Technologies, 350 West Trimble Road, Building 90, - * San Jose, California 95131 + * Send feedback to: megaraidlinux.pdl@broadcom.com */ #include @@ -108,8 +106,8 @@ MODULE_PARM_DESC(scmd_timeout, "scsi command timeout (10-90s), default 90s. See MODULE_LICENSE("GPL"); MODULE_VERSION(MEGASAS_VERSION); -MODULE_AUTHOR("megaraidlinux.pdl@avagotech.com"); -MODULE_DESCRIPTION("Avago MegaRAID SAS Driver"); +MODULE_AUTHOR("megaraidlinux.pdl@broadcom.com"); +MODULE_DESCRIPTION("Broadcom MegaRAID SAS Driver"); int megasas_transition_to_ready(struct megasas_instance *instance, int ocr); static int megasas_get_pd_list(struct megasas_instance *instance); diff --git a/drivers/scsi/megaraid/megaraid_sas_fp.c b/drivers/scsi/megaraid/megaraid_sas_fp.c index 59ecbb3b53b5..25fa999e0280 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fp.c +++ b/drivers/scsi/megaraid/megaraid_sas_fp.c @@ -2,7 +2,8 @@ * Linux MegaRAID driver for SAS based RAID controllers * * Copyright (c) 2009-2013 LSI Corporation - * Copyright (c) 2013-2014 Avago Technologies + * Copyright (c) 2013-2016 Avago Technologies + * Copyright (c) 2016-2018 Broadcom Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -19,17 +20,14 @@ * * FILE: megaraid_sas_fp.c * - * Authors: Avago Technologies + * Authors: Broadcom Inc. * Sumant Patro * Varad Talamacki * Manoj Jose - * Kashyap Desai - * Sumit Saxena + * Kashyap Desai + * Sumit Saxena * - * Send feedback to: megaraidlinux.pdl@avagotech.com - * - * Mail to: Avago Technologies, 350 West Trimble Road, Building 90, - * San Jose, California 95131 + * Send feedback to: megaraidlinux.pdl@broadcom.com */ #include diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 0b78787698a5..dcf0346bdc71 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -2,7 +2,8 @@ * Linux MegaRAID driver for SAS based RAID controllers * * Copyright (c) 2009-2013 LSI Corporation - * Copyright (c) 2013-2014 Avago Technologies + * Copyright (c) 2013-2016 Avago Technologies + * Copyright (c) 2016-2018 Broadcom Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -19,16 +20,13 @@ * * FILE: megaraid_sas_fusion.c * - * Authors: Avago Technologies + * Authors: Broadcom Inc. * Sumant Patro * Adam Radford - * Kashyap Desai - * Sumit Saxena + * Kashyap Desai + * Sumit Saxena * - * Send feedback to: megaraidlinux.pdl@avagotech.com - * - * Mail to: Avago Technologies, 350 West Trimble Road, Building 90, - * San Jose, California 95131 + * Send feedback to: megaraidlinux.pdl@broadcom.com */ #include diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.h b/drivers/scsi/megaraid/megaraid_sas_fusion.h index 14d8e409832c..ca73c50fe723 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.h +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.h @@ -2,7 +2,8 @@ * Linux MegaRAID driver for SAS based RAID controllers * * Copyright (c) 2009-2013 LSI Corporation - * Copyright (c) 2013-2014 Avago Technologies + * Copyright (c) 2013-2016 Avago Technologies + * Copyright (c) 2016-2018 Broadcom Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -19,16 +20,13 @@ * * FILE: megaraid_sas_fusion.h * - * Authors: Avago Technologies + * Authors: Broadcom Inc. * Manoj Jose * Sumant Patro - * Kashyap Desai - * Sumit Saxena + * Kashyap Desai + * Sumit Saxena * - * Send feedback to: megaraidlinux.pdl@avagotech.com - * - * Mail to: Avago Technologies, 350 West Trimble Road, Building 90, - * San Jose, California 95131 + * Send feedback to: megaraidlinux.pdl@broadcom.com */ #ifndef _MEGARAID_SAS_FUSION_H_ From patchwork Fri Oct 12 10:57:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638491 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 25267933 for ; Fri, 12 Oct 2018 10:58:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 144182A04D for ; Fri, 12 Oct 2018 10:58:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 07E7E2B397; Fri, 12 Oct 2018 10:58:16 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 A3A6A2A04D for ; Fri, 12 Oct 2018 10:58:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728097AbeJLSaH (ORCPT ); Fri, 12 Oct 2018 14:30:07 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:40027 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSaH (ORCPT ); Fri, 12 Oct 2018 14:30:07 -0400 Received: by mail-ed1-f67.google.com with SMTP id r1-v6so11099591edd.7 for ; Fri, 12 Oct 2018 03:58:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=mwUgc7OdOjv6ZgYXqZtbP2ksVY6CCj5Ttp9ate2kMAo=; b=G8peHSFWKOYxXh8I1OhDr+l4ujVa2TNRauOF6/4XNxXY0+HM3fVY6SoWNZDwLTr7OD G+eOCForcFnDcGwTrpwSN8HLOKuuso9CyWVDT6j4eM6MyHoW/Nfc3y57QShh1bLp5CPw j12qquZKqigZNj69R6KsSAoYLFTaFdSB3pemY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=mwUgc7OdOjv6ZgYXqZtbP2ksVY6CCj5Ttp9ate2kMAo=; b=YmJehWR4Dmq0DFsGJAfLHrZx14pF6tFE88vvmo28cPnbDbu6y6Ix8cIq1d0odka5mT 8wIBDPRn76BFRhUsnGrlRz3RcH4MtPIy3Ah9p4mNqt7/6cMpd/mQtRLkpCcvldebelYn kmElbYlyg5WNuEJuaMoTM7yvkIpK173S3pJnMJ4XRUOBcDsr6CFEO8YGoMjhUZPrPPCa SvrXRhpRXyaPd/5E3kGAJ6U07UT5CbArcMETyErZkvXqNMifUrcueh8PX2U5/DpIV4KU 60CM1JFiC56lRfNznL9LoaefaD/ptg8KOezRF2f7kZx6f5ifJUtRE9QiV/5JlnUNi6Tb Q2uA== X-Gm-Message-State: ABuFfoi23tKOjcZpSLahl6gf+V/MNPIDB3Q4YzgkUAKhZOGJu7AQWm/Y 9ZzfUCtmm7dSgWKFqf9ZEy1iUwFnEY3Wfg== X-Google-Smtp-Source: ACcGV62LAraDRjAclAt2RuNjdER8ya+ppCzL0/44hbY+3sNLb+BeGxTeKR5/QWVUyv+brxBhXDCykw== X-Received: by 2002:a17:906:3915:: with SMTP id f21-v6mr6436786eje.159.1539341893037; Fri, 12 Oct 2018 03:58:13 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:12 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 06/19] megaraid_sas: Fix goto labels in error handling Date: Fri, 12 Oct 2018 03:57:20 -0700 Message-Id: <1539341853-26814-7-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Fix - During init, if pci_alloc_irq_vectors() fails, the driver has not yet setup the IRQs. Fix the goto labels and error handling for this case. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 68c59c809cb7..05f6f7f74df5 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5474,7 +5474,7 @@ static int megasas_init_fw(struct megasas_instance *instance) if (!instance->msix_vectors) { i = pci_alloc_irq_vectors(instance->pdev, 1, 1, PCI_IRQ_LEGACY); if (i < 0) - goto fail_setup_irqs; + goto fail_init_adapter; } megasas_setup_reply_map(instance); @@ -5699,9 +5699,8 @@ static int megasas_init_fw(struct megasas_instance *instance) del_timer_sync(&instance->sriov_heartbeat_timer); fail_get_ld_pd_list: instance->instancet->disable_intr(instance); -fail_init_adapter: megasas_destroy_irqs(instance); -fail_setup_irqs: +fail_init_adapter: if (instance->msix_vectors) pci_free_irq_vectors(instance->pdev); instance->msix_vectors = 0; From patchwork Fri Oct 12 10:57:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638493 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 173F714E2 for ; Fri, 12 Oct 2018 10:58:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 079C92B470 for ; Fri, 12 Oct 2018 10:58:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EF62B2B476; Fri, 12 Oct 2018 10:58:19 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 9B1232B470 for ; Fri, 12 Oct 2018 10:58:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728108AbeJLSaL (ORCPT ); Fri, 12 Oct 2018 14:30:11 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:36272 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSaL (ORCPT ); Fri, 12 Oct 2018 14:30:11 -0400 Received: by mail-ed1-f68.google.com with SMTP id c26-v6so11108428edt.3 for ; Fri, 12 Oct 2018 03:58:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=PXE95N233vydyDfRAwhRV0ZzH2HlyeIhB3iuDkuFpvs=; b=g+8MNGb6hVS1zlHuS9oZxnUnnxVncnp8ni/nFAhtUx/ZwEPFSg2Vdqwobs8zuG6hUK RN43QK5lQtwoEeldCm+jw/9q1o6xgk3naLi2p4IfKqVCl5RvbFIf0o641zglaTizYcMk ypTorgjtkXT0IQigwx6Snw3p2WHPool3D3PVk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=PXE95N233vydyDfRAwhRV0ZzH2HlyeIhB3iuDkuFpvs=; b=DY1b3deRL7FYbPLVIiW9NAGQ8MAzVODM0ilpcuIdP3Z3CRk/V/mhbeqtz61Y+tz+cX 6BSIFM1N1uvrxKA9O1XVsoJ3sZntu5XNjnYbKo2atPDlOEu9m3cjVmRPh9fvXKvyU+MA jzYq+qmjcTZSMDogEfWXOUgCt4yA6/B4wOHORNaMB6nexbS/MXSFJvud7jxAtFK6xCHL vQ4c9/OJXXJR6Ao7X2pUlJP1AzBOEpk5Sc9vfwtFDFSWOsY5+xdpcKBUMiYgO73W+2Pp LvYlPJY2Aitf4Nu5m8Jx9LZXNUW9A52assWehJo6bWb9Ingxgu0Cs7AUDruKUcQqatZV zexg== X-Gm-Message-State: ABuFfohSVBmnpuah4btRvz9MZKRb2Eui9JWn2U1SmiDcjfuzQEdP7XVE 0nRDzFCyYdgh0BmNrXkaMZaixSiRcJ/k9g== X-Google-Smtp-Source: ACcGV63flK+glp/M9TT2YZXNU5sA/mLu4KCGSVq5nuU5Qrvh00uFsvruOydD6qY+IkzuHkU5+x4rWA== X-Received: by 2002:a50:89f1:: with SMTP id h46-v6mr8290747edh.252.1539341896834; Fri, 12 Oct 2018 03:58:16 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:15 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 07/19] megaraid_sas: Fix module parameter description Date: Fri, 12 Oct 2018 03:57:21 -0700 Message-Id: <1539341853-26814-8-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Module parameter description for rdpq_enable incorrectly lists the default as enabled. Also, provide range of valid values for resetwaittime in the description. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 05f6f7f74df5..f35d90c02167 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -85,8 +85,7 @@ MODULE_PARM_DESC(throttlequeuedepth, unsigned int resetwaittime = MEGASAS_RESET_WAIT_TIME; module_param(resetwaittime, int, S_IRUGO); -MODULE_PARM_DESC(resetwaittime, "Wait time in seconds after I/O timeout " - "before resetting adapter. Default: 180"); +MODULE_PARM_DESC(resetwaittime, "Wait time in (1-180s) after I/O timeout before resetting adapter. Default: 180s"); int smp_affinity_enable = 1; module_param(smp_affinity_enable, int, S_IRUGO); @@ -94,7 +93,7 @@ MODULE_PARM_DESC(smp_affinity_enable, "SMP affinity feature enable/disable Defau int rdpq_enable = 1; module_param(rdpq_enable, int, S_IRUGO); -MODULE_PARM_DESC(rdpq_enable, " Allocate reply queue in chunks for large queue depth enable/disable Default: disable(0)"); +MODULE_PARM_DESC(rdpq_enable, "Allocate reply queue in chunks for large queue depth enable/disable Default: enable(1)"); unsigned int dual_qdepth_disable; module_param(dual_qdepth_disable, int, S_IRUGO); From patchwork Fri Oct 12 10:57:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638495 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7B10914E2 for ; Fri, 12 Oct 2018 10:58:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6BB452B472 for ; Fri, 12 Oct 2018 10:58:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5FC092B478; Fri, 12 Oct 2018 10:58:24 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 5B02E2B472 for ; Fri, 12 Oct 2018 10:58:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728144AbeJLSaO (ORCPT ); Fri, 12 Oct 2018 14:30:14 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:42653 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSaO (ORCPT ); Fri, 12 Oct 2018 14:30:14 -0400 Received: by mail-ed1-f66.google.com with SMTP id b7-v6so11079483edd.9 for ; Fri, 12 Oct 2018 03:58:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=SIgurqUrKKW0jAGXvMTsTXVx0OdRmCnmmbp33JK6FcA=; b=Tviyg+PbivydTOcnrgxjwXP+03q1SXFIyH9VaGF07AxmTlEIffXiQ+d2RKE/Ft0XBy tsHWjvk78tNJGuUcpQUGHOCo3PMFyiApIac7BjNpK7Jhf2M3NiAM/HU298zh6m4KXFnx Y24553uwaGlIH1aZZId0joDMdKH7YegmcJ5ZQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=SIgurqUrKKW0jAGXvMTsTXVx0OdRmCnmmbp33JK6FcA=; b=SEl6UrLanSepXNXK0kFOlvDomkXdmscAnTTpWiw1iEufBXXVdBzKVPAe03rK3Y7Nnk ItIxf9ofj9msNQqODZHIYZF4UIEY1wJ5/4gOoMlMGDF9YaBZYI2cfv+V1ROI7bwx1HG/ SIPmyR+aUKWRHjKJ/qZeOz+BQVj/Q/h3pDzn9IcZob1+pYKw7J2w0/h6O/q5LeHM/s9U mErd5pBqqmM6Rkp5cz5Mx/vd3mamWmL34Xaxt0KhMG9kzU+hUxG8R7HOav0YWrnt013Y f+f51ncTmv4/3vqMyRlFhIzi8xN6L3SGZ8GkLLeREKyDb/AmymTJm0mv0vBLNqZgPnN4 Remw== X-Gm-Message-State: ABuFfogHQRD5TBGGwUfo/G2X741ZDyC92kubEKh2PtuJAHagMiBYAga8 khy7weIehpxic1z9ojlDWNxQjJVH+03tcw== X-Google-Smtp-Source: ACcGV60s1Oy/MrsmeW2Xcgd9gQNK/7OmQQD2NMpDFdOG0/li3zfMetCBSOFmbpDNdVQyDnnbaOh4YA== X-Received: by 2002:a50:852b:: with SMTP id 40-v6mr8020921edr.177.1539341900524; Fri, 12 Oct 2018 03:58:20 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:19 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 08/19] megaraid_sas: Fix combined reply queue mode detection Date: Fri, 12 Oct 2018 03:57:22 -0700 Message-Id: <1539341853-26814-9-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Fix - For Invader series, if FW supports more than 8 MSI-x vectors, driver needs to enable combined reply queue mode. For Ventura series, driver enables combined reply queue mode in case of more than 16 MSI-x vectors. Signed-off-by: Sumit Saxena Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index f35d90c02167..93d7ce8b3657 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5416,12 +5416,29 @@ static int megasas_init_fw(struct megasas_instance *instance) instance->msix_vectors = (scratch_pad_2 & MR_MAX_REPLY_QUEUES_OFFSET) + 1; fw_msix_count = instance->msix_vectors; - } else { /* Invader series supports more than 8 MSI-x vectors*/ + } else { instance->msix_vectors = ((scratch_pad_2 & MR_MAX_REPLY_QUEUES_EXT_OFFSET) >> MR_MAX_REPLY_QUEUES_EXT_OFFSET_SHIFT) + 1; - if (instance->msix_vectors > 16) - instance->msix_combined = true; + + /* + * For Invader series, > 8 MSI-x vectors + * supported by FW/HW implies combined + * reply queue mode is enabled. + * For Ventura series, > 16 MSI-x vectors + * supported by FW/HW implies combined + * reply queue mode is enabled. + */ + switch (instance->adapter_type) { + case INVADER_SERIES: + if (instance->msix_vectors > 8) + instance->msix_combined = true; + break; + case VENTURA_SERIES: + if (instance->msix_vectors > 16) + instance->msix_combined = true; + break; + } if (rdpq_enable) instance->is_rdpq = (scratch_pad_2 & MR_RDPQ_MODE_OFFSET) ? From patchwork Fri Oct 12 10:57:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638497 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5F9D0933 for ; Fri, 12 Oct 2018 10:58:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4F21A2B478 for ; Fri, 12 Oct 2018 10:58:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 41AF92B480; Fri, 12 Oct 2018 10:58:27 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 ED5A52B478 for ; Fri, 12 Oct 2018 10:58:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728157AbeJLSaS (ORCPT ); Fri, 12 Oct 2018 14:30:18 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:45935 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSaS (ORCPT ); Fri, 12 Oct 2018 14:30:18 -0400 Received: by mail-ed1-f65.google.com with SMTP id v18-v6so11074170edq.12 for ; Fri, 12 Oct 2018 03:58:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yrSkOKHYHT/0+Mrw/tqFPYrhzbO+OrHdesdw5W9tp9M=; b=SS1WW2wC13+GGaS3k7Z1AAFg8aou5QT6ntu+HTiORKMrR5Q5CEPt28zgsBcsHOjkZE 9mK6YNcqToC5lZlVzPpMfR17NiLKEt6b8dJO1ZQqQnN+3jAJMqIeqio2MfVWqXoVXaVX N+OMTVXdXG6fxEEJhUsWetoWJvYzkppqSvzYw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yrSkOKHYHT/0+Mrw/tqFPYrhzbO+OrHdesdw5W9tp9M=; b=HPn9h9p+ieEVchikqA04zU3TUJPsvOJ7MLvFp6u+Vr1bOXtiecrQvPMMvR5Esvadye lh5R3rDcS23SM8dbTeBP5JR17EWOnjd/h/zGbJsakXxePyR3FIEWbrar7IAxZGEAtLRw iB3n2zFDEVFweafTrLZXW+G+AcE6chhHolIhtly09G4Y1bjclumGaQebxJjqDqZN7Hc2 t3KtpU3pD2dSK4v3W6I41fGhVBvhHLxMjCSp13FYCyEiaQPaNdjylyuAYDZNJLXEPCk3 Jux1bXcL0iAERhs8t484a4SwzXcTabsyDrdKCBhy9E5jFUBj0opsTA4PcsllAcJBb3oL MFKQ== X-Gm-Message-State: ABuFfohldk4DW1Zr1ICoH+3CotEK1To06PZ54V3e1ezpronchykmz/gG m4+C6oQyzmYzpUiZH+MZlWWtSxwOjfQesg== X-Google-Smtp-Source: ACcGV619xmxnyVg4WBeX1i5+0WZYm+AfQ9b5rX4skQIHHhxaZdxqspr3dX6qLE9H3CZzXwJMekLklg== X-Received: by 2002:a50:8d86:: with SMTP id r6-v6mr7845128edh.125.1539341904209; Fri, 12 Oct 2018 03:58:24 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:23 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 09/19] megaraid_sas: For SRIOV, do not set STOP_ADP bit Date: Fri, 12 Oct 2018 03:57:23 -0700 Message-Id: <1539341853-26814-10-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Fix - For SRIOV based adapters, driver should not set the STOP_ADP bit as part of kill adapter. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 93d7ce8b3657..8de845f675b4 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -2076,9 +2076,11 @@ void megaraid_sas_kill_hba(struct megasas_instance *instance) if ((instance->pdev->device == PCI_DEVICE_ID_LSI_SAS0073SKINNY) || (instance->pdev->device == PCI_DEVICE_ID_LSI_SAS0071SKINNY) || (instance->adapter_type != MFI_SERIES)) { - writel(MFI_STOP_ADP, &instance->reg_set->doorbell); - /* Flush */ - readl(&instance->reg_set->doorbell); + if (!instance->requestorId) { + writel(MFI_STOP_ADP, &instance->reg_set->doorbell); + /* Flush */ + readl(&instance->reg_set->doorbell); + } if (instance->requestorId && instance->peerIsPresent) memset(instance->ld_ids, 0xff, MEGASAS_MAX_LD_IDS); } else { From patchwork Fri Oct 12 10:57:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638499 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1C2A7933 for ; Fri, 12 Oct 2018 10:58:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0CBBF2B47D for ; Fri, 12 Oct 2018 10:58:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 00FCD2B481; Fri, 12 Oct 2018 10:58:30 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 AC6CC2B47D for ; Fri, 12 Oct 2018 10:58:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728167AbeJLSaW (ORCPT ); Fri, 12 Oct 2018 14:30:22 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:41774 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSaW (ORCPT ); Fri, 12 Oct 2018 14:30:22 -0400 Received: by mail-ed1-f65.google.com with SMTP id x31-v6so11087307edd.8 for ; Fri, 12 Oct 2018 03:58:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Fw6sy8Xq6LLJ3fjUobefIaqRg1e0eZbAsrQ89Qp5TAI=; b=VIp2lFJ4mAO7rmbIEPV0zjjMBR7MVC0QHhEGwdzPhMUWVOlLtKTmyG6UnQPAflPLcZ q5rMgmHlN0E+2LebsMBYVATqk8aFCxcJ8gTJPzSm+IR4R5pMgKQV30DwN0meav3ky6RL 0cH+PmG3eL0atdAesy4JRmAS2/aTrah6oPCIo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Fw6sy8Xq6LLJ3fjUobefIaqRg1e0eZbAsrQ89Qp5TAI=; b=fAqLABqRPIMrgPqJQ2NvKKKYkhuK7DkME276dMk2ggZ7gIiPrc9SODh8SGnEIhJxEi 8AhWdcbvfWIkkbcsk1YmjwPnnlfQhdfzBs53BbbNjHMfGB9x0ZZfoyqsMLKI/QsCEn40 qj30dlX8ioeUiJO8xl3VOyM/XckbsUn3W59IVMGPiYwdeE0uW7Jw9bqGpqmGQxoACkkC CRFfMOKGnj6/5M03EeG8g9D1QBFSrOwBgnfzMSWnNIWAqx6iA1qOl8jm73Kh/XcdAII+ Ci4MlBDvl5EgowjI8oujYaQ6S5/8hU2qWfyKnZpifjl3jiwcOEi2l6o6Rnd7RbPt2Wxk E5Pg== X-Gm-Message-State: ABuFfohV15YRbh/PzakofNzxxuPWf7wN4jCRVZnlJtZFrtBmczHKQZ2Y VyCh6All4NF+Ir3ilV93cCZm7WWRzKdJ8A== X-Google-Smtp-Source: ACcGV60uiylU/KB+4FATyAR1WclalTIqUPHEYlLZ+VPfN8nfH7Tg1E5nSiQaosnTscdD5oU1RRAqQA== X-Received: by 2002:a17:906:6983:: with SMTP id i3-v6mr6713356ejr.141.1539341907920; Fri, 12 Oct 2018 03:58:27 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:26 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 10/19] megaraid_sas: Fail init if heartbeat timer fails Date: Fri, 12 Oct 2018 03:57:24 -0700 Message-Id: <1539341853-26814-11-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 When driver fails to start the heartbeat timer, exit from FW init. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 8de845f675b4..3cf9995c62ef 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5695,10 +5695,12 @@ static int megasas_init_fw(struct megasas_instance *instance) /* Launch SR-IOV heartbeat timer */ if (instance->requestorId) { - if (!megasas_sriov_start_heartbeat(instance, 1)) + if (!megasas_sriov_start_heartbeat(instance, 1)) { megasas_start_timer(instance); - else + } else { instance->skip_heartbeat_timer_del = 1; + goto fail_get_ld_pd_list; + } } /* From patchwork Fri Oct 12 10:57:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638501 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2CAD65CAF for ; Fri, 12 Oct 2018 10:58:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A9FE2B478 for ; Fri, 12 Oct 2018 10:58:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0EBC12B481; Fri, 12 Oct 2018 10:58:36 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 6EF8A2B478 for ; Fri, 12 Oct 2018 10:58:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728144AbeJLSa1 (ORCPT ); Fri, 12 Oct 2018 14:30:27 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:35051 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSa0 (ORCPT ); Fri, 12 Oct 2018 14:30:26 -0400 Received: by mail-ed1-f68.google.com with SMTP id y19-v6so11106065edd.2 for ; Fri, 12 Oct 2018 03:58:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=oYY96EUhuAhsmt667Qsqhl3MWSzrKGRWZn7ONqrDOos=; b=fdbDa9huyu5++PBpf/WJr+B+lCt2P4LJZnC1hKFUKzHxIjrpEi2DmvIqPetjdQz8Lc RwFnj4uaYzyFBqEz6qoVOnj05S9nyBRg9Z6xmwViJYqyjD3Uf3OhpLfjCe0H5AJnWChN mrB5AWL486msNaRgdQeIVJUqnbgQoqeKsEjr4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=oYY96EUhuAhsmt667Qsqhl3MWSzrKGRWZn7ONqrDOos=; b=Fp9XEcB8ecX5xwUtILUJYVRPLkfpJLvB1uxeVkHILbyeqf5BhjVcrY/mdRyT2t0hb0 9OPLhjs2sGGOmOUVUEw2sefryFDAkC2jRbKxJ3znrxruKcfJxec2Khq1bIQCYc2PvXuU Hw17OUQxH4kNO1eIWZKAgxY/qab0Vf36aFv1gGUIaRO+DspbfseRzMOgKrw19tecOoCT PO0P4uho1qJ0buIEpo9/J+dERTIIO7PV9MmUCqlXseNMFABXrBKKFc/5qmNSOZWB0e7z gaxoAxhKHdB3/f0OulSPxnwRF9dp55+JnpB3iv9NEGNCpWH0GDLAGhb1HcZNJukQCv+9 eQ5A== X-Gm-Message-State: ABuFfohghD6xiFchd268NethG6bIv0fEpV9zOnB+DBsOwplhIT2xD5Ls WhzFgIe7MYrfTswxA5Wnb/JsrBmLxN8W9A== X-Google-Smtp-Source: ACcGV61+WSpXP8Ch9cZBw8U1hUZ7WZD2vjCELhrfPTZUw/OTeAMA3oqZfth3FBD0BptldJUO4Yf1Eg== X-Received: by 2002:a50:8807:: with SMTP id b7-v6mr8114940edb.182.1539341911649; Fri, 12 Oct 2018 03:58:31 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:30 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 11/19] megaraid_sas: optimize raid context access in IO path Date: Fri, 12 Oct 2018 03:57:25 -0700 Message-Id: <1539341853-26814-12-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 No functional change. Use local variables when accessing raid context in IO path. Improves code readability. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_fusion.c | 74 ++++++++++++----------------- 1 file changed, 31 insertions(+), 43 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index dcf0346bdc71..774e1c619ab2 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -2627,19 +2627,22 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, struct MR_DRV_RAID_MAP_ALL *local_map_ptr; u8 *raidLUN; unsigned long spinlock_flags; - union RAID_CONTEXT_UNION *praid_context; struct MR_LD_RAID *raid = NULL; struct MR_PRIV_DEVICE *mrdev_priv; + struct RAID_CONTEXT *rctx; + struct RAID_CONTEXT_G35 *rctx_g35; device_id = MEGASAS_DEV_INDEX(scp); fusion = instance->ctrl_context; io_request = cmd->io_request; - io_request->RaidContext.raid_context.virtual_disk_tgt_id = - cpu_to_le16(device_id); - io_request->RaidContext.raid_context.status = 0; - io_request->RaidContext.raid_context.ex_status = 0; + rctx = &io_request->RaidContext.raid_context; + rctx_g35 = &io_request->RaidContext.raid_context_g35; + + rctx->virtual_disk_tgt_id = cpu_to_le16(device_id); + rctx->status = 0; + rctx->ex_status = 0; req_desc = (union MEGASAS_REQUEST_DESCRIPTOR_UNION *)cmd->request_desc; @@ -2715,11 +2718,10 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, raid = MR_LdRaidGet(ld, local_map_ptr); if (!raid || (!fusion->fast_path_io)) { - io_request->RaidContext.raid_context.reg_lock_flags = 0; + rctx->reg_lock_flags = 0; fp_possible = false; } else { - if (MR_BuildRaidContext(instance, &io_info, - &io_request->RaidContext.raid_context, + if (MR_BuildRaidContext(instance, &io_info, rctx, local_map_ptr, &raidLUN)) fp_possible = (io_info.fpOkForIo > 0) ? true : false; } @@ -2727,8 +2729,6 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, cmd->request_desc->SCSIIO.MSIxIndex = instance->reply_map[raw_smp_processor_id()]; - praid_context = &io_request->RaidContext; - if (instance->adapter_type == VENTURA_SERIES) { /* FP for Optimal raid level 1. * All large RAID-1 writes (> 32 KiB, both WT and WB modes) @@ -2765,17 +2765,17 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, /* In ventura if stream detected for a read and it is * read ahead capable make this IO as LDIO */ - if (is_stream_detected(&io_request->RaidContext.raid_context_g35)) + if (is_stream_detected(rctx_g35)) fp_possible = false; } /* If raid is NULL, set CPU affinity to default CPU0 */ if (raid) - megasas_set_raidflag_cpu_affinity(praid_context, + megasas_set_raidflag_cpu_affinity(&io_request->RaidContext, raid, fp_possible, io_info.isRead, scsi_buff_len); else - praid_context->raid_context_g35.routing_flags |= + rctx_g35->routing_flags |= (MR_RAID_CTX_CPUSEL_0 << MR_RAID_CTX_ROUTINGFLAGS_CPUSEL_SHIFT); } @@ -2787,25 +2787,20 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, (MPI2_REQ_DESCRIPT_FLAGS_FP_IO << MEGASAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); if (instance->adapter_type == INVADER_SERIES) { - if (io_request->RaidContext.raid_context.reg_lock_flags == - REGION_TYPE_UNUSED) + if (rctx->reg_lock_flags == REGION_TYPE_UNUSED) cmd->request_desc->SCSIIO.RequestFlags = (MEGASAS_REQ_DESCRIPT_FLAGS_NO_LOCK << MEGASAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - io_request->RaidContext.raid_context.type - = MPI2_TYPE_CUDA; - io_request->RaidContext.raid_context.nseg = 0x1; + rctx->type = MPI2_TYPE_CUDA; + rctx->nseg = 0x1; io_request->IoFlags |= cpu_to_le16(MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH); - io_request->RaidContext.raid_context.reg_lock_flags |= + rctx->reg_lock_flags |= (MR_RL_FLAGS_GRANT_DESTINATION_CUDA | MR_RL_FLAGS_SEQ_NUM_ENABLE); } else if (instance->adapter_type == VENTURA_SERIES) { - io_request->RaidContext.raid_context_g35.nseg_type |= - (1 << RAID_CONTEXT_NSEG_SHIFT); - io_request->RaidContext.raid_context_g35.nseg_type |= - (MPI2_TYPE_CUDA << RAID_CONTEXT_TYPE_SHIFT); - io_request->RaidContext.raid_context_g35.routing_flags |= - (1 << MR_RAID_CTX_ROUTINGFLAGS_SQN_SHIFT); + rctx_g35->nseg_type |= (1 << RAID_CONTEXT_NSEG_SHIFT); + rctx_g35->nseg_type |= (MPI2_TYPE_CUDA << RAID_CONTEXT_TYPE_SHIFT); + rctx_g35->routing_flags |= (1 << MR_RAID_CTX_ROUTINGFLAGS_SQN_SHIFT); io_request->IoFlags |= cpu_to_le16(MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH); } @@ -2819,11 +2814,9 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, scp->SCp.Status |= MEGASAS_LOAD_BALANCE_FLAG; cmd->pd_r1_lb = io_info.pd_after_lb; if (instance->adapter_type == VENTURA_SERIES) - io_request->RaidContext.raid_context_g35.span_arm - = io_info.span_arm; + rctx_g35->span_arm = io_info.span_arm; else - io_request->RaidContext.raid_context.span_arm - = io_info.span_arm; + rctx->span_arm = io_info.span_arm; } else scp->SCp.Status &= ~MEGASAS_LOAD_BALANCE_FLAG; @@ -2846,31 +2839,26 @@ megasas_build_ldio_fusion(struct megasas_instance *instance, /* populate the LUN field */ memcpy(io_request->LUN, raidLUN, 8); } else { - io_request->RaidContext.raid_context.timeout_value = + rctx->timeout_value = cpu_to_le16(local_map_ptr->raidMap.fpPdIoTimeoutSec); cmd->request_desc->SCSIIO.RequestFlags = (MEGASAS_REQ_DESCRIPT_FLAGS_LD_IO << MEGASAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); if (instance->adapter_type == INVADER_SERIES) { if (io_info.do_fp_rlbypass || - (io_request->RaidContext.raid_context.reg_lock_flags - == REGION_TYPE_UNUSED)) + (rctx->reg_lock_flags == REGION_TYPE_UNUSED)) cmd->request_desc->SCSIIO.RequestFlags = (MEGASAS_REQ_DESCRIPT_FLAGS_NO_LOCK << MEGASAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT); - io_request->RaidContext.raid_context.type - = MPI2_TYPE_CUDA; - io_request->RaidContext.raid_context.reg_lock_flags |= + rctx->type = MPI2_TYPE_CUDA; + rctx->reg_lock_flags |= (MR_RL_FLAGS_GRANT_DESTINATION_CPU0 | - MR_RL_FLAGS_SEQ_NUM_ENABLE); - io_request->RaidContext.raid_context.nseg = 0x1; + MR_RL_FLAGS_SEQ_NUM_ENABLE); + rctx->nseg = 0x1; } else if (instance->adapter_type == VENTURA_SERIES) { - io_request->RaidContext.raid_context_g35.routing_flags |= - (1 << MR_RAID_CTX_ROUTINGFLAGS_SQN_SHIFT); - io_request->RaidContext.raid_context_g35.nseg_type |= - (1 << RAID_CONTEXT_NSEG_SHIFT); - io_request->RaidContext.raid_context_g35.nseg_type |= - (MPI2_TYPE_CUDA << RAID_CONTEXT_TYPE_SHIFT); + rctx_g35->routing_flags |= (1 << MR_RAID_CTX_ROUTINGFLAGS_SQN_SHIFT); + rctx_g35->nseg_type |= (1 << RAID_CONTEXT_NSEG_SHIFT); + rctx_g35->nseg_type |= (MPI2_TYPE_CUDA << RAID_CONTEXT_TYPE_SHIFT); } io_request->Function = MEGASAS_MPI2_FUNCTION_LD_IO_REQUEST; io_request->DevHandle = cpu_to_le16(device_id); From patchwork Fri Oct 12 10:57:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638503 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5FD2614E2 for ; Fri, 12 Oct 2018 10:58:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4BF252B47D for ; Fri, 12 Oct 2018 10:58:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3D3452B481; Fri, 12 Oct 2018 10:58:38 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 E70672B47D for ; Fri, 12 Oct 2018 10:58:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728157AbeJLSa3 (ORCPT ); Fri, 12 Oct 2018 14:30:29 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:38407 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSa3 (ORCPT ); Fri, 12 Oct 2018 14:30:29 -0400 Received: by mail-ed1-f68.google.com with SMTP id c1-v6so11104024ede.5 for ; Fri, 12 Oct 2018 03:58:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JUE9nkjqSQQ1yADmzQqcJcVV2JzgB7i0rngshvDGYXc=; b=AC0byGek1j0w3uZdye1IdWYf8eAAj/qbFbf3qyxWWx/yDpoJtoIlgHsYeoIMg1588a xBvFQeuzsaLghXAJGWvAvIl82ibYlhZ05k/Qjh8ye02bLenN6+JqcXE+Tdt6erCeI9U4 q5dBzUl/aGxAXXJQO+uC0px7bKc1IkN7/JOFw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=JUE9nkjqSQQ1yADmzQqcJcVV2JzgB7i0rngshvDGYXc=; b=KwLHt+1HX+oOld5/8F9TkIhIFQ30qK0BzOWNBe4tsxUL6ddsObJCMwkB0svysZGvx0 s/duScw8rxkMHCvGh7p7kUSjlqHRzWU7McOEQl+Ax23H5yJGO+03LaggrBcEqlQPSw8W Hw0pY3sEI1pSAW4KuVNsJjrGervmTQ5vTFOd/PyDbwwqBBsw6uHyjFEgoxlH5GwgimwP rNfdWx1mT/6dZxFgjCbfOswDQLpVgltRm+qErcBQDeebeRUAXGeqWhoTqA3DWEUCRQvS 1vyP75t3cKPT69drSgUxo0L5btXB4Ahlutc1skZPkTsFdOKWl3DJKsh03BUvY/wR6/CD f/xA== X-Gm-Message-State: ABuFfogPkk3wFe2wuMwi0QV1PtVN2rWv5BEnatVwBheAbh6ryM1eQXr9 cw1qa3sNxHxsI29DnsUN0jc/pHHhsYN1Og== X-Google-Smtp-Source: ACcGV62tXxJXO96fBli2dIesCHEFqheGHgUYhHLIofcA65f492Uqcm/Pnzr6zVqzlTa9W9Eneb2E9A== X-Received: by 2002:aa7:d2d0:: with SMTP id k16-v6mr8291915edr.292.1539341915325; Fri, 12 Oct 2018 03:58:35 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:34 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 12/19] megaraid_sas: Remove spin lock for dpc operation Date: Fri, 12 Oct 2018 03:57:26 -0700 Message-Id: <1539341853-26814-13-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Optimization - No need to hold hba_lock in dpc context for reading atomic variable. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_fusion.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 774e1c619ab2..e4c47e9d994c 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -3573,18 +3573,13 @@ megasas_complete_cmd_dpc_fusion(unsigned long instance_addr) { struct megasas_instance *instance = (struct megasas_instance *)instance_addr; - unsigned long flags; u32 count, MSIxIndex; count = instance->msix_vectors > 0 ? instance->msix_vectors : 1; /* If we have already declared adapter dead, donot complete cmds */ - spin_lock_irqsave(&instance->hba_lock, flags); - if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) { - spin_unlock_irqrestore(&instance->hba_lock, flags); + if (atomic_read(&instance->adprecovery) == MEGASAS_HW_CRITICAL_ERROR) return; - } - spin_unlock_irqrestore(&instance->hba_lock, flags); for (MSIxIndex = 0 ; MSIxIndex < count; MSIxIndex++) complete_cmd_fusion(instance, MSIxIndex); From patchwork Fri Oct 12 10:57:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638505 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 114A0933 for ; Fri, 12 Oct 2018 10:58:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99D682B482 for ; Fri, 12 Oct 2018 10:58:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8DE222B487; Fri, 12 Oct 2018 10:58:45 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 B5BB52B482 for ; Fri, 12 Oct 2018 10:58:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728294AbeJLSae (ORCPT ); Fri, 12 Oct 2018 14:30:34 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:43490 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSae (ORCPT ); Fri, 12 Oct 2018 14:30:34 -0400 Received: by mail-ed1-f68.google.com with SMTP id y20-v6so11087343eds.10 for ; Fri, 12 Oct 2018 03:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZIPxzgJZwjQPkzi8mtBwkXQNcqvjc/nLeHbjD4ehi7c=; b=GtjOxz66X6k4Th1iSW3AZ3UXDu3LIgC3y3AmC9fYBE3mK59LGEbqwUtIEWXLgAWjik U5kY8sLtb0FVSELAAIukYxvo+l71d8WauvXjbihSoYvO+qxKVpJFv33/0sZu6ukRgw7C AED+lmnYkBlMjXjTG0EtQqEWk/7U39JvtLwcg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZIPxzgJZwjQPkzi8mtBwkXQNcqvjc/nLeHbjD4ehi7c=; b=Vuv4sBkHgiRrW78Lpg4P6Y2KJTffr/GplJ7m2gHe+VgL4bOKlT6RGV2jDkAMqBMqx4 DCuanyNVQ77dJ4JsJ9Rk75txkgavwd+sTBhVN2f0qnDNNMW3Bex24L61+xMn2GCSYwqs WG6qb+amHuaBr9Qtff27AIo/ac6h0KuPdUQGm75Ucd78uhC5q65otZVIcvPCNmuo0/WN MgD8vct9Y6uYBA+0oHrnbN1Q4F40uhduqOOaq3dlRmLUbI+ZZtR0mkeyuJ6HtaEofXdl Mj0aNqhQXm+lQlpgkS1dwGclrjrgk7R+ayLOXxCJc1P24Rwftu6Q94mvvSVGOmfuDdx2 tNJw== X-Gm-Message-State: ABuFfohP30h3lkMJ41Xm+GLtxHgY9noxgkAnRlpFJFOFSLonEPZlahGU eCpDWxvBm5ufkbAeHSCfAgqddfx9WUHxGA== X-Google-Smtp-Source: ACcGV63OjqQrNofhM3MUBjQ1QuzYdx56ZpDlr6IpTO/LmY+tR3KmUXBrHDJJ5cXOUYGXlq+r3zQAig== X-Received: by 2002:aa7:d3d4:: with SMTP id o20-v6mr8157347edr.193.1539341919032; Fri, 12 Oct 2018 03:58:39 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:38 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 13/19] megaraid_sas: Rename scratch_pad registers Date: Fri, 12 Oct 2018 03:57:27 -0700 Message-Id: <1539341853-26814-14-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 No functional change. Rename the scratch pad registers to match firmware headers. Signed-off-by: Sumit Saxena Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas.h | 9 +++---- drivers/scsi/megaraid/megaraid_sas_base.c | 40 +++++++++++++-------------- drivers/scsi/megaraid/megaraid_sas_fusion.c | 42 ++++++++++++++--------------- 3 files changed, 45 insertions(+), 46 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index ccf1aa629f69..2c044106c35f 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1606,11 +1606,10 @@ struct megasas_register_set { u32 reserved_3[3]; /*00A4h*/ - u32 outbound_scratch_pad ; /*00B0h*/ - u32 outbound_scratch_pad_2; /*00B4h*/ - u32 outbound_scratch_pad_3; /*00B8h*/ - u32 outbound_scratch_pad_4; /*00BCh*/ - + u32 outbound_scratch_pad_0; /*00B0h*/ + u32 outbound_scratch_pad_1; /*00B4h*/ + u32 outbound_scratch_pad_2; /*00B8h*/ + u32 outbound_scratch_pad_3; /*00BCh*/ u32 inbound_low_queue_port ; /*00C0h*/ diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 3cf9995c62ef..847f501ae4e3 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -595,7 +595,7 @@ megasas_disable_intr_ppc(struct megasas_instance *instance) static u32 megasas_read_fw_status_reg_ppc(struct megasas_register_set __iomem * regs) { - return readl(&(regs)->outbound_scratch_pad); + return readl(&(regs)->outbound_scratch_pad_0); } /** @@ -720,7 +720,7 @@ megasas_disable_intr_skinny(struct megasas_instance *instance) static u32 megasas_read_fw_status_reg_skinny(struct megasas_register_set __iomem *regs) { - return readl(&(regs)->outbound_scratch_pad); + return readl(&(regs)->outbound_scratch_pad_0); } /** @@ -865,7 +865,7 @@ megasas_disable_intr_gen2(struct megasas_instance *instance) static u32 megasas_read_fw_status_reg_gen2(struct megasas_register_set __iomem *regs) { - return readl(&(regs)->outbound_scratch_pad); + return readl(&(regs)->outbound_scratch_pad_0); } /** @@ -5300,7 +5300,7 @@ static int megasas_init_fw(struct megasas_instance *instance) { u32 max_sectors_1; u32 max_sectors_2, tmp_sectors, msix_enable; - u32 scratch_pad_2, scratch_pad_3, scratch_pad_4, status_reg; + u32 scratch_pad_1, scratch_pad_2, scratch_pad_3, status_reg; resource_size_t base_addr; struct megasas_register_set __iomem *reg_set; struct megasas_ctrl_info *ctrl_info = NULL; @@ -5396,9 +5396,9 @@ static int megasas_init_fw(struct megasas_instance *instance) fusion = instance->ctrl_context; if (instance->adapter_type == VENTURA_SERIES) { - scratch_pad_3 = - readl(&instance->reg_set->outbound_scratch_pad_3); - instance->max_raid_mapsize = ((scratch_pad_3 >> + scratch_pad_2 = + readl(&instance->reg_set->outbound_scratch_pad_2); + instance->max_raid_mapsize = ((scratch_pad_2 >> MR_MAX_RAID_MAP_SIZE_OFFSET_SHIFT) & MR_MAX_RAID_MAP_SIZE_MASK); } @@ -5409,17 +5409,17 @@ static int megasas_init_fw(struct megasas_instance *instance) if (msix_enable && !msix_disable) { int irq_flags = PCI_IRQ_MSIX; - scratch_pad_2 = readl - (&instance->reg_set->outbound_scratch_pad_2); + scratch_pad_1 = readl + (&instance->reg_set->outbound_scratch_pad_1); /* Check max MSI-X vectors */ if (fusion) { if (instance->adapter_type == THUNDERBOLT_SERIES) { /* Thunderbolt Series*/ - instance->msix_vectors = (scratch_pad_2 + instance->msix_vectors = (scratch_pad_1 & MR_MAX_REPLY_QUEUES_OFFSET) + 1; fw_msix_count = instance->msix_vectors; } else { - instance->msix_vectors = ((scratch_pad_2 + instance->msix_vectors = ((scratch_pad_1 & MR_MAX_REPLY_QUEUES_EXT_OFFSET) >> MR_MAX_REPLY_QUEUES_EXT_OFFSET_SHIFT) + 1; @@ -5443,7 +5443,7 @@ static int megasas_init_fw(struct megasas_instance *instance) } if (rdpq_enable) - instance->is_rdpq = (scratch_pad_2 & MR_RDPQ_MODE_OFFSET) ? + instance->is_rdpq = (scratch_pad_1 & MR_RDPQ_MODE_OFFSET) ? 1 : 0; fw_msix_count = instance->msix_vectors; /* Save 1-15 reply post index address to local memory @@ -5519,12 +5519,12 @@ static int megasas_init_fw(struct megasas_instance *instance) goto fail_init_adapter; if (instance->adapter_type == VENTURA_SERIES) { - scratch_pad_4 = - readl(&instance->reg_set->outbound_scratch_pad_4); - if ((scratch_pad_4 & MR_NVME_PAGE_SIZE_MASK) >= + scratch_pad_3 = + readl(&instance->reg_set->outbound_scratch_pad_3); + if ((scratch_pad_3 & MR_NVME_PAGE_SIZE_MASK) >= MR_DEFAULT_NVME_PAGE_SHIFT) instance->nvme_page_size = - (1 << (scratch_pad_4 & MR_NVME_PAGE_SIZE_MASK)); + (1 << (scratch_pad_3 & MR_NVME_PAGE_SIZE_MASK)); dev_info(&instance->pdev->dev, "NVME page size\t: (%d)\n", instance->nvme_page_size); @@ -6170,7 +6170,7 @@ megasas_set_dma_mask(struct megasas_instance *instance) { u64 consistent_mask; struct pci_dev *pdev; - u32 scratch_pad_2; + u32 scratch_pad_1; pdev = instance->pdev; consistent_mask = (instance->adapter_type == VENTURA_SERIES) ? @@ -6188,10 +6188,10 @@ megasas_set_dma_mask(struct megasas_instance *instance) * If 32 bit DMA mask fails, then try for 64 bit mask * for FW capable of handling 64 bit DMA. */ - scratch_pad_2 = readl - (&instance->reg_set->outbound_scratch_pad_2); + scratch_pad_1 = readl + (&instance->reg_set->outbound_scratch_pad_1); - if (!(scratch_pad_2 & MR_CAN_HANDLE_64_BIT_DMA_OFFSET)) + if (!(scratch_pad_1 & MR_CAN_HANDLE_64_BIT_DMA_OFFSET)) goto fail_set_dma_mask; else if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index e4c47e9d994c..881bcfdcfa80 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -262,10 +262,10 @@ megasas_fusion_update_can_queue(struct megasas_instance *instance, int fw_boot_c reg_set = instance->reg_set; - /* ventura FW does not fill outbound_scratch_pad_3 with queue depth */ + /* ventura FW does not fill outbound_scratch_pad_2 with queue depth */ if (instance->adapter_type < VENTURA_SERIES) cur_max_fw_cmds = - readl(&instance->reg_set->outbound_scratch_pad_3) & 0x00FFFF; + readl(&instance->reg_set->outbound_scratch_pad_2) & 0x00FFFF; if (dual_qdepth_disable || !cur_max_fw_cmds) cur_max_fw_cmds = instance->instancet->read_fw_status_reg(reg_set) & 0x00FFFF; @@ -974,7 +974,7 @@ megasas_ioc_init_fusion(struct megasas_instance *instance) struct megasas_header *frame_hdr; const char *sys_info; MFI_CAPABILITIES *drv_ops; - u32 scratch_pad_2; + u32 scratch_pad_1; ktime_t time; bool cur_fw_64bit_dma_capable; @@ -985,14 +985,14 @@ megasas_ioc_init_fusion(struct megasas_instance *instance) cmd = fusion->ioc_init_cmd; - scratch_pad_2 = readl - (&instance->reg_set->outbound_scratch_pad_2); + scratch_pad_1 = readl + (&instance->reg_set->outbound_scratch_pad_1); - cur_rdpq_mode = (scratch_pad_2 & MR_RDPQ_MODE_OFFSET) ? 1 : 0; + cur_rdpq_mode = (scratch_pad_1 & MR_RDPQ_MODE_OFFSET) ? 1 : 0; if (instance->adapter_type == INVADER_SERIES) { cur_fw_64bit_dma_capable = - (scratch_pad_2 & MR_CAN_HANDLE_64_BIT_DMA_OFFSET) ? true : false; + (scratch_pad_1 & MR_CAN_HANDLE_64_BIT_DMA_OFFSET) ? true : false; if (instance->consistent_mask_64bit && !cur_fw_64bit_dma_capable) { dev_err(&instance->pdev->dev, "Driver was operating on 64bit " @@ -1010,7 +1010,7 @@ megasas_ioc_init_fusion(struct megasas_instance *instance) goto fail_fw_init; } - instance->fw_sync_cache_support = (scratch_pad_2 & + instance->fw_sync_cache_support = (scratch_pad_1 & MR_CAN_HANDLE_SYNC_CACHE_OFFSET) ? 1 : 0; dev_info(&instance->pdev->dev, "FW supports sync cache\t: %s\n", instance->fw_sync_cache_support ? "Yes" : "No"); @@ -1642,7 +1642,7 @@ megasas_init_adapter_fusion(struct megasas_instance *instance) { struct megasas_register_set __iomem *reg_set; struct fusion_context *fusion; - u32 scratch_pad_2; + u32 scratch_pad_1; int i = 0, count; fusion = instance->ctrl_context; @@ -1659,20 +1659,20 @@ megasas_init_adapter_fusion(struct megasas_instance *instance) megasas_configure_queue_sizes(instance); - scratch_pad_2 = readl(&instance->reg_set->outbound_scratch_pad_2); - /* If scratch_pad_2 & MEGASAS_MAX_CHAIN_SIZE_UNITS_MASK is set, + scratch_pad_1 = readl(&instance->reg_set->outbound_scratch_pad_1); + /* If scratch_pad_1 & MEGASAS_MAX_CHAIN_SIZE_UNITS_MASK is set, * Firmware support extended IO chain frame which is 4 times more than * legacy Firmware. * Legacy Firmware - Frame size is (8 * 128) = 1K * 1M IO Firmware - Frame size is (8 * 128 * 4) = 4K */ - if (scratch_pad_2 & MEGASAS_MAX_CHAIN_SIZE_UNITS_MASK) + if (scratch_pad_1 & MEGASAS_MAX_CHAIN_SIZE_UNITS_MASK) instance->max_chain_frame_sz = - ((scratch_pad_2 & MEGASAS_MAX_CHAIN_SIZE_MASK) >> + ((scratch_pad_1 & MEGASAS_MAX_CHAIN_SIZE_MASK) >> MEGASAS_MAX_CHAIN_SHIFT) * MEGASAS_1MB_IO; else instance->max_chain_frame_sz = - ((scratch_pad_2 & MEGASAS_MAX_CHAIN_SIZE_MASK) >> + ((scratch_pad_1 & MEGASAS_MAX_CHAIN_SIZE_MASK) >> MEGASAS_MAX_CHAIN_SHIFT) * MEGASAS_256K_IO; if (instance->max_chain_frame_sz < MEGASAS_CHAIN_FRAME_SZ_MIN) { @@ -3737,7 +3737,7 @@ megasas_release_fusion(struct megasas_instance *instance) static u32 megasas_read_fw_status_reg_fusion(struct megasas_register_set __iomem *regs) { - return readl(&(regs)->outbound_scratch_pad); + return readl(&(regs)->outbound_scratch_pad_0); } /** @@ -4869,8 +4869,8 @@ void megasas_fusion_crash_dump(struct megasas_instance *instance) "crash dump and initiating OCR\n"); status_reg |= MFI_STATE_CRASH_DUMP_DONE; writel(status_reg, - &instance->reg_set->outbound_scratch_pad); - readl(&instance->reg_set->outbound_scratch_pad); + &instance->reg_set->outbound_scratch_pad_0); + readl(&instance->reg_set->outbound_scratch_pad_0); return; } megasas_alloc_host_crash_buffer(instance); @@ -4908,8 +4908,8 @@ void megasas_fusion_crash_dump(struct megasas_instance *instance) status_reg &= ~MFI_STATE_DMADONE; } - writel(status_reg, &instance->reg_set->outbound_scratch_pad); - readl(&instance->reg_set->outbound_scratch_pad); + writel(status_reg, &instance->reg_set->outbound_scratch_pad_0); + readl(&instance->reg_set->outbound_scratch_pad_0); msleep(MEGASAS_WAIT_FOR_NEXT_DMA_MSECS); status_reg = instance->instancet->read_fw_status_reg( @@ -4922,8 +4922,8 @@ void megasas_fusion_crash_dump(struct megasas_instance *instance) instance->fw_crash_buffer_size = instance->drv_buf_index; instance->fw_crash_state = AVAILABLE; instance->drv_buf_index = 0; - writel(status_reg, &instance->reg_set->outbound_scratch_pad); - readl(&instance->reg_set->outbound_scratch_pad); + writel(status_reg, &instance->reg_set->outbound_scratch_pad_0); + readl(&instance->reg_set->outbound_scratch_pad_0); if (!partial_copy) megasas_reset_fusion(instance->host, 0); } From patchwork Fri Oct 12 10:57:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638507 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8DAC814E2 for ; Fri, 12 Oct 2018 10:58:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7CC212B482 for ; Fri, 12 Oct 2018 10:58:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 70E3F2B5BE; Fri, 12 Oct 2018 10:58:47 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 26BC82B482 for ; Fri, 12 Oct 2018 10:58:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728297AbeJLSai (ORCPT ); Fri, 12 Oct 2018 14:30:38 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:40091 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSah (ORCPT ); Fri, 12 Oct 2018 14:30:37 -0400 Received: by mail-ed1-f67.google.com with SMTP id r1-v6so11100731edd.7 for ; Fri, 12 Oct 2018 03:58:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=w5UE3Vlu28hvKaM7vUESkySC+J5DYxSUUtB4jB5nPd0=; b=CCTsG1SyZLscWZfy3j7xt8qbmtqei8TvDTBseyMbU0xFioCVIPUdg3Wd7n5YO+B8mz Z5eOcXCVsPe4FxIuwSd8OywvJCNJ8mHlhRLsnbExNcyKQmoQFqN6KsvtHzat/gvrhrI0 KMp/qSZL8cTsXU28R1hi9n/5B9Lzg/YRRMmV0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=w5UE3Vlu28hvKaM7vUESkySC+J5DYxSUUtB4jB5nPd0=; b=GiM2Tkq4QwYTP+6JwUF7jkYQq05C2tU1yzWdVzV9nxDsqeY8dkX1EHnDJ14AHV/WxP bYuwZYIYlIrzI8EwKkmAMDSEircX+cksilNgYWYnr/5mnpnCqHraegozSKC0rB4abFLb aA7Na96XURIrzptMfaoj66xyN0rfp848ek/nmwaa7Qj/NtYymwUie1mfGtq8hSXeSMDt fJZ4tu2jnE27a6wZ8tOQ15FEi/rp3sT8cytwrx1mmRuFaFM5TaqbW0BgY9CHcVUHo6SH 6/5Q3kh+PLAv9zlgkofXNdJ+zQoTpv7UF2GtA0uM7UqBfNq78EBaLNBk3wlzLIOhDvyZ C1Mg== X-Gm-Message-State: ABuFfogq8z7hNl2hwkY21XUo6pLhuTe+BZnyAdVRVQdesppkwKZS86K9 a7I1o2zD7TiRihrUm4iZXnhsbXm4e0tO6Q== X-Google-Smtp-Source: ACcGV60Ygu66GGB5r2NUSjg7mR4BAtkCmyuzCRhVK/5OYVh6cFP2M9oRDZEYMgdSEziYyFwYQZXsgQ== X-Received: by 2002:a50:b3b7:: with SMTP id s52-v6mr8283545edd.251.1539341922789; Fri, 12 Oct 2018 03:58:42 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:41 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 14/19] megaraid_sas: Re-use max_mfi_cmds to calculate queue sizes Date: Fri, 12 Oct 2018 03:57:28 -0700 Message-Id: <1539341853-26814-15-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 In megasas_init_adapter_fusion(), max_mfi_cmds is being calcuated as (MEGASAS_FUSION_INTERNAL_CMDS + MEGASAS_FUSION_IOCTL_CMDS). max_mfi_cmds can be used in megasas_configure_queue_sizes. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_fusion.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 881bcfdcfa80..0a8b7167d05d 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -1564,9 +1564,7 @@ void megasas_configure_queue_sizes(struct megasas_instance *instance) else instance->max_mpt_cmds = instance->max_fw_cmds; - instance->max_scsi_cmds = instance->max_fw_cmds - - (MEGASAS_FUSION_INTERNAL_CMDS + - MEGASAS_FUSION_IOCTL_CMDS); + instance->max_scsi_cmds = instance->max_fw_cmds - instance->max_mfi_cmds; instance->cur_can_queue = instance->max_scsi_cmds; instance->host->can_queue = instance->cur_can_queue; From patchwork Fri Oct 12 10:57:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638509 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 89E5E933 for ; Fri, 12 Oct 2018 10:58:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 77EC92B482 for ; Fri, 12 Oct 2018 10:58:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6C0882B5BE; Fri, 12 Oct 2018 10:58:49 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 20FA92B482 for ; Fri, 12 Oct 2018 10:58:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728304AbeJLSak (ORCPT ); Fri, 12 Oct 2018 14:30:40 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:33808 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728157AbeJLSak (ORCPT ); Fri, 12 Oct 2018 14:30:40 -0400 Received: by mail-ed1-f68.google.com with SMTP id w19-v6so11103983eds.1 for ; Fri, 12 Oct 2018 03:58:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VxvnuSxMiDifcz5hlDSYSpuWxe8xt0OU12ev9k5MY1o=; b=EeI6UvhVl1GXGym66BcHMvnE/BRTD+y4GK4ouayuMI6vf7llVoDyZOoBGZmR4hNk6X RDXepRzoPal6SOrEkqVM/pLYqvv8bAC2L61Z/BYHyiQhGoUUszLiQJqshKC6DoOa1JLL 14lSSdZCmiw9KUH5w/ieyCoTl5ssM0zmsZrrA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VxvnuSxMiDifcz5hlDSYSpuWxe8xt0OU12ev9k5MY1o=; b=ImtwZdnN3ZdIl/ZHRPacJmhOYT1KcjjThJwkQ/QZe02VP37UKCocaidt4pXWwzT8lS 2PmYKh8C2PKw9S2hxMdCHzlXNrrCEJMQj4EscQYxFgeXuo1awrjVskUOr4JYDTKP70+H YbWSklb14dt2FcoQbCVCk4gNNkaduX7qb0qdhEWLWCg+HM9ATX2ofZ4j7y/iqoCysd4R EpShAqMh6/jNsFfsAT7ar4QbfOWCorgwRnJVV5Cn1ZZ/AsMnq9Gz8dg3yqhE+f9Ryjxa b2dg+se8mrnmRheEVs6ARiSA4XgWh2kRmlHVKeEMbtJQrUM3gToyTNLj1PiZAjuQcYgn 2ovw== X-Gm-Message-State: ABuFfogXb/ZofEi32HtK69AEHwxYN+YUmB61je0dRzBIeFLoT04hEJtX Rvmr5l7vdnBWhuLqMkYlyFjMvc+SUT660w== X-Google-Smtp-Source: ACcGV62LPl+/7oQmgiCNwr+yPBop20hKkPwxtrl0/jXWR0V/g9DCAQ159hRTsUnw8hFb7WtQrk0Fqw== X-Received: by 2002:a50:abc2:: with SMTP id u60-v6mr8223541edc.185.1539341926470; Fri, 12 Oct 2018 03:58:46 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:45 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 15/19] megaraid_sas: Remove double endian conversion Date: Fri, 12 Oct 2018 03:57:29 -0700 Message-Id: <1539341853-26814-16-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_fusion.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 0a8b7167d05d..76ea5dc656b1 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -1043,9 +1043,7 @@ megasas_ioc_init_fusion(struct megasas_instance *instance) frame_hdr = &cmd->frame->hdr; frame_hdr->cmd_status = 0xFF; - frame_hdr->flags = cpu_to_le16( - le16_to_cpu(frame_hdr->flags) | - MFI_FRAME_DONT_POST_IN_REPLY_QUEUE); + frame_hdr->flags |= cpu_to_le16(MFI_FRAME_DONT_POST_IN_REPLY_QUEUE); init_frame->cmd = MFI_CMD_INIT; init_frame->cmd_status = 0xFF; From patchwork Fri Oct 12 10:57:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638511 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A282C14E2 for ; Fri, 12 Oct 2018 10:58:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 92C772B482 for ; Fri, 12 Oct 2018 10:58:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 870E02B5BE; Fri, 12 Oct 2018 10:58:52 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 2D9932B482 for ; Fri, 12 Oct 2018 10:58:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728308AbeJLSan (ORCPT ); Fri, 12 Oct 2018 14:30:43 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:36338 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSan (ORCPT ); Fri, 12 Oct 2018 14:30:43 -0400 Received: by mail-ed1-f66.google.com with SMTP id c26-v6so11109794edt.3 for ; Fri, 12 Oct 2018 03:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kEbDT1sH8gUK08mWr+GquJz3qy2AojV3CGDdU2xtI30=; b=gYdwTghT5/Zkhq2d9aBnHi3EYSvkBvBbaerEzeulWJbnSCiGJgwiWwxxQlWAaXj3TX hk7jO1j6eDmY3hZRVGkwqIrYukudj3L/F24pLgBki4zUgnk/j5PUcAAczo2xU9lz/EM2 Ee5/3dxsCqiJ4njoF2GUl3ZIYHwb8wAR0umlc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=kEbDT1sH8gUK08mWr+GquJz3qy2AojV3CGDdU2xtI30=; b=XqB8ywf/unwh99xc4WhfcOxd7b9D1F98qGnNdQMFE8GS2CwctIkWZO/gQqQAgrmf9/ N4yYSvuapkFLqrBPQFgIG1VFYczd+r7AsyQSoNWyTI6G4HHholSHfefPkWJ6M0FW244k twB98hFE0p6G34iLIbtdxUPf8YxA4iX0/tp1Ykqcvj+FVprPQOiyrxE1Yhy1jSRWzfwI 1VwhzkMOZaXbfxOflwT7jLp+wt1wY2Xdcx7no/JkYvrYV+ovISFbV29OYjBP9/VoqeQ2 DzXaDmDWJAuBHkkT3nyzcqKWLkhIWms1XWIcYd/1xKwsSaYW7L9pvhvrG+bdlU3qNdp5 pkXA== X-Gm-Message-State: ABuFfohKwAv5sCxhDondtjtetH4U0Jz22ppTnf/ZcpDTgBPBCixpxAVx rrhO6YFzp0TIlg/2Lcqq8akRbora3Kwz3Q== X-Google-Smtp-Source: ACcGV63f0rx1CVy/y7TM1/HWKoQDy+MFqCO9AdNd3CDE2rkDyR1EROfMVZK3I071H/vJf4dDntfWgQ== X-Received: by 2002:a50:9247:: with SMTP id j7-v6mr8300785eda.124.1539341930135; Fri, 12 Oct 2018 03:58:50 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:49 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 16/19] megaraid_sas: increase timeout for IOC INIT to 180seconds Date: Fri, 12 Oct 2018 03:57:30 -0700 Message-Id: <1539341853-26814-17-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 IOC INIT frame needs to be fired with a timeout of 180seconds. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index 76ea5dc656b1..36fcfa5bc13d 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -1113,7 +1113,7 @@ megasas_ioc_init_fusion(struct megasas_instance *instance) megasas_fire_cmd_fusion(instance, &req_desc); - wait_and_poll(instance, cmd, MFI_POLL_TIMEOUT_SECS); + wait_and_poll(instance, cmd, MFI_IO_TIMEOUT_SECS); frame_hdr = &cmd->frame->hdr; if (frame_hdr->cmd_status != 0) { From patchwork Fri Oct 12 10:57:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638513 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B38B714E2 for ; Fri, 12 Oct 2018 10:58:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9DF8F2B482 for ; Fri, 12 Oct 2018 10:58:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9252E2B5BE; Fri, 12 Oct 2018 10:58:56 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 3AD6B2B482 for ; Fri, 12 Oct 2018 10:58:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728320AbeJLSar (ORCPT ); Fri, 12 Oct 2018 14:30:47 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:33394 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSar (ORCPT ); Fri, 12 Oct 2018 14:30:47 -0400 Received: by mail-ed1-f66.google.com with SMTP id l14-v6so2125977edq.0 for ; Fri, 12 Oct 2018 03:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dmg8f7pM6Qt5jK++y3fiSYIT4RKIU1uUVwAS+Helmt0=; b=ATLEQ1R68Wros9UMTPPyqiA/pAZzggphwa2EX1n5Xueu3/8ci7tUrtGXmPfuKEy7Pt Fw+++A45QjCPsoMR0hAgL5BXQxkXVkK4rTDcXCt2ekKFICgAoe5zaNWb/tQWjvwF1emj gWh9mZ2yOjrQIvUNW1FbkOrf82J2zjLp07LQI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=dmg8f7pM6Qt5jK++y3fiSYIT4RKIU1uUVwAS+Helmt0=; b=jv8g5RD4Za+uJbjUvz4KivxoebYczzk/iMOBiLo0JhqSB6uek1XAXuW+Ah/aVrkHlI lsuWZqW5W2rP6wSOHlRw+ErLmX0Cirqh6NSxe8JsniNXxYaZzUKC1jL9F5qnIRV8mo0k 5FptABsq1JDtx+6DUUVc5ZmnHPPCpH/fViqMl8Nyak/dSlSq8rqqabfMO6zxkaG4Klgn +t5TKs6/vs9ttCIZmu27LEDv8wdvIpPliRYEi3e5nsThTiVgKMAm1g/U1bGyfXym4NSG /mBGk1B7gojHayMU9snQ5ADe/kEicMIcAvn04rnNOnIDzNY++YVeowWXWX6VncZ89Pec Jyyw== X-Gm-Message-State: ABuFfoin9J0OPVkF9bvVk8fS9gsH92/NKLPlwabB15YxJaqzpc93Xhet rENjGQzzBT2iFhUSgq72SSnSECYOMH4DgQ== X-Google-Smtp-Source: ACcGV60tYTwNVHEMV6JvwkP8SwXW1jMXGd2QFV0XogE7kF8sZmyHFMYfSTroBgkCohPB46Ra5Vzh1g== X-Received: by 2002:a50:8d86:: with SMTP id r6-v6mr7846969edh.125.1539341933940; Fri, 12 Oct 2018 03:58:53 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:52 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 17/19] megaraid_sas: remove unused macro Date: Fri, 12 Oct 2018 03:57:31 -0700 Message-Id: <1539341853-26814-18-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 2c044106c35f..994c6ac6f920 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1499,7 +1499,6 @@ enum FW_BOOT_CONTEXT { #define MEGASAS_IOCTL_CMD 0 #define MEGASAS_DEFAULT_CMD_TIMEOUT 90 #define MEGASAS_THROTTLE_QUEUE_DEPTH 16 -#define MEGASAS_BLOCKED_CMD_TIMEOUT 60 #define MEGASAS_DEFAULT_TM_TIMEOUT 50 /* * FW reports the maximum of number of commands that it can accept (maximum From patchwork Fri Oct 12 10:57:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638515 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5AA73933 for ; Fri, 12 Oct 2018 10:59:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B94F2B5BE for ; Fri, 12 Oct 2018 10:59:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3FD422B938; Fri, 12 Oct 2018 10:59:00 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 E84592B482 for ; Fri, 12 Oct 2018 10:58:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728325AbeJLSav (ORCPT ); Fri, 12 Oct 2018 14:30:51 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:42722 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727652AbeJLSav (ORCPT ); Fri, 12 Oct 2018 14:30:51 -0400 Received: by mail-ed1-f67.google.com with SMTP id b7-v6so11080885edd.9 for ; Fri, 12 Oct 2018 03:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=s483qfrD/zASFJW/qahGq4Ubnu1CVkPm1pquMJs4K+g=; b=DwO6vAh71gc60zw4p9pptDyizqsUMAxoJkJAbsUhsUkUC5bDTJPs5ZSPZidLvff7L/ jxeuUP/Dd6h7PUIT7iba1lWmICWEZTsVnChQVSbW93v3C1pRyacLlvkknaT8WfnQafmg geJkvLXq7MBUdngXgBvX7uXVaWipDFL+4WtXY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=s483qfrD/zASFJW/qahGq4Ubnu1CVkPm1pquMJs4K+g=; b=f9UpA994vz/rpHwLkQCD/3F2aKbbLI1subwKVJ1rAXikYVdNJT9bAY/T8Ufjp+pmaW KWlkuF5GQIWKt0Dr1z5OYDfjEfatPt3g8UHQslNzIYcnK9QaqTEYx9vbJ0BIR8J7f17x y6D8p7vcDKM8i1fdU9+EObpP1Zeb04gawcnb6CeY6Xa+DSAE0Fjzy3BJs2fdgbk32Dg1 saqFmbLXyTUNPJNR7k495h4WHiRjL8FkcGZ4ntrDemAVi0fbaAtdJDZnFG00+zCMVAWD rsGLVrggK4vb5gt5F0IdndIgVZKe91dE8LxgL5y0/Nw0pxub/BxO63r9GOwAsntRPqE4 CImg== X-Gm-Message-State: ABuFfojkmFAmjr0G7PLbYgrMwDGH4e5CIPTpcu2LB5fzG6wMcs+N7V9J CDVLwcW1su/EYCkXIDsDtUvnD9+h/ZSa2g== X-Google-Smtp-Source: ACcGV62XsrxQzwJaKw6qKCztvqUpJuV9y8x2ha5gi5Kdw/IgeiAa77ZffQtMdaOGRAeWvtuijGwblg== X-Received: by 2002:a05:6402:382:: with SMTP id o2mr8283014edv.42.1539341937610; Fri, 12 Oct 2018 03:58:57 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:58:56 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 18/19] megaraid_sas: modify max supported lds related print Date: Fri, 12 Oct 2018 03:57:32 -0700 Message-Id: <1539341853-26814-19-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 The print related to number of VDs that a particular firmware supports is misleading in some cases. Even though supportMaxExtLDs is set, certain firmware profiles only supports upto 64VDs. Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas_base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 847f501ae4e3..544edfa2b50c 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -4633,9 +4633,9 @@ static void megasas_update_ext_vd_details(struct megasas_instance *instance) } dev_info(&instance->pdev->dev, - "firmware type\t: %s\n", - instance->supportmax256vd ? "Extended VD(240 VD)firmware" : - "Legacy(64 VD) firmware"); + "FW provided supportMaxExtLDs: %d\tmax_lds: %d\n", + instance->ctrl_info_buf->adapterOperations3.supportMaxExtLDs ? 1 : 0, + instance->ctrl_info_buf->max_lds); if (instance->max_raid_mapsize) { ventura_map_sz = instance->max_raid_mapsize * From patchwork Fri Oct 12 10:57:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivasharan S X-Patchwork-Id: 10638517 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 223A1933 for ; Fri, 12 Oct 2018 10:59:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1150B2B482 for ; Fri, 12 Oct 2018 10:59:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 05E142B5BE; Fri, 12 Oct 2018 10:59:04 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,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 A44722B482 for ; Fri, 12 Oct 2018 10:59:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728157AbeJLSaz (ORCPT ); Fri, 12 Oct 2018 14:30:55 -0400 Received: from mail-ed1-f43.google.com ([209.85.208.43]:35670 "EHLO mail-ed1-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727816AbeJLSaz (ORCPT ); Fri, 12 Oct 2018 14:30:55 -0400 Received: by mail-ed1-f43.google.com with SMTP id y19-v6so11107155edd.2 for ; Fri, 12 Oct 2018 03:59:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=X+qwa46Isi3HpUlGPfpFSjXHI2w6EcE/RYPqjwDesm0=; b=WAXCfDocWCzqjqFjBwxrKUmJXUavTDaVKzp0EgznRQfmoKrKxd9gpp/0xbKImiTjvR 44gXuAktZa/5MiCuAFergqXb/LK0YwMqJ6Jg4dkg5qaVTfrfMupto4CtTMIpLR8xcso+ jlCRejGIiSBohHFnfmQqk4Do4cu/0pRh7VzS0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=X+qwa46Isi3HpUlGPfpFSjXHI2w6EcE/RYPqjwDesm0=; b=XPPIsxx9nqG/5RkGMMLTd3xRiZysKIhR7lRCaO4JWdGrs4sx+zxABPasrShIYuZpO2 mSC/xd6t06PG6kS8prs/SUPzKbMKRPwDPZjBnr17yZvtfixZjFNuOwXgoWGfxDQIKEzm nSrjK/9JVn7PBX2yKqpq9trKzymhV90UXyuuHlK35ri2I3RmnRtzXFkoZeoC3QkLECIL tyMVIkA8UldHMniDNUCoyATxii0tQW2CK9H0IzMCHCqc8PKN82GIevAUJDNfsUpDbGXg aWOCamudjGh07ZFfitX4nA1z73hMqj+TQTmK6locuMC01e/jn8EiFu4sj5L3H68RVHMi v1DQ== X-Gm-Message-State: ABuFfoinXOBQdnqnG2u7VnLmn6FArISMky6tfrCNSaMuousqO5lJaZGD gw8H6sZY1Dfg1Addslbe8SWc6tX7SCAlwg== X-Google-Smtp-Source: ACcGV61S4MTQcmqK0Zy7j3zUPR+dxJnQfKv84LmdYers9nZWAMCzCSVppJx10XZQTym31ts+FWfXfw== X-Received: by 2002:a17:906:4e4d:: with SMTP id g13-v6mr6547807ejw.111.1539341941310; Fri, 12 Oct 2018 03:59:01 -0700 (PDT) Received: from dhcp-135-24-192-142.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id m25-v6sm451198edc.86.2018.10.12.03.58.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Oct 2018 03:59:00 -0700 (PDT) From: Shivasharan S To: linux-scsi@vger.kernel.org Cc: kashyap.desai@broadcom.com, sumit.saxena@broadcom.com, Shivasharan S Subject: [PATCH 19/19] megaraid_sas: Update driver version Date: Fri, 12 Oct 2018 03:57:33 -0700 Message-Id: <1539341853-26814-20-git-send-email-shivasharan.srikanteshwara@broadcom.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> References: <1539341853-26814-1-git-send-email-shivasharan.srikanteshwara@broadcom.com> 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 Signed-off-by: Shivasharan S --- drivers/scsi/megaraid/megaraid_sas.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 994c6ac6f920..8edba2227cd3 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -33,8 +33,8 @@ /* * MegaRAID SAS Driver meta data */ -#define MEGASAS_VERSION "07.706.03.00-rc1" -#define MEGASAS_RELDATE "May 21, 2018" +#define MEGASAS_VERSION "07.707.03.00-rc1" +#define MEGASAS_RELDATE "August 30, 2018" /* * Device IDs