From patchwork Thu Dec 13 23:17:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730067 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 839D591E for ; Thu, 13 Dec 2018 23:18:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76DA02CBD5 for ; Thu, 13 Dec 2018 23:18:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6B3652CEC9; Thu, 13 Dec 2018 23:18: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,FREEMAIL_FROM,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 0E0372CBD5 for ; Thu, 13 Dec 2018 23:18:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727604AbeLMXSP (ORCPT ); Thu, 13 Dec 2018 18:18:15 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:36051 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXSP (ORCPT ); Thu, 13 Dec 2018 18:18:15 -0500 Received: by mail-pf1-f196.google.com with SMTP id b85so1851733pfc.3 for ; Thu, 13 Dec 2018 15:18:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=FXjXJZ5xvZB5/rYQYZcCLag7b2iXjW9c1htRYlgJ0UM=; b=Ex8tGdZaf0CkmcF3gmN8PzwCESGImg4wPgGElbGIT39fXopFtQQA6jOmmc04YR7KGK K4nGQujSuMNmzTrz04uaPH+BFNXP9BO0UCqeBN1R6lMlNEKbrLGvLg6jg6GZJqakwGdb lOlEKr42J9lAnyCbuhc9J2RuFfqaoqhlhbCHN0UXT0ZMdeofn/zDf/6ROlVH26drAaPn rjn3Vo6i/FD5rdawnuNI1ygGGraW9QfIMG85rGqN/eWxsGpniehQKyLdXJS0L7DuRXkj YAc/lUrwLJuHJGcE00dojnGudp2bVYCboydkfadUYTJ4pbCQmLMhh+0ooVKvCaOCdzAm R1bw== 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=FXjXJZ5xvZB5/rYQYZcCLag7b2iXjW9c1htRYlgJ0UM=; b=REe5Gay8dmBZZ442g2qUuk7yh9UuqIKRfkFWhARTsy6eaaBSPycIe2mC28NFvwyhph 70WjaQHuUkTq7+ch1FsBy+SCAYjcgVrajZXqYxNxeG3Iqcb2xHsDHjrI/fKhpOWvk7l3 feNXxcM/GFCUCX7aeJqaRXWarXL+LGfirZbJTG0i7XTH7gqmrFsd+W3gEGewicEAc54z DJuZwMjoqz8Z58dencwz+xq1/WynfmjsUhHEBnvMtx8Xi0wmhW/mkGYSSHFWsWnia59v dkVuM2EkoilA3sUyRHQTscLWwvI+nmbLJMWg5i7M5dMp/q6HFUE2Atxl4kHPwKTanWb7 4AIw== X-Gm-Message-State: AA+aEWZ0xJ5zH1zUJT9110mfKICroM9rWS1VfetTHDdSiAuHW46JjR4G pY5SA7/3/enM9X1d0+6/z++Y7Yjv X-Google-Smtp-Source: AFSGD/UMplHEpDcPdX8frBfhb9iLA7qv+RyVNrLmxOxce1CkwvkrGpwdUyjX/sBpwevYoPmrIrKtQg== X-Received: by 2002:a62:4e83:: with SMTP id c125mr635626pfb.101.1544743094108; Thu, 13 Dec 2018 15:18:14 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:13 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 1/7] lpfc: Fix link state reporting for trunking when adapter is offline Date: Thu, 13 Dec 2018 15:17:52 -0800 Message-Id: <20181213231758.29630-2-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 If the adapter is taken offline, the trunk link port attributes continue to report trunk links as up even though all links are down as the adapter is offline. Clear the trunk links state as part of taking the adapter offline. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_hbadisc.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 91189e9c8530..4c1ba88b678a 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -888,9 +888,15 @@ lpfc_linkdown(struct lpfc_hba *phba) LPFC_MBOXQ_t *mb; int i; - if (phba->link_state == LPFC_LINK_DOWN) + if (phba->link_state == LPFC_LINK_DOWN) { + if (phba->sli4_hba.conf_trunk) { + phba->trunk_link.link0.state = 0; + phba->trunk_link.link1.state = 0; + phba->trunk_link.link2.state = 0; + phba->trunk_link.link3.state = 0; + } return 0; - + } /* Block all SCSI stack I/Os */ lpfc_scsi_dev_block(phba); @@ -901,6 +907,12 @@ lpfc_linkdown(struct lpfc_hba *phba) spin_unlock_irq(&phba->hbalock); if (phba->link_state > LPFC_LINK_DOWN) { phba->link_state = LPFC_LINK_DOWN; + if (phba->sli4_hba.conf_trunk) { + phba->trunk_link.link0.state = 0; + phba->trunk_link.link1.state = 0; + phba->trunk_link.link2.state = 0; + phba->trunk_link.link3.state = 0; + } spin_lock_irq(shost->host_lock); phba->pport->fc_flag &= ~FC_LBIT; spin_unlock_irq(shost->host_lock); From patchwork Thu Dec 13 23:17:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730069 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 A006091E for ; Thu, 13 Dec 2018 23:18:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 925002CBD5 for ; Thu, 13 Dec 2018 23:18:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 862642CEC9; Thu, 13 Dec 2018 23:18:18 +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,FREEMAIL_FROM,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 05F2A2CBD5 for ; Thu, 13 Dec 2018 23:18:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727706AbeLMXSR (ORCPT ); Thu, 13 Dec 2018 18:18:17 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:35920 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXSR (ORCPT ); Thu, 13 Dec 2018 18:18:17 -0500 Received: by mail-pg1-f195.google.com with SMTP id n2so1768849pgm.3 for ; Thu, 13 Dec 2018 15:18:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=mODSTVB1j1FWzLcAz8Qj/r5VQctrQgGjVuYbuSO388k=; b=RexBREXmJXETwQUlW4RMbZEDs8GaKR9idP7Bn45VX9uN5dQ+iKRpM7uQvyJPsR5o0o ym07YHq8N9UaZ7DOjLEQDKCIoEFP92aLt8g+U5JKCd6i5JFdM+o9HiTDuKMTN2k8RV0+ 2o2+5/XLjv3ibDl46inlbVOwHpXNriRRpw07YmpRAWk8w2C8fwB9TVMFZ1e5yU0/xlqW ozVm5Y0nJnNDmbD3CiVBbqMTvTxwWVv0G/VY3/4Pbnw+iE9WnFHYjG2kI6pEu0EFDGU2 CSeCzyMNs//s1L5PWUQjQBZi9kKbdVu9UQBt+1CLGwSDAXW2YYw8aQWLkDOv+KKWcb7P SLfA== 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=mODSTVB1j1FWzLcAz8Qj/r5VQctrQgGjVuYbuSO388k=; b=XxdbuCyGJJGCVhm+7XP4alGINT90ljNGYIJOul6W0SnFL/4piVIohIEF0bWdyhBWZT ehzxT5IBt979Sxux2z8mE3HsDBhvuFMccbDnDNmxRRyjSH3I+HINWJcssfD2/GrRbfif 0LGJO/AKeiewjBz8yLiNL5dbZINu43UsgiAd1nuhRfSI6lXbkXeOaeLBWZQNA3ID1Q1A Yr3xwd/vJNpcSwx1FDV14nXhXuTKE+hTRNHVewz4yK64Tejz28tYjthZiAjSs7ZmN93A Yw1+OqOl+2E7hc76UlgrbLjdaOzbKI0TYsPnKmPBHv30cd2Fv2qpmxcjxNDzp2XsXuao KGqA== X-Gm-Message-State: AA+aEWY63sF7tQ4z3+765ECEk8iEkyL4Zs3cx2ESS82gk/sTwzteJbiA NxFkWBX9YY19xOQ4Q4gqH6EnO5In X-Google-Smtp-Source: AFSGD/V9Vy5xgpV6XNyAF1p2i/Han/SFsNouqfcnmEpexcFp/J65jQeIKgEK4lCABLg8C7WI5VZb4g== X-Received: by 2002:a62:824c:: with SMTP id w73mr649791pfd.150.1544743096320; Thu, 13 Dec 2018 15:18:16 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:15 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 2/7] lpfc: Correct MDS loopback diagnostics support Date: Thu, 13 Dec 2018 15:17:53 -0800 Message-Id: <20181213231758.29630-3-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 existing MDS loopback diagnostics support processing received frames in the slowpath work thread. It caps the number of frames it will process at 64, before waiting for another event to indicate additional frame reception. The net-net is this results in very slow frame processing during loopback tests and sometimes orphans an io, causing the loopback test to report failure by the switch. Move MDS loopback frame processing out of the slow path worker thread and into the normal RQ processing routines. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_sli.c | 49 ++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 3826a32eec20..7074d59b4267 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -13487,6 +13487,8 @@ lpfc_sli4_sp_handle_abort_xri_wcqe(struct lpfc_hba *phba, return workposted; } +#define FC_RCTL_MDS_DIAGS 0xF4 + /** * lpfc_sli4_sp_handle_rcqe - Process a receive-queue completion queue entry * @phba: Pointer to HBA context object. @@ -13500,6 +13502,7 @@ static bool lpfc_sli4_sp_handle_rcqe(struct lpfc_hba *phba, struct lpfc_rcqe *rcqe) { bool workposted = false; + struct fc_frame_header *fc_hdr; struct lpfc_queue *hrq = phba->sli4_hba.hdr_rq; struct lpfc_queue *drq = phba->sli4_hba.dat_rq; struct lpfc_nvmet_tgtport *tgtp; @@ -13536,7 +13539,17 @@ lpfc_sli4_sp_handle_rcqe(struct lpfc_hba *phba, struct lpfc_rcqe *rcqe) hrq->RQ_buf_posted--; memcpy(&dma_buf->cq_event.cqe.rcqe_cmpl, rcqe, sizeof(*rcqe)); - /* save off the frame for the word thread to process */ + fc_hdr = (struct fc_frame_header *)dma_buf->hbuf.virt; + + if (fc_hdr->fh_r_ctl == FC_RCTL_MDS_DIAGS || + fc_hdr->fh_r_ctl == FC_RCTL_DD_UNSOL_DATA) { + spin_unlock_irqrestore(&phba->hbalock, iflags); + /* Handle MDS Loopback frames */ + lpfc_sli4_handle_mds_loopback(phba->pport, dma_buf); + break; + } + + /* save off the frame for the work thread to process */ list_add_tail(&dma_buf->cq_event.list, &phba->sli4_hba.sp_queue_event); /* Frame received */ @@ -16939,8 +16952,6 @@ lpfc_fc_frame_check(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr) struct fc_vft_header *fc_vft_hdr; uint32_t *header = (uint32_t *) fc_hdr; -#define FC_RCTL_MDS_DIAGS 0xF4 - switch (fc_hdr->fh_r_ctl) { case FC_RCTL_DD_UNCAT: /* uncategorized information */ case FC_RCTL_DD_SOL_DATA: /* solicited data */ @@ -16979,15 +16990,12 @@ lpfc_fc_frame_check(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr) goto drop; } -#define FC_TYPE_VENDOR_UNIQUE 0xFF - switch (fc_hdr->fh_type) { case FC_TYPE_BLS: case FC_TYPE_ELS: case FC_TYPE_FCP: case FC_TYPE_CT: case FC_TYPE_NVME: - case FC_TYPE_VENDOR_UNIQUE: break; case FC_TYPE_IP: case FC_TYPE_ILS: @@ -17817,6 +17825,7 @@ lpfc_sli4_mds_loopback_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, dma_pool_free(phba->lpfc_drb_pool, pcmd->virt, pcmd->phys); kfree(pcmd); lpfc_sli_release_iocbq(phba, cmdiocb); + lpfc_drain_txq(phba); } static void @@ -17830,14 +17839,23 @@ lpfc_sli4_handle_mds_loopback(struct lpfc_vport *vport, struct lpfc_dmabuf *pcmd = NULL; uint32_t frame_len; int rc; + unsigned long iflags; fc_hdr = (struct fc_frame_header *)dmabuf->hbuf.virt; frame_len = bf_get(lpfc_rcqe_length, &dmabuf->cq_event.cqe.rcqe_cmpl); /* Send the received frame back */ iocbq = lpfc_sli_get_iocbq(phba); - if (!iocbq) - goto exit; + if (!iocbq) { + /* Queue cq event and wakeup worker thread to process it */ + spin_lock_irqsave(&phba->hbalock, iflags); + list_add_tail(&dmabuf->cq_event.list, + &phba->sli4_hba.sp_queue_event); + phba->hba_flag |= HBA_SP_QUEUE_EVT; + spin_unlock_irqrestore(&phba->hbalock, iflags); + lpfc_worker_wake_up(phba); + return; + } /* Allocate buffer for command payload */ pcmd = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL); @@ -17922,6 +17940,14 @@ lpfc_sli4_handle_received_buffer(struct lpfc_hba *phba, /* Process each received buffer */ fc_hdr = (struct fc_frame_header *)dmabuf->hbuf.virt; + if (fc_hdr->fh_r_ctl == FC_RCTL_MDS_DIAGS || + fc_hdr->fh_r_ctl == FC_RCTL_DD_UNSOL_DATA) { + vport = phba->pport; + /* Handle MDS Loopback frames */ + lpfc_sli4_handle_mds_loopback(vport, dmabuf); + return; + } + /* check to see if this a valid type of frame */ if (lpfc_fc_frame_check(phba, fc_hdr)) { lpfc_in_buf_free(phba, &dmabuf->dbuf); @@ -17936,13 +17962,6 @@ lpfc_sli4_handle_received_buffer(struct lpfc_hba *phba, fcfi = bf_get(lpfc_rcqe_fcf_id, &dmabuf->cq_event.cqe.rcqe_cmpl); - if (fc_hdr->fh_r_ctl == 0xF4 && fc_hdr->fh_type == 0xFF) { - vport = phba->pport; - /* Handle MDS Loopback frames */ - lpfc_sli4_handle_mds_loopback(vport, dmabuf); - return; - } - /* d_id this frame is directed to */ did = sli4_did_from_fc_hdr(fc_hdr); From patchwork Thu Dec 13 23:17:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730071 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 07C6213AF for ; Thu, 13 Dec 2018 23:18:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE1102CBD5 for ; Thu, 13 Dec 2018 23:18:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E1DEE2CEC9; Thu, 13 Dec 2018 23:18:20 +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,FREEMAIL_FROM,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 D49CC2CBD5 for ; Thu, 13 Dec 2018 23:18:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728021AbeLMXST (ORCPT ); Thu, 13 Dec 2018 18:18:19 -0500 Received: from mail-pl1-f194.google.com ([209.85.214.194]:39280 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXST (ORCPT ); Thu, 13 Dec 2018 18:18:19 -0500 Received: by mail-pl1-f194.google.com with SMTP id 101so1778363pld.6 for ; Thu, 13 Dec 2018 15:18:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EAtG742O55wUpGdzapXby6PPH3qQi/D1kwX05CPA0CA=; b=svpZkQPzKspt+AaT7kbF9YuvLnCx+n16e/cku3onaUI3EhiSorcyG6KHJHTLLgRnkH bIhHV+F8FzM/y8yT2nnc3+fN5ZfriXAP9IV9OKobo4UJPGiAQ8qLGNB3jkCz9Vx7ep5y Kcw5dtq9gZvcu8DkgVIPGn58EwIiMEbjJ1VpmxOCxWNHQpRkMr3ii+L4mv0pPX5THPKO 9kYMuQcx9H82Atdx4AoBW/+KUOaXA2sUykKKKCmSC2RjxohUogpTOvxKf73epVaDLYDx La5FaKc3OfXwTW7TCoKyI8A6sDLHnq/icqCEnQ2YO0Hwle5+jydiTDemvURTeoLD+/7Q nNpg== 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=EAtG742O55wUpGdzapXby6PPH3qQi/D1kwX05CPA0CA=; b=B7sZ8/cukMJWY/g6RNpaqpNPuyi6NFWxgwczFCM7+E5sbCHCCucp1qAB7AdIv8Bs/c wrNj0QYM0mVxz5B5ErW6jmjNNeAzm+95lomwuKu4WNdOSIjNdGTPc9gYaQnMW+RC/PRi a7kQCI/6l+FC4/a0VTFvR5GofAfUR/O5YoGk9pG2nfL08vYPSxSFfQ7g56px1rNH5q9n 8jGV+NN5LAHyLZ+EwY+xCoGcfFd9MpfLsr1ZH7VhQ6z1bu6KI2iOxHxl8IH0omm+nf+s 9tr2spRFQIe3anfs9mdB+KFok5xYxoBlBxfmG41txrUdXVEc4druX6l5IIxDJnM/+OtG +dtg== X-Gm-Message-State: AA+aEWYG96i2UZe+tOP93HfYsyR4/Lwa9tNLuIRBfro926mYNhdOZ3VG nRuAeFiaEGQhChDgY0sGUffnEiYv X-Google-Smtp-Source: AFSGD/XG5m7EME07Lmr8hg9WgsqIdXZv/afJU3FsTT602XDBhcxAxU/m+DyG47byImZkc7jczD5OIQ== X-Received: by 2002:a17:902:a5ca:: with SMTP id t10mr669395plq.139.1544743098482; Thu, 13 Dec 2018 15:18:18 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:18 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 3/7] lpfc: update fault value on successful trunk events. Date: Thu, 13 Dec 2018 15:17:54 -0800 Message-Id: <20181213231758.29630-4-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 Currently, when a trunk link goes down due to some fault, the driver snapshots the fault code. If the link then comes back up, meaning there is no fault, the driver is not clearing the fault code so the sysfs link_state entry reports old/stale data. Revise the logic so that on successful link up the fault code is cleared. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_init.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index c56ef73463f2..2b8baf190165 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -4707,29 +4707,25 @@ lpfc_update_trunk_link_status(struct lpfc_hba *phba, phba->trunk_link.link0.state = bf_get(lpfc_acqe_fc_la_trunk_link_status_port0, acqe_fc) ? LPFC_LINK_UP : LPFC_LINK_DOWN; - if (port_fault & 0x1) - phba->trunk_link.link0.fault = err; + phba->trunk_link.link0.fault = port_fault & 0x1 ? err : 0; } if (bf_get(lpfc_acqe_fc_la_trunk_config_port1, acqe_fc)) { phba->trunk_link.link1.state = bf_get(lpfc_acqe_fc_la_trunk_link_status_port1, acqe_fc) ? LPFC_LINK_UP : LPFC_LINK_DOWN; - if (port_fault & 0x2) - phba->trunk_link.link1.fault = err; + phba->trunk_link.link1.fault = port_fault & 0x2 ? err : 0; } if (bf_get(lpfc_acqe_fc_la_trunk_config_port2, acqe_fc)) { phba->trunk_link.link2.state = bf_get(lpfc_acqe_fc_la_trunk_link_status_port2, acqe_fc) ? LPFC_LINK_UP : LPFC_LINK_DOWN; - if (port_fault & 0x4) - phba->trunk_link.link2.fault = err; + phba->trunk_link.link2.fault = port_fault & 0x4 ? err : 0; } if (bf_get(lpfc_acqe_fc_la_trunk_config_port3, acqe_fc)) { phba->trunk_link.link3.state = bf_get(lpfc_acqe_fc_la_trunk_link_status_port3, acqe_fc) ? LPFC_LINK_UP : LPFC_LINK_DOWN; - if (port_fault & 0x8) - phba->trunk_link.link3.fault = err; + phba->trunk_link.link3.fault = port_fault & 0x8 ? err : 0; } lpfc_printf_log(phba, KERN_ERR, LOG_SLI, From patchwork Thu Dec 13 23:17:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730073 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 74FD713AF for ; Thu, 13 Dec 2018 23:18:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 683D12CBD5 for ; Thu, 13 Dec 2018 23:18:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5C9602CEC9; Thu, 13 Dec 2018 23:18:22 +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,FREEMAIL_FROM,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 F36122CBD5 for ; Thu, 13 Dec 2018 23:18:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728184AbeLMXSV (ORCPT ); Thu, 13 Dec 2018 18:18:21 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:44211 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXSV (ORCPT ); Thu, 13 Dec 2018 18:18:21 -0500 Received: by mail-pl1-f196.google.com with SMTP id e11so1129320plt.11 for ; Thu, 13 Dec 2018 15:18:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=QtPTLAKyDf7YSKsX6wnhw4autKhIdKoUIiJVvEPRnMI=; b=rRL6P4ympLgDN9690UTrVianVxvuA890wEpUBqHOdnHDGrfZZSJJAhlSIHZgfnCLo1 u98Ep+MdUpiTgrghIVJbiENGSdHDRc5hzLtO+zhud6UAbK1Y9J6Cxnc9khoL7slDl9lm mbUSnRrVkwWFBKCCKhHucK9Y6T5AikQ2vwFrnFZUUtWou1xq4ZYwX7JwlH0nrebvRNDd Xdpn3zYC433Ma3jQ38nQF70pQEXvfM1tH5zLLJITHYRKXjPvYms6N7DFJvdyxGZg3drV z39OCe+iHdtrENjLuLYAZkIbdW/p1K6/DK0m5kyt/rDbLyny5BrFY5xkvgeksUkylJnV CySQ== 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=QtPTLAKyDf7YSKsX6wnhw4autKhIdKoUIiJVvEPRnMI=; b=D84Qq1UvjijHXjs+xdcGZzD/W6h3BQM+zj3gYxdch0J+WeRV/AQxhh8MbwD9j2F18r krBQy8816fgXYMXOirMh/GAXNir0Val00Dvp7WzqTD860qWDRO0vV4pLrB1YazoRYZHp bn4RyQ3nBYb/NNIxGfp3MxOSt88m1vZH5zKefsPf820/ZjPZDhrzA/HMyzdd/4q3yu+U OGW/v29BALXYUWq6nVOCp3zGifIYMODAA9GNeRk3Jf9X2jzQmeA6BrSkplY20z4z9yx8 6ABsGr2/dogTlfQrYmz1tEttwCsS6UEwyp/mFtZA7hb3X0yAfPaY0inYNJQtNeCepxFU O6HA== X-Gm-Message-State: AA+aEWaR5ZYMHecZXxaR5aGkVzRY2sQHzjOsY6lXvKoVB3ft5QaSwpSs B2D+OrXp1pm1JEhIfr5ZPUsqcuiI X-Google-Smtp-Source: AFSGD/XQLqOTWFTrlkYprJ7fErDItOMAPQBcJ7so09uP/zOYac4Yd1VLXEOraVGrLoxSdw91n7NBew== X-Received: by 2002:a17:902:5982:: with SMTP id p2mr676683pli.39.1544743100608; Thu, 13 Dec 2018 15:18:20 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:20 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 4/7] lpfc: Fix discovery failure when PLOGI is defered Date: Thu, 13 Dec 2018 15:17:55 -0800 Message-Id: <20181213231758.29630-5-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 a target's link dropped an RSCN was received to communicate the change. The driver detected the loss of the target and issued and UNREG_RPI mailbox command. While that was being processed, another RSCN was received to communicate the port coming back. The driver deferred the PLOGI to the port until the mailbox command finishes. When the mailbox command completed it saw the pending port and called the routines to issue the PLOGI. However, it forgot to clear the UNREG_INP state flag, so the PLOGI xmt routine nooped the PLOGI request assuming it needed to wait for the mailbox command. At this point, login would never be re-attempted. Clear UNREG_INP before issuing the deferred PLOGI. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_hbadisc.c | 2 ++ drivers/scsi/lpfc/lpfc_sli.c | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 4c1ba88b678a..b183b882d506 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -4802,6 +4802,8 @@ lpfc_nlp_logo_unreg(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) ndlp->nlp_flag &= ~NLP_UNREG_INP; ndlp->nlp_defer_did = NLP_EVT_NOTHING_PENDING; lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); + } else { + ndlp->nlp_flag &= ~NLP_UNREG_INP; } } diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 7074d59b4267..1b7e53185e4e 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -2512,10 +2512,12 @@ lpfc_sli_def_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) if ((ndlp->nlp_flag & NLP_UNREG_INP) && (ndlp->nlp_defer_did != NLP_EVT_NOTHING_PENDING)) { + ndlp->nlp_flag &= ~NLP_UNREG_INP; ndlp->nlp_defer_did = NLP_EVT_NOTHING_PENDING; lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); + } else { + ndlp->nlp_flag &= ~NLP_UNREG_INP; } - ndlp->nlp_flag &= ~NLP_UNREG_INP; } pmb->ctx_ndlp = NULL; } @@ -2583,12 +2585,14 @@ lpfc_sli4_unreg_rpi_cmpl_clr(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) "NPort x%x Data: x%x %p\n", ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_defer_did, ndlp); + ndlp->nlp_flag &= ~NLP_UNREG_INP; ndlp->nlp_defer_did = NLP_EVT_NOTHING_PENDING; lpfc_issue_els_plogi( vport, ndlp->nlp_DID, 0); + } else { + ndlp->nlp_flag &= ~NLP_UNREG_INP; } - ndlp->nlp_flag &= ~NLP_UNREG_INP; } } } From patchwork Thu Dec 13 23:17:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730075 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 CEC4791E for ; Thu, 13 Dec 2018 23:18:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1D6B2CBD5 for ; Thu, 13 Dec 2018 23:18:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B63292CEC9; Thu, 13 Dec 2018 23:18: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,FREEMAIL_FROM,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 4968B2CBD5 for ; Thu, 13 Dec 2018 23:18:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728269AbeLMXSY (ORCPT ); Thu, 13 Dec 2018 18:18:24 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:44210 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXSX (ORCPT ); Thu, 13 Dec 2018 18:18:23 -0500 Received: by mail-pl1-f193.google.com with SMTP id e11so1129350plt.11 for ; Thu, 13 Dec 2018 15:18:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GA2TgFQpTLr72XbbOg6PIZVQP6B1TZFeHIrXBNJy1vE=; b=vVhMF7i3ts46A5tISaaal+kiucGcBZ6VfS6wBmwy6u/HZV2BD5AmuLjggDqDzp7fCa Li1CU56pomS9e9SeWDWQFWRLtlOeh1YgVANQJoLJns8goMqmHkS/XZTH+A+/M3m4lAZw oMn0A5OVl+GsxsxTSHi+B21NljpRMqyZWUfn6rTwpt5KB3DwMzB7rMhhgmMYO09liDnN N5YZd6xCKURhCJmWixvzJoVCMtIfYcjeO9Iauwtwklc5Ewem87Syxsn26FebJzJlnNOc 5vRjtzoQx1oy3jzNi4fNdzp69mQYFROpQrEQ5axWvCjHjFfVZDeBCO3JoQU5nc4kMKkW LQ2w== 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=GA2TgFQpTLr72XbbOg6PIZVQP6B1TZFeHIrXBNJy1vE=; b=G8P5072XKdVOtBTTVUGjUoa+t1uavUHwh/Yz7spus7pMhar6ek/ks8axz7mi9hKGt1 Fo6FcuzXS1Md57NXcd7wroPifk09+T2/7uqWh5PHfe6kUSi4AjVCFM+wU4mvG+0r6Yyc w9WHUfWbEgOeBX2Em4TFuZYG/Sgra4K9i/QFPDd323SqoNageZH4bVSTlrorDL3rJHne D5kmQLjrtSvUYfaHrcfJDCg5bgijHPzvA0kjjsxi0VqhQ6iUa5gCiTbfUJY5IQbL5S1p M6qz88S9grBkVd1issIIZJZqjKVFbKcHBJpLVm216DpaYj35kKtwFQcBsAqYKy6R1uXQ X65g== X-Gm-Message-State: AA+aEWbpXPmQ8ljkKi369dy45XEMK2dVxN7g62r8kyDhqLAXKQZZLrcw qkVG5fQ4Jz9swe1dMltVIM7mWO1u X-Google-Smtp-Source: AFSGD/UHpIRFcjYQRrluCp1dugmM8OYsvODMK0DfxKkLDTH1B8YNl3399QUU+2CiUM0V3MoUobOR8g== X-Received: by 2002:a17:902:7481:: with SMTP id h1mr663903pll.341.1544743102699; Thu, 13 Dec 2018 15:18:22 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:22 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 5/7] lpfc: Add log messages to aid in debugging fc4type discovery issues Date: Thu, 13 Dec 2018 15:17:56 -0800 Message-Id: <20181213231758.29630-6-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 Current messages report generic actions (like send GID_FT), but misses reporting for what protocol type the action is taken. Revise the messaes to reflect the FC4 protocol type being worked on. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_ct.c | 48 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index deef1a174165..552da8bf43e4 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c @@ -540,7 +540,17 @@ lpfc_ns_rsp_audit_did(struct lpfc_vport *vport, uint32_t Did, uint8_t fc4_type) struct lpfc_hba *phba = vport->phba; struct lpfc_nodelist *ndlp = NULL; struct Scsi_Host *shost = lpfc_shost_from_vport(vport); + char *str; + if (phba->cfg_ns_query == LPFC_NS_QUERY_GID_FT) + str = "GID_FT"; + else + str = "GID_PT"; + lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, + "6430 Process %s rsp for %08x type %x %s %s\n", + str, Did, fc4_type, + (fc4_type == FC_TYPE_FCP) ? "FCP" : " ", + (fc4_type == FC_TYPE_NVME) ? "NVME" : " "); /* * To conserve rpi's, filter out addresses for other * vports on the same physical HBAs. @@ -1049,6 +1059,13 @@ lpfc_cmpl_ct_cmd_gff_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, CTrsp = (struct lpfc_sli_ct_request *) outp->virt; fbits = CTrsp->un.gff_acc.fbits[FCP_TYPE_FEATURE_OFFSET]; + lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, + "6431 Process GFF_ID rsp for %08x " + "fbits %02x %s %s\n", + did, fbits, + (fbits & FC4_FEATURE_INIT) ? "Initiator" : " ", + (fbits & FC4_FEATURE_TARGET) ? "Target" : " "); + if (CTrsp->CommandResponse.bits.CmdRsp == be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) { if ((fbits & FC4_FEATURE_INIT) && @@ -1171,9 +1188,15 @@ lpfc_cmpl_ct_cmd_gft_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, CTrsp = (struct lpfc_sli_ct_request *)outp->virt; fc4_data_0 = be32_to_cpu(CTrsp->un.gft_acc.fc4_types[0]); fc4_data_1 = be32_to_cpu(CTrsp->un.gft_acc.fc4_types[1]); + lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, - "3062 DID x%06x GFT Wd0 x%08x Wd1 x%08x\n", - did, fc4_data_0, fc4_data_1); + "6432 Process GFT_ID rsp for %08x " + "Data %08x %08x %s %s\n", + did, fc4_data_0, fc4_data_1, + (fc4_data_0 & LPFC_FC4_TYPE_BITMASK) ? + "FCP" : " ", + (fc4_data_1 & LPFC_FC4_TYPE_BITMASK) ? + "NVME" : " "); ndlp = lpfc_findnode_did(vport, did); if (ndlp) { @@ -1504,6 +1527,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, struct ulp_bde64 *bpl; void (*cmpl) (struct lpfc_hba *, struct lpfc_iocbq *, struct lpfc_iocbq *) = NULL; + uint32_t *ptr; uint32_t rsp_size = 1024; size_t size; int rc = 0; @@ -1642,8 +1666,18 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, */ if ((phba->cfg_enable_fc4_type == LPFC_ENABLE_BOTH) || (phba->cfg_enable_fc4_type == LPFC_ENABLE_NVME)) - CtReq->un.rft.rsvd[0] = cpu_to_be32(0x00000100); + CtReq->un.rft.rsvd[0] = + cpu_to_be32(LPFC_FC4_TYPE_BITMASK); + ptr = (uint32_t *)CtReq; + lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, + "6433 Issue RFT (%s %s): %08x %08x %08x %08x " + "%08x %08x %08x %08x\n", + CtReq->un.rft.fcpReg ? "FCP" : " ", + CtReq->un.rft.rsvd[0] ? "NVME" : " ", + *ptr, *(ptr + 1), *(ptr + 2), *(ptr + 3), + *(ptr + 4), *(ptr + 5), + *(ptr + 6), *(ptr + 7)); cmpl = lpfc_cmpl_ct_cmd_rft_id; break; @@ -1718,6 +1752,14 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, else goto ns_cmd_free_bmpvirt; + ptr = (uint32_t *)CtReq; + lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, + "6434 Issue RFF (%s): %08x %08x %08x %08x " + "%08x %08x %08x %08x\n", + (context == FC_TYPE_NVME) ? "NVME" : "FCP", + *ptr, *(ptr + 1), *(ptr + 2), *(ptr + 3), + *(ptr + 4), *(ptr + 5), + *(ptr + 6), *(ptr + 7)); cmpl = lpfc_cmpl_ct_cmd_rff_id; break; } From patchwork Thu Dec 13 23:17:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730077 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 9035E13AF for ; Thu, 13 Dec 2018 23:18:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7EE3B2CBD5 for ; Thu, 13 Dec 2018 23:18:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 708F72CEC9; Thu, 13 Dec 2018 23:18: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,FREEMAIL_FROM,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 7EA272CBD5 for ; Thu, 13 Dec 2018 23:18:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728359AbeLMXS0 (ORCPT ); Thu, 13 Dec 2018 18:18:26 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:42911 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXS0 (ORCPT ); Thu, 13 Dec 2018 18:18:26 -0500 Received: by mail-pl1-f196.google.com with SMTP id y1so1767679plp.9 for ; Thu, 13 Dec 2018 15:18:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sCVmqEUfmlG8QAnB2MxF1AVJYWLJP3QDAzV1U77TRrE=; b=ck7ay59b4ICmwtG6y3lY4nOGuezITpId1oge88OegmoNOtBw1dLGzSykgud6+S2+mJ xBV2q/y4Qw0j3xRDyxQwg+U3sB8mW/ffCqJgimsc8QGqMY8deKmKW2Ffdjc5zS+Uv9P7 6eEw8MEqSeHXAwbVuZKbd7290CtbZtTcOhUSRElosnfxbdBST31tCAa1ZwLfoC/wNBFE l6xwMj0oLKGP6lKvZjYDFlLJyjN/v0sWGaOisX32ZOrVahnVpS3iLAeZb/5b+OSftbOf e3oX2Y8QoGJtwuXzt6i0sJid+/sIYrm6Ywcj5RxtlukJaTKnvP3Cv9qhkjNDwqcHTn8b Af3Q== 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=sCVmqEUfmlG8QAnB2MxF1AVJYWLJP3QDAzV1U77TRrE=; b=OQGRLf92IFHt64NkONvy9lDTq8QwYJPPvobkjlryvgagIv6H6sVbDrWY0ImoRxoYj1 ov+qCytftKTEVHQQ7yDvDMiZY1EkdjElNJmCIBG5/Oy6D377l8SXTvvz3N7ywC6afQvz xnsHGdXJBZgTDSooEO/gwp981yRCxIB2Mtq8cfUGnNYNpgHDuc/fXbn5q0UQga9pFI20 I++HcQw8Vq0ceIb9MFcDSElMVyfvujGY+xzuGDKEfFKALitSXW20cZXJ0KrOqIv2TJkH UZcWPclYhIB1zOZS2I15/1clb0my6NBayrUhLKvM2bM5Re1j201txGHb75lOKHhH/oug VYsw== X-Gm-Message-State: AA+aEWbfn27MJvtY6VNM7yeCXvvwXckXmt1ItXHQ03mBaxmQIF62w29H BxpdqZV7Rh1W23OzxmcjCn4SKFzy X-Google-Smtp-Source: AFSGD/XEsbzkRZHkyga8O5UZO7zvlOUhCTSGCyyRNGTHjwxdcc98g/Y7yG5FJLypAtvMTa0uJUzILQ== X-Received: by 2002:a17:902:690c:: with SMTP id j12mr686605plk.206.1544743104842; Thu, 13 Dec 2018 15:18:24 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:24 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 6/7] lpfc: Adding ability to reset chip via pci bus reset Date: Thu, 13 Dec 2018 15:17:57 -0800 Message-Id: <20181213231758.29630-7-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 This patch adds a "pci_bus_reset" option to the board_mode sysfs attribute. This option uses the pci_reset_bus() api to reset the PCIe link the adapter is on, which will reset the chip/adapter. Prior to issuing this option, all functions on the same chip must be placed in the offline state by the admin. After the reset, all of the instances may be brought online again. The primary purpose of this functionality is to support cases where firmware update required a chip reset but the admin did not want to reboot the machine in order to instantiate the firmware update. Sanity checks take place prior to the reset to ensure the adapter is the sole entity on the PCIe bus and that all functions are in the offline state. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_attr.c | 84 ++++++++++++++++++++++++++++- drivers/scsi/lpfc/lpfc_crtn.h | 1 + drivers/scsi/lpfc/lpfc_hw4.h | 12 +++++ drivers/scsi/lpfc/lpfc_scsi.c | 121 +++++++++++++++++++++++++++++++++++------- drivers/scsi/lpfc/lpfc_sli.c | 42 +++++++++++++-- 5 files changed, 233 insertions(+), 27 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index 513ac1be861f..4bae72cbf3f6 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c @@ -1192,6 +1192,82 @@ lpfc_do_offline(struct lpfc_hba *phba, uint32_t type) } /** + * lpfc_reset_pci_bus - resets PCI bridge controller's secondary bus of an HBA + * @phba: lpfc_hba pointer. + * + * Description: + * Issues a PCI secondary bus reset for the phba->pcidev. + * + * Notes: + * First walks the bus_list to ensure only PCI devices with Emulex + * vendor id, device ids that support hot reset, only one occurrence + * of function 0, and all ports on the bus are in offline mode to ensure the + * hot reset only affects one valid HBA. + * + * Returns: + * -ENOTSUPP, cfg_enable_hba_reset must be of value 2 + * -ENODEV, NULL ptr to pcidev + * -EBADSLT, detected invalid device + * -EBUSY, port is not in offline state + * 0, successful + */ +int +lpfc_reset_pci_bus(struct lpfc_hba *phba) +{ + struct pci_dev *pdev = phba->pcidev; + struct Scsi_Host *shost = NULL; + struct lpfc_hba *phba_other = NULL; + struct pci_dev *ptr = NULL; + int res; + + if (phba->cfg_enable_hba_reset != 2) + return -ENOTSUPP; + + if (!pdev) { + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, "8345 pdev NULL!\n"); + return -ENODEV; + } + + res = lpfc_check_pci_resettable(phba); + if (res) + return res; + + /* Walk the list of devices on the pci_dev's bus */ + list_for_each_entry(ptr, &pdev->bus->devices, bus_list) { + /* Check port is offline */ + shost = pci_get_drvdata(ptr); + if (shost) { + phba_other = + ((struct lpfc_vport *)shost->hostdata)->phba; + if (!(phba_other->pport->fc_flag & FC_OFFLINE_MODE)) { + lpfc_printf_log(phba_other, KERN_INFO, LOG_INIT, + "8349 WWPN = 0x%02x%02x%02x%02x" + "%02x%02x%02x%02x is not " + "offline!\n", + phba_other->wwpn[0], + phba_other->wwpn[1], + phba_other->wwpn[2], + phba_other->wwpn[3], + phba_other->wwpn[4], + phba_other->wwpn[5], + phba_other->wwpn[6], + phba_other->wwpn[7]); + return -EBUSY; + } + } + } + + /* Issue PCI bus reset */ + res = pci_reset_bus(pdev); + if (res) { + lpfc_printf_log(phba, KERN_ERR, LOG_INIT, + "8350 PCI reset bus failed: %d\n", res); + } + + return res; +} + +/** * lpfc_selective_reset - Offline then onlines the port * @phba: lpfc_hba pointer. * @@ -1618,6 +1694,9 @@ lpfc_board_mode_store(struct device *dev, struct device_attribute *attr, status = lpfc_sli4_pdev_reg_request(phba, LPFC_FW_RESET); else if (strncmp(buf, "dv_reset", sizeof("dv_reset") - 1) == 0) status = lpfc_sli4_pdev_reg_request(phba, LPFC_DV_RESET); + else if (strncmp(buf, "pci_bus_reset", sizeof("pci_bus_reset") - 1) + == 0) + status = lpfc_reset_pci_bus(phba); else if (strncmp(buf, "trunk", sizeof("trunk") - 1) == 0) status = lpfc_set_trunking(phba, (char *)buf + sizeof("trunk")); else @@ -5376,9 +5455,10 @@ LPFC_ATTR_R(nvme_io_channel, # lpfc_enable_hba_reset: Allow or prevent HBA resets to the hardware. # 0 = HBA resets disabled # 1 = HBA resets enabled (default) -# Value range is [0,1]. Default value is 1. +# 2 = HBA reset via PCI bus reset enabled +# Value range is [0,2]. Default value is 1. */ -LPFC_ATTR_R(enable_hba_reset, 1, 0, 1, "Enable HBA resets from the driver."); +LPFC_ATTR_RW(enable_hba_reset, 1, 0, 2, "Enable HBA resets from the driver."); /* # lpfc_enable_hba_heartbeat: Disable HBA heartbeat timer.. diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h index 6a8c5b804c2d..39f3fa988732 100644 --- a/drivers/scsi/lpfc/lpfc_crtn.h +++ b/drivers/scsi/lpfc/lpfc_crtn.h @@ -383,6 +383,7 @@ void lpfc_rq_buf_free(struct lpfc_hba *phba, struct lpfc_dmabuf *mp); int lpfc_link_reset(struct lpfc_vport *vport); /* Function prototypes. */ +int lpfc_check_pci_resettable(const struct lpfc_hba *phba); const char* lpfc_info(struct Scsi_Host *); int lpfc_scan_finished(struct Scsi_Host *, unsigned long); diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index 4e7fa3c44eee..c15b9b6fb840 100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h @@ -3850,6 +3850,9 @@ struct lpfc_mbx_wr_object { #define lpfc_wr_object_eof_SHIFT 31 #define lpfc_wr_object_eof_MASK 0x00000001 #define lpfc_wr_object_eof_WORD word4 +#define lpfc_wr_object_eas_SHIFT 29 +#define lpfc_wr_object_eas_MASK 0x00000001 +#define lpfc_wr_object_eas_WORD word4 #define lpfc_wr_object_write_length_SHIFT 0 #define lpfc_wr_object_write_length_MASK 0x00FFFFFF #define lpfc_wr_object_write_length_WORD word4 @@ -3860,6 +3863,15 @@ struct lpfc_mbx_wr_object { } request; struct { uint32_t actual_write_length; + uint32_t word5; +#define lpfc_wr_object_change_status_SHIFT 0 +#define lpfc_wr_object_change_status_MASK 0x000000FF +#define lpfc_wr_object_change_status_WORD word5 +#define LPFC_CHANGE_STATUS_NO_RESET_NEEDED 0x00 +#define LPFC_CHANGE_STATUS_PHYS_DEV_RESET 0x01 +#define LPFC_CHANGE_STATUS_FW_RESET 0x02 +#define LPFC_CHANGE_STATUS_PORT_MIGRATION 0x04 +#define LPFC_CHANGE_STATUS_PCI_RESET 0x05 } response; } u; }; diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index 14a62253b099..f4024058addb 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c @@ -4460,6 +4460,66 @@ lpfc_tskmgmt_def_cmpl(struct lpfc_hba *phba, } /** + * lpfc_check_pci_resettable - Walks list of devices on pci_dev's bus to check + * if issuing a pci_bus_reset is possibly unsafe + * @phba: lpfc_hba pointer. + * + * Description: + * Walks the bus_list to ensure only PCI devices with Emulex + * vendor id, device ids that support hot reset, and only one occurrence + * of function 0. + * + * Returns: + * -EBADSLT, detected invalid device + * 0, successful + */ +int +lpfc_check_pci_resettable(const struct lpfc_hba *phba) +{ + const struct pci_dev *pdev = phba->pcidev; + struct pci_dev *ptr = NULL; + u8 counter = 0; + + /* Walk the list of devices on the pci_dev's bus */ + list_for_each_entry(ptr, &pdev->bus->devices, bus_list) { + /* Check for Emulex Vendor ID */ + if (ptr->vendor != PCI_VENDOR_ID_EMULEX) { + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "8346 Non-Emulex vendor found: " + "0x%04x\n", ptr->vendor); + return -EBADSLT; + } + + /* Check for valid Emulex Device ID */ + switch (ptr->device) { + case PCI_DEVICE_ID_LANCER_FC: + case PCI_DEVICE_ID_LANCER_G6_FC: + case PCI_DEVICE_ID_LANCER_G7_FC: + break; + default: + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "8347 Invalid device found: " + "0x%04x\n", ptr->device); + return -EBADSLT; + } + + /* Check for only one function 0 ID to ensure only one HBA on + * secondary bus + */ + if (ptr->devfn == 0) { + if (++counter > 1) { + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "8348 More than one device on " + "secondary bus found\n"); + return -EBADSLT; + } + } + } + + return 0; +} + +/** * lpfc_info - Info entry point of scsi_host_template data structure * @host: The scsi host for which this call is being executed. * @@ -4473,32 +4533,53 @@ lpfc_info(struct Scsi_Host *host) { struct lpfc_vport *vport = (struct lpfc_vport *) host->hostdata; struct lpfc_hba *phba = vport->phba; - int len, link_speed = 0; - static char lpfcinfobuf[384]; + int link_speed = 0; + static char lpfcinfobuf[384]; + char tmp[384] = {0}; - memset(lpfcinfobuf,0,384); + memset(lpfcinfobuf, 0, sizeof(lpfcinfobuf)); if (phba && phba->pcidev){ - strncpy(lpfcinfobuf, phba->ModelDesc, 256); - len = strlen(lpfcinfobuf); - snprintf(lpfcinfobuf + len, - 384-len, - " on PCI bus %02x device %02x irq %d", - phba->pcidev->bus->number, - phba->pcidev->devfn, - phba->pcidev->irq); - len = strlen(lpfcinfobuf); + /* Model Description */ + scnprintf(tmp, sizeof(tmp), phba->ModelDesc); + if (strlcat(lpfcinfobuf, tmp, sizeof(lpfcinfobuf)) >= + sizeof(lpfcinfobuf)) + goto buffer_done; + + /* PCI Info */ + scnprintf(tmp, sizeof(tmp), + " on PCI bus %02x device %02x irq %d", + phba->pcidev->bus->number, phba->pcidev->devfn, + phba->pcidev->irq); + if (strlcat(lpfcinfobuf, tmp, sizeof(lpfcinfobuf)) >= + sizeof(lpfcinfobuf)) + goto buffer_done; + + /* Port Number */ if (phba->Port[0]) { - snprintf(lpfcinfobuf + len, - 384-len, - " port %s", - phba->Port); + scnprintf(tmp, sizeof(tmp), " port %s", phba->Port); + if (strlcat(lpfcinfobuf, tmp, sizeof(lpfcinfobuf)) >= + sizeof(lpfcinfobuf)) + goto buffer_done; } - len = strlen(lpfcinfobuf); + + /* Link Speed */ link_speed = lpfc_sli_port_speed_get(phba); - if (link_speed != 0) - snprintf(lpfcinfobuf + len, 384-len, - " Logical Link Speed: %d Mbps", link_speed); + if (link_speed != 0) { + scnprintf(tmp, sizeof(tmp), + " Logical Link Speed: %d Mbps", link_speed); + if (strlcat(lpfcinfobuf, tmp, sizeof(lpfcinfobuf)) >= + sizeof(lpfcinfobuf)) + goto buffer_done; + } + + /* PCI resettable */ + if (!lpfc_check_pci_resettable(phba)) { + scnprintf(tmp, sizeof(tmp), " PCI resettable"); + strlcat(lpfcinfobuf, tmp, sizeof(lpfcinfobuf)); + } } + +buffer_done: return lpfcinfobuf; } diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 1b7e53185e4e..fcb05ff0f1bb 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -19263,11 +19263,11 @@ lpfc_wr_object(struct lpfc_hba *phba, struct list_head *dmabuf_list, struct lpfc_mbx_wr_object *wr_object; LPFC_MBOXQ_t *mbox; int rc = 0, i = 0; - uint32_t shdr_status, shdr_add_status; + uint32_t shdr_status, shdr_add_status, shdr_change_status; uint32_t mbox_tmo; - union lpfc_sli4_cfg_shdr *shdr; struct lpfc_dmabuf *dmabuf; uint32_t written = 0; + bool check_change_status = false; mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); if (!mbox) @@ -19295,6 +19295,8 @@ lpfc_wr_object(struct lpfc_hba *phba, struct list_head *dmabuf_list, (size - written); written += (size - written); bf_set(lpfc_wr_object_eof, &wr_object->u.request, 1); + bf_set(lpfc_wr_object_eas, &wr_object->u.request, 1); + check_change_status = true; } else { wr_object->u.request.bde[i].tus.f.bdeSize = SLI4_PAGE_SIZE; @@ -19311,9 +19313,39 @@ lpfc_wr_object(struct lpfc_hba *phba, struct list_head *dmabuf_list, rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); } /* The IOCTL status is embedded in the mailbox subheader. */ - shdr = (union lpfc_sli4_cfg_shdr *) &wr_object->header.cfg_shdr; - shdr_status = bf_get(lpfc_mbox_hdr_status, &shdr->response); - shdr_add_status = bf_get(lpfc_mbox_hdr_add_status, &shdr->response); + shdr_status = bf_get(lpfc_mbox_hdr_status, + &wr_object->header.cfg_shdr.response); + shdr_add_status = bf_get(lpfc_mbox_hdr_add_status, + &wr_object->header.cfg_shdr.response); + if (check_change_status) { + shdr_change_status = bf_get(lpfc_wr_object_change_status, + &wr_object->u.response); + switch (shdr_change_status) { + case (LPFC_CHANGE_STATUS_PHYS_DEV_RESET): + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "3198 Firmware write complete: System " + "reboot required to instantiate\n"); + break; + case (LPFC_CHANGE_STATUS_FW_RESET): + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "3199 Firmware write complete: Firmware" + " reset required to instantiate\n"); + break; + case (LPFC_CHANGE_STATUS_PORT_MIGRATION): + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "3200 Firmware write complete: Port " + "Migration or PCI Reset required to " + "instantiate\n"); + break; + case (LPFC_CHANGE_STATUS_PCI_RESET): + lpfc_printf_log(phba, KERN_INFO, LOG_INIT, + "3201 Firmware write complete: PCI " + "Reset required to instantiate\n"); + break; + default: + break; + } + } if (rc != MBX_TIMEOUT) mempool_free(mbox, phba->mbox_mem_pool); if (shdr_status || shdr_add_status || rc) { From patchwork Thu Dec 13 23:17:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Smart X-Patchwork-Id: 10730079 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 A0C7C13AF for ; Thu, 13 Dec 2018 23:18:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 946D52CBD5 for ; Thu, 13 Dec 2018 23:18:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 883722CEC9; Thu, 13 Dec 2018 23:18:28 +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,FREEMAIL_FROM,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 3F73F2CBD5 for ; Thu, 13 Dec 2018 23:18:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728415AbeLMXS2 (ORCPT ); Thu, 13 Dec 2018 18:18:28 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:38603 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726236AbeLMXS1 (ORCPT ); Thu, 13 Dec 2018 18:18:27 -0500 Received: by mail-pg1-f195.google.com with SMTP id g189so1760977pgc.5 for ; Thu, 13 Dec 2018 15:18:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=jq0t5MDvgZ28qhTzDfkA83BMFNTOtemm0tcVJKX9QvU=; b=Jy2nJOPr4+KyblfF+o7Ijoce+WaEfVR822EbPnZrVwEH1x1G4cEMv6QAlLTsKnPn6G by5FoaglQB09gqrf2hGY1YcoDdd9EpFrUovEbruUun6s2a5CCFx1XUbqAEz1fQJx7cqn m0B2c5SbvRIF+2CVy4zm1iLY1a3On0t4qKzAPNlsWWHuO/kr4Hd2RjgzCFOZBczx1lnk 3vo251EBSjgcnoo05fFN1Oa9qZA5hlAGcQpPGKHEx/YL01veA6DngHS2eRJ6Q66mwUYL KzDabI9vSNqWzgcL/7r4DzNzVfeqnLX54f7vByq1vdXG0yvqrrTx+WimRdLCLAmuqAPj H1Tw== 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=jq0t5MDvgZ28qhTzDfkA83BMFNTOtemm0tcVJKX9QvU=; b=dZ4gHBVl64nSCoJ2JHGLOFAHdIwc3EabwrnS4LzceYGTemlc2uHQGON/v2VEsdSBeI M+aExfHtKVCUvaZlwuKER6a063l4fZRH3YieHbV+eSWbgdCBfE8Xw/xP0tvAj7dCcRAv T/hYuImNB/NZR9TC5VtkU23K4QxsFuNvfW2Pkl7mFGKq62030qbofzdPsNqmFidewYaP 4D4cGjT5dxUuddvzlzs+87KG4RmFpDXth2od2kDxKKuGSIfwsQtin2+Dr2CEfyHve2tR pG2yMABcqufU0Fj58f17JFL2miABzxhBZIbNKLKSoRLDVE3BIhTUp613w9XuQB9IIucZ Q8zQ== X-Gm-Message-State: AA+aEWbCy9zYn+VAiv3ZQnguNsATa+KX6r4sRTI7F29glF5SAUAA+ZFD Le6Noi5/yc+hq/tfXSzd9EUUjks7 X-Google-Smtp-Source: AFSGD/XBFwCcAIYvnuXa0fsd4e5D6f6s6TIILexigz3n877EnAKFTnG9WbwvgFav0NkahIT2h406nQ== X-Received: by 2002:a63:f047:: with SMTP id s7mr602244pgj.441.1544743106924; Thu, 13 Dec 2018 15:18:26 -0800 (PST) Received: from pallmd1.broadcom.com ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d25sm4409589pfe.40.2018.12.13.15.18.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 13 Dec 2018 15:18:26 -0800 (PST) From: James Smart To: linux-scsi@vger.kernel.org Cc: James Smart , Dick Kennedy Subject: [PATCH 7/7] lpfc: Update lpfc version to 12.0.0.10 Date: Thu, 13 Dec 2018 15:17:58 -0800 Message-Id: <20181213231758.29630-8-jsmart2021@gmail.com> X-Mailer: git-send-email 2.13.7 In-Reply-To: <20181213231758.29630-1-jsmart2021@gmail.com> References: <20181213231758.29630-1-jsmart2021@gmail.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 Update lpfc version to 12.0.0.10 Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h index 7b23895a7ed7..3f4398ffb567 100644 --- a/drivers/scsi/lpfc/lpfc_version.h +++ b/drivers/scsi/lpfc/lpfc_version.h @@ -20,7 +20,7 @@ * included with this package. * *******************************************************************/ -#define LPFC_DRIVER_VERSION "12.0.0.9" +#define LPFC_DRIVER_VERSION "12.0.0.10" #define LPFC_DRIVER_NAME "lpfc" /* Used for SLI 2/3 */