lkml.org 
[lkml]   [2015]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 079/130] qla2xxx: Mark port lost when we receive an RSCN for it.
    Date
    3.16.7-ckt17 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Chad Dupuis <chad.dupuis@qlogic.com>

    commit ef86cb2059a14b4024c7320999ee58e938873032 upstream.

    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Cc: Himanshu Madhani <himanshu.madhani@qlogic.com>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    drivers/scsi/qla2xxx/qla_isr.c | 17 ++++++++++++++++-
    1 file changed, 16 insertions(+), 1 deletion(-)

    diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
    index a56825c73c31..e87f4a62af0c 100644
    --- a/drivers/scsi/qla2xxx/qla_isr.c
    +++ b/drivers/scsi/qla2xxx/qla_isr.c
    @@ -573,8 +573,9 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
    struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
    struct device_reg_24xx __iomem *reg24 = &ha->iobase->isp24;
    struct device_reg_82xx __iomem *reg82 = &ha->iobase->isp82;
    - uint32_t rscn_entry, host_pid;
    + uint32_t rscn_entry, host_pid, tmp_pid;
    unsigned long flags;
    + fc_port_t *fcport = NULL;

    /* Setup to process RIO completion. */
    handle_cnt = 0;
    @@ -969,6 +970,20 @@ skip_rio:
    if (qla2x00_is_a_vp_did(vha, rscn_entry))
    break;

    + /*
    + * Search for the rport related to this RSCN entry and mark it
    + * as lost.
    + */
    + list_for_each_entry(fcport, &vha->vp_fcports, list) {
    + if (atomic_read(&fcport->state) != FCS_ONLINE)
    + continue;
    + tmp_pid = fcport->d_id.b24;
    + if (fcport->d_id.b24 == rscn_entry) {
    + qla2x00_mark_device_lost(vha, fcport, 0, 0);
    + break;
    + }
    + }
    +
    atomic_set(&vha->loop_down_timer, 0);
    vha->flags.management_server_logged_in = 0;


    \
     
     \ /
      Last update: 2015-09-04 16:01    [W:4.027 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site