• Andrew Vasquez's avatar
    [SCSI] qla2xxx: defer topology discovery to DPC thread during initialization. · d19044c3
    Andrew Vasquez authored
    Modify intialization semantics:
    
    - perform basic hardware configuration only (as usual)
      - allocate resources
      - load and execute firmware
    
    - defer link (transport) negotiations to the DPC thread
      - again the code in qla2x00_initialize_adapter() to stall probe()
        completion was needed for legacy-style scanning.
      - DPC thread stalls until probe() complete.
    
    - before probe() completes, set DPC flags to perform loop-resync logic
      (similar to what's done during cable-insertion/removal).
    
    Benefits: user does not have to wait 20+ seconds in case the FC cable
    is unplugged during driver load, code consolidation (removal of
    redundant link negotiation logic during initialize_adaoter()), and
    finilly, the driver no longer needs to defer the fc_remote_port_add()
    calls to hold off lun-scanning prior to returning from the probe()
    function.
    Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    d19044c3
qla_os.c 68.6 KB