1. 22 12月, 2010 3 次提交
    • J
      [SCSI] lpfc 8.3.19: Added support for ELS RRQ command · 19ca7609
      James Smart 提交于
      Added support for ELS RRQ command
      
      - Add new routine lpfc_set_rrq_active() to track XRI qualifier state.
      - Add new module parameter lpfc_enable_rrq to control RRQ operation.
      - Add logic to ELS RRQ completion handler and xri qualifier timeout
        to clear XRI qualifier state.
      - Use OX_ID from XRI_ABORTED_CQE for RRQ payload.
      - Tie abort and XRI_ABORTED_CQE andler to RRQ generation.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      19ca7609
    • J
      [SCSI] lpfc 8.3.19: Add SLI4 FC Discovery support · 76a95d75
      James Smart 提交于
      Add SLI4 FC Discovery support
      
      - Replace READ_LA and READ_LA64 with READ_TOPOLOGY mailbox command.
      - Converted the old READ_LA structure to use bf_set/get instead of bit fields.
      - Rename HBA_FCOE_SUPPORT flag to HBA_FCOE_MODE. Flag now indicates function
        is running as SLI-4 FC or FCoE port. Make sure flag reset each time
        READ_REV completed as it can dynamically change.
      - Removed BDE union in the READ_TOPOLOGY mailbox command and added a define to
        define the ALPA MAP SIZE. Added FC Code for async events.
      - Added code to support new 16G link speed.
      - Define new set of values to keep track of valid user settable link speeds.
      - Used new link speed definitions to define link speed max and bitmap.
      - Redefined FDMI Port sppeds to be hax values and added the 16G value.
      - Added new CQE trailer code for FC Events.
      - Add lpfc_issue_init_vfi and lpfc_init_vfi_cmpl routines.
      - Replace many calls to the initial_flogi routine with lpfc_issue_init_vfi.
      - Add vp and vpi fields to the INIT_VFI mailbox command.
      - Addapt lpfc_hba_init_link routine for SLI4 use.
      - Use lpfc_hba_init_link call from lpfc_sli4_hba_setup.
      - Add a check for FC mode to register the FCFI before init link.
      - Convert lpfc_sli4_init_vpi to be called without a vpi (get it from vport).
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      76a95d75
    • J
      [SCSI] lpfc 8.3.19: Fix critical errors and crashes · 63e801ce
      James Smart 提交于
      Fix critical errors and crashes
      
      - Replace LOF_SECURITY with LOG_SECURITY
      - When calculating diag test memory size, use full size with header.
      - Return LS_RJT with status=UNSUPPORTED on unrecognized ELS's
      - Correct NULL pointer dereference when lpfc_create_vport_work_array()
        returns NULL.
      - Added code to handle CVL when port is in LPFC_VPORT_FAILED state.
      - In lpfc_do_scr_ns_plogi, check the nodelist for FDMI_DID and reuse
        the resource.
      - Check for generic request 64 and calculate the sgl offset for the request
        and reply sgls, also calculate the xmit length using only the request bde.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      63e801ce
  2. 26 10月, 2010 3 次提交
    • J
      [SCSI] lpfc 8.3.18: Adapter Shutdown and Unregistration cleanup · 5af5eee7
      James Smart 提交于
      Adapter Shutdown and Unregistration cleanup
      
      - Correct the logic around hba shutdown. Prior to final reset, the
        driver must wait for all XRIs to return from the adapter. Added logic
        to poll, progressively slowing the poll rate as delay gets longer.
      - Correct behavior around the rsvd1 field in UNREG_RPI_ALL mailbox
        completion and final rpi cleanup.
      - Updated logic to move pending VPI registrations to their completion
        in cases where a CVL may be received while registration in progress.
      - Added unreg all rpi mailbox command before unreg vpi.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      5af5eee7
    • J
      [SCSI] lpfc 8.3.18: Add logic to detect last devloss timeout · a93ff37a
      James Smart 提交于
      Added driver logic to detect the last devloss timeout of remote nodes which
      was still in use of FCF. At that point, the driver should set the last
      in-use remote node devloss timeout flag if it was not already set and should
      perform proper action on the in-use FCF and recover of FCF from firmware,
      depending on the state the driver's FIP engine is in.
      
      Find eligible FCF through FCF table rescan or the next new FCF event when
      FCF table rescan turned out empty eligible FCF, and the successful flogi
      into an FCF shall clear the HBA_DEVLOSS_TMO flag, indicating the successful
      recovery from devloss timeout.
      
      [jejb: add delay.h include to lpfc_hbadisc.c to fix ppc compile]
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      a93ff37a
    • J
      [SCSI] lpfc 8.3.18: FC/FCoE Discovery fixes · 5ac6b303
      James Smart 提交于
      FC/FCoE Discovery fixes:
      
      - Call the lpfc_drain_txq only for SLI4 hba
      - In lpfc_cmpl_els_fdisc, fix code path that does not free IOCB.
      - Treated firmware matching FCF property with different index as error
      - Propagate error returns from lpfc_issue_els_flogi()
      - Refactored lpfc_unregister_unused_fcf() to create a post
        lpfc_dev_loss_tmo handler call for SLI-4 devices. Allows checking of
        fcf after last ndlp released so that fcf can be released if no longer
        in use.
      - Replaced individual FCF_XXXX_DISC flag clearing in lieu of aggregate
        FCF_DISCOVERY flag upon succesful completion of flogi.
      - Correct setting of altBbCredit value in sparams to correct issue with
        logins with remote loop-based devices.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      5ac6b303
  3. 08 10月, 2010 1 次提交
  4. 09 8月, 2010 1 次提交
  5. 07 8月, 2010 2 次提交
    • J
      [SCSI] lpfc 8.3.16: FCoE Discovery and Failover Fixes · 38b92ef8
      James Smart 提交于
      - Add support for re-reg'ing changed VPI w/o unregister VPI
      - Copy WWN and state from old nodelist when target DID change.
      - Clean up old nodelist rport and put the nodelist when target DID change.
      - Clear the VFI_REGISTERED flag when UNREG_VFI completes.
      - Made both checks of port_state against LPFC_FLOGI and LPFC_FDISC
        non-inclusive for ignoring CVL events.
      - Added logic to stop retrying of the ongoing PLOGI and FDISC if
        transitioned back to the FCF rediscovery state in reaction to CVL.
      - Removed the dependency of scanning of all the available FCF table
        entries for bulding round-robin bitmap.
      - Use the lpfc_sli4_fcf_rr_read_fcf_rec() in responding to
        individual New FCF found event.
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      38b92ef8
    • J
      [SCSI] lpfc 8.3.16: SLI Additions, updates, and code cleanup · bc73905a
      James Smart 提交于
      - Remove unneeded Endian swap for Block Guard IOCB response
      - Add a check for mailbox active before issuing the heartbeat command
      - Correct heartbeat last_completion updates to avoid unneeded heartbeats
      - Add Security crypto support to CONFIG_PORT mailbox command
      - Add fips level and fips spec revision sysfs parameters
      - Remove duplicate setting of ext_byte_len fields in lpfc_bsg_issue_mbox
      - Switch call to memcpy_toio to __write32_copy to prevent unaligned 64 bit copy
      - Change log message 0318 from an error to a warning as it is not an error
      - Patch an incorrect call to lpfc_drain_txq on SLI-3 functions
      Signed-off-by: NAlex Iannicelli <alex.iannicelli@emulex.com>
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      bc73905a
  6. 28 7月, 2010 7 次提交
  7. 12 4月, 2010 1 次提交
  8. 11 4月, 2010 3 次提交
  9. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  10. 03 3月, 2010 3 次提交
  11. 18 2月, 2010 2 次提交
  12. 09 2月, 2010 1 次提交
    • J
      [SCSI] lpfc 8.3.8: BugFixes: Discovery relates changes · 695a814e
      James Smart 提交于
      Discovery relates changes:
      - Separated VPI_REGISTERED state of physical port into VFI_REGISTERED and
        VPI_REGISTERED state so that driver can unregister physical port VPI
        independent of VFI.
      - Add code to unregister, re-init and re-register physical port VPI
        when physical port NportID change.
      - Add code to unregister and re-register VPI of a vport when its Nport
        ID change.
      - Add code in FDISC completion path to re-start FLOGI discovery when
        a FDISC complete with LOGIN_REQUIRED reason code.
      - Fix a memory leak in lpfc_init_vpi_cmpl
      - Add code to start a timer for vport to retry FDISC when CVL is received
        by a vport or physical port. If all Nports receive CVLs, then all timers
        are cancelled and a logical link level discovery will be started after
        one second.
      - Flush ELS commands after killing all delayed ELS commands.
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      695a814e
  13. 18 1月, 2010 1 次提交
  14. 05 1月, 2010 4 次提交
  15. 05 12月, 2009 7 次提交