commit e0eca63e342124cff4307eafb43908cab5b3cf88
Author: Vinayak Holikatti <vinholikatti@gmail.com>
Date:   Mon Feb 25 21:44:33 2013 +0530

    [SCSI] ufs: Separate PCI code into glue driver
    
    This patch separates PCI code from ufshcd.c and makes it as a
    core driver module and adds a new file ufshcd-pci.c as PCI glue
    driver.
    
    [jejb: strip __devinit and devexit_p()]
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
    Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
    Tested-by: Maya Erez <merez@codeaurora.org>
    Signed-off-by: Vinayak Holikatti <vinholikatti@gmail.com>
    Signed-off-by: Santosh Yaraganavi <santoshsy@gmail.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 3b1d05807a9a68c6d0580e9248247a774a4d3be6
Author: Vinayak Holikatti <vinholikatti@gmail.com>
Date:   Mon Feb 25 21:44:32 2013 +0530

    [SCSI] ufs: Segregate PCI Specific Code
    
    This patch segregates the PCI specific code in ufshcd.c to make it
    ready for splitting into core ufs driver and PCI glue driver. Also
    copyright header modification to remove extra warranty disclaim.
    
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
    Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
    Tested-by: Maya Erez <merez@codeaurora.org>
    Signed-off-by: Vinayak Holikatti <vinholikatti@gmail.com>
    Signed-off-by: Santosh Yaraganavi <santoshsy@gmail.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit bf07bdea0d6baea1c8ca9e2dbc278cb85fbc33e2
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Feb 22 10:23:54 2013 -0800

    [SCSI] scsi: fix lpfc build when wmb() is defined as mb()
    
    On architectures where wmb() is defined as mb(), a build error
    happens since there is also a variable named 'mb' in lpfc_sli.c's
    lpfc_sli_issue_mbox_s3() function.  Rename the variable to 'mbx'
    to prevent the build error.
    
    drivers/scsi/lpfc/lpfc_sli.c: error: called object 'mb' is not a function
    
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Acked-by: James Smart <james.smart@emulex.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 6781209e7621a900fe83b3c09b1a02ec1a947c75
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Thu Feb 21 12:04:53 2013 -0800

    [SCSI] storvsc: Handle dynamic resizing of the device
    
    Handle LUN size changes by re-scanning the device.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit c50bd4481707cef2a81c648f6e28e7a0a5f21129
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Thu Feb 21 12:04:52 2013 -0800

    [SCSI] storvsc: Restructure error handling code on command completion
    
    In preparation for handling additional sense codes, restructure and cleanup
    the error handling code in the command completion code path.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 3e8f4f4065901c8dfc51407e1984495e1748c090
Author: Olaf Hering <olaf@aepfle.de>
Date:   Thu Feb 21 12:04:51 2013 -0800

    [SCSI] storvsc: avoid usage of WRITE_SAME
    
    Set scsi_device->no_write_same because the host does not support it.
    Also blacklist WRITE_SAME to avoid (and log) accident usage.
    
    If the guest uses the ext4 filesystem, storvsc hangs while it prints
    these messages in an endless loop:
    ...
    [  161.459523] hv_storvsc vmbus_0_1: cmd 0x41 scsi status 0x2 srb status 0x6
    [  161.462157] sd 2:0:0:0: [sda]
    [  161.463135] Sense Key : No Sense [current]
    [  161.464983] sd 2:0:0:0: [sda]
    [  161.465899] Add. Sense: No additional sense information
    [  161.468211] hv_storvsc vmbus_0_1: cmd 0x41 scsi status 0x2 srb status 0x6
    [  161.475766] sd 2:0:0:0: [sda]
    [  161.476728] Sense Key : No Sense [current]
    [  161.478284] sd 2:0:0:0: [sda]
    [  161.479441] Add. Sense: No additional sense information
    ...
    
    This happens with a guest running on Windows Server 2012, but happens to
    work while running on Windows Server 2008. WRITE_SAME isnt really
    supported by both versions, so disable the command usage globally.
    
    Signed-off-by: Olaf Hering <olaf@aepfle.de>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 98f99a8ac8d92fef74b61e8dd25df934afbbf843
Author: Paul Bolle <pebolle@tiscali.nl>
Date:   Thu Feb 21 12:39:44 2013 +0100

    [SCSI] aacraid: suppress two GCC warnings
    
    Building src.o for a 32 bit system triggers two GCC warnings:
        drivers/scsi/aacraid/src.c: In function ‘aac_src_deliver_message’:
        drivers/scsi/aacraid/src.c:410:3: warning: right shift count >= width of type [enabled by default]
        drivers/scsi/aacraid/src.c:434:2: warning: right shift count >= width of type [enabled by default]
    
    These warnings are caused by a right shift of 32. Use upper_32_bits() to
    suppress them.
    
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Cc: Mahesh Rajashekhara <Mahesh_Rajashekhara@pmc-sierra.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit bcc48ffa4beb0db52bdca42dc3e5ce765c2ed8b5
Author: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Date:   Wed Feb 20 11:24:57 2013 -0600

    [SCSI] hpsa: check for dma_mapping_error in hpsa_passthru ioctls
    
    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit c1f63c8fe85a63ccf308909237216f55711e5434
Author: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Date:   Wed Feb 20 11:24:52 2013 -0600

    [SCSI] hpsa: reorganize error handling in hpsa_passthru_ioctl
    
    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit e2bea6df3261dac1ae400452ddab07babb4fc5f3
Author: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Date:   Wed Feb 20 11:24:46 2013 -0600

    [SCSI] hpsa: check for dma_mapping_error in hpsa_map_sg_chain_block
    
    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit a2dac136c40fe07861f8146434917031a8c301b1
Author: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Date:   Wed Feb 20 11:24:41 2013 -0600

    [SCSI] hpsa: Check for dma_mapping_error for all code paths using fill_cmd
    
    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit eceaae187d3bd457b3dba29c4f23bccda374db63
Author: Shuah Khan <shuah.khan@hp.com>
Date:   Wed Feb 20 11:24:34 2013 -0600

    [SCSI] hpsa: Check for dma_mapping_error in hpsa_map_one
    
    Signed-off-by: Shuah Khan <shuah.khan@hp.com>
    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 208afec4f3be8c51ad6eebe6611dd6d2ad2fa298
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Feb 11 22:03:18 2013 +0300

    [SCSI] dc395x: uninitialized variable in device_alloc()
    
    This bug was introduced back in bitkeeper days in 2003.  We use
    "dcb->dev_mode" before it has been initialized.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Oliver Neukum <oliver@neukum.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 4d24834dfd25f2dab5977241cd5a6662edde92f7
Author: Martin K. Petersen <martin.petersen@oracle.com>
Date:   Wed Sep 26 22:39:44 2012 -0400

    [SCSI] Fix range check in scsi_host_dif_capable()
    
    The range checking from fe542396 was bad. We would still end up walking
    beyond the array as Type 3 is defined to be 4 in the protection
    bitmask. Instead use ARRAY_SIZE() for the range check.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 9d2696e658ef4f209955ddaa987d43f1a1bd81a1
Author: K. Y. Srinivasan <kys@microsoft.com>
Date:   Wed Feb 6 05:15:28 2013 -0800

    [SCSI] storvsc: Initialize the sglist
    
    Properly initialize scatterlist before using it.
    
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 7887ea7f942770c2146dbcdfa2a85aa8de93df31
Author: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
Date:   Fri Feb 1 21:49:30 2013 +0530

    [SCSI] mpt2sas: Add support for OEM specific controller
    
    Defined SSDID & HW vendor brand strings. Added entries for SSDID within the
    function that prints the brand string.
    
    Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit bfae7820b87c61c5065338b55405b304d9890085
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Wed Jan 30 23:45:08 2013 -0600

    [SCSI] ipr: Fix oops while resetting an ipr adapter
    
    When resetting an ipr adapter, we use scsi_block_requests to
    block any new commands from scsi core, and then unblock after
    the reset. When hotplug removing an adapter, we shut it down
    and go through this same code, but we've seen issues with
    scsi_unblock_requests running after the adapter's memory has
    been freed. There is really no need to block/unblock when
    the adapter is being removed, so this patch skips the
    block/unblock and will immediately fail any commands that
    happen to make it to queuecommand while the adapter is
    being shutdown.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 4d7007b49d523d8f954ae047118d82c130f673ce
Author: Hiral Patel <hiralpat@cisco.com>
Date:   Tue Feb 12 17:01:02 2013 -0800

    [SCSI] fnic: Fnic Trace Utility
    
    Fnic Trace utility is a tracing functionality built directly into fnic driver
    to trace events. The benefit that trace buffer brings to fnic driver is the
    ability to see what it happening inside the fnic driver. It also provides the
    capability to trace every IO event inside fnic driver to debug panics, hangs
    and potentially IO corruption issues. This feature makes it easy to find
    problems in fnic driver and it also helps in tracking down strange bugs in a
    more manageable way. Trace buffer is shared across all fnic instances for
    this implementation.
    
    Signed-off-by: Hiral Patel <hiralpat@cisco.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 14eb5d905d16ecd33e5e3113eb44cfa2bb47e7d7
Author: Hiral Patel <hiralpat@cisco.com>
Date:   Tue Feb 12 17:01:01 2013 -0800

    [SCSI] fnic: New debug flags and debug log messages
    
    Added new fnic debug flags for identifying IO state at every stage of IO while
    debugging and also added more log messages for better debugging capability.
    
    Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
    Signed-off-by: Hiral Patel <hiralpat@cisco.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit a0bf1ca27b644c1c4b1f0ea2d81f99471b2549e8
Author: Hiral Patel <hiralpat@cisco.com>
Date:   Tue Feb 12 17:01:00 2013 -0800

    [SCSI] fnic: fnic driver may hit BUG_ON on device reset
    
    The issue was observed when LUN Reset is issued through IOCTL or sg_reset
    utility.
    
    fnic driver issues LUN RESET to firmware. On successful completion of device
    reset, driver cleans up all the pending IOs that were issued prior to device
    reset. These pending IOs are expected to be in ABTS_PENDING state. This works
    fine, when the device reset operation resulted from midlayer, but not when
    device reset was triggered from IOCTL path as the pending IOs were not in
    ABTS_PENDING state. execution path hits panic if the pending IO is not in
    ABTS_PENDING state.
    
    Changes:
    The fix replaces BUG_ON check in fnic_clean_pending_aborts() with marking
    pending IOs as ABTS_PENDING if they were not in ABTS_PENDING state and skips
    if they were already in ABTS_PENDING state. An extra check is added to validate
    the abort status of the commands after a delay of 2 * E_D_TOV using a
    helper function. The helper function returns 1 if it finds any pending IO in
    ABTS_PENDING state, belong to the LUN on which device reset was issued else 0.
    With this, device reset operation returns success only if the helper funciton
    returns 0, otherwise it returns failure.
    
    Other changes:
    - Removed code in fnic_clean_pending_aborts() that returns failure if it finds
      io_req NULL, instead of returning failure added code to continue with next io
    - Added device reset flags for debugging in fnic_terminate_rport_io,
      fnic_rport_exch_reset, and fnic_clean_pending_aborts
    
    Signed-off-by: Narsimhulu Musini <nmusini@cisco.com>
    Signed-off-by: Hiral Patel <hiralpat@cisco.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit cfe16d5da88896fc78d008c96d639cf9c90850a0
Author: Hiral Patel <hiralpat@cisco.com>
Date:   Tue Feb 12 17:00:59 2013 -0800

    [SCSI] fnic: Fix SGEs limit
    
    Driver allows IOs with more SGEs than max SGEs supported by Palo. The current
    max SGEs supported by the fnic driver is 1024. The current register settings
    on Palo supports a max of 256 only. Palo would return any IO with more than
    256 SGEs with an error indicating INVALID_SGLS. Fnic driver should limit the
    max supported SGLs in the driver to 256 to avoid this error.
    
    Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
    Signed-off-by: Hiral Patel <hiralpat@cisco.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 03298552cba38f7c805ed338826dc76c405465c7
Author: Hiral Patel <hiralpat@cisco.com>
Date:   Tue Feb 12 17:00:58 2013 -0800

    [SCSI] fnic: fixing issues in device and firmware reset code
    
    1. Handling overlapped firmware resets
         This fix serialize multiple firmware resets to avoid situation where fnic
         device fails to come up for link up event, when firmware resets are issued
         back to back. If there are overlapped firmware resets are issued,
         the firmware reset operation checks whether there is any firmware reset in
         progress, if so it polls for its completion in a loop with 100ms delay.
    
    2. Handling device reset timeout
         fnic_device_reset code has been modified to handle Device reset timeout:
         - Issue terminate on device reset timeout.
         - Introduced flags field (one of the scratch fields in scsi_cmnd).
         With this, device reset request would have DEVICE_RESET flag set for other
         routines to determine the type of the request.
         Also modified fnic_terminate_rport_io, fnic_rport_exch_rset, completion
         routines to handle SCSI commands with DEVICE_RESET flag.
    
    3. LUN/Device Reset hangs when issued through IOCTL using utilities like
       sg_reset.
         Each SCSI command is associated with a valid tag, fnic uses this tag to
         retrieve associated scsi command on completion. the LUN/Device Reset issued
         through IOCTL resulting into a SCSI command that is not associated with a
         valid tag. So fnic fails to retrieve associated scsi command on completion,
         which causes hang. This fix allocates tag, associates it with the
         scsi command and frees the tag, when the operation completed.
    
    4. Preventing IOs during firmware reset.
         Current fnic implementation allows IO submissions during firmware reset.
         This fix synchronizes IO submissions and firmware reset operations.
         It ensures that IOs issued to fnic prior to reset will be issued to the
         firmware before firmware reset.
    
    Signed-off-by: Narsimhulu Musini <nmusini@cisco.com>
    Signed-off-by: Hiral Patel <hiralpat@cisco.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit bfb4809f7fff2f2db3d0de41ea4f49fd3f2f0aa4
Author: Sakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com>
Date:   Mon Feb 4 12:10:02 2013 +0530

    [SCSI] pm80xx: fix for memory region free
    
    All memory regions are allocated based on variables total_len
    and alignment but free was based on element_size.
    
    Signed-off-by: Sakthivel K <DL.Team.PMC.SPC.Linux.open.source@pmcs.com>
    Signed-off-by: Anand Kumar S <DL.Team.PMC.SPC.Linux.open.source@pmcs.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 5eca4a67b803172eeee7684282348652f9261c5c
Author: adam radford <aradford@gmail.com>
Date:   Sat Feb 9 15:29:25 2013 -0800

    [SCSI] megaraid_sas: Version and Changelog update
    
    This patch updates the megaraid_sas driver version and updates
    Documentation/scsi/ChangeLog.megaraid_sas.
    
    Signed-off-by: Adam Radford <aradford@gmail.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 9c5ebd09e5092fdeffd079efd2b40afaa69dafb7
Author: adam radford <aradford@gmail.com>
Date:   Sat Feb 9 15:29:20 2013 -0800

    [SCSI] megaraid_sas: Dont load DevHandle unless FastPath enabled
    
    The following patch for megaraid_sas will fix an issue where the
    driver should not be loading the DevHandle unless FastPath is enabled.
     If FastPath was not enabled, this means the hardware raid map
    validation failed for some reason, or the map was corrupted, which
    could mean the DevHandle could be invalid.
    
    Signed-off-by: Adam Radford <aradford@gmail.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 046c9ec259d271e7988c7fbe80b8bddf3c8efdc4
Author: adam radford <aradford@gmail.com>
Date:   Sat Feb 9 15:29:15 2013 -0800

    [SCSI] megaraid_sas: Add 4k FastPath DIF support
    
    The following patch for megaraid_sas will allow Fastpath T10PI/DIF
    frame builds to work with 4k sector size.
    
    Signed-off-by: Adam Radford <aradford@gmail.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit f356bef134dda564fcbe3b41a5c7b932c1964326
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Fri Feb 8 01:58:04 2013 -0500

    [SCSI] qla2xxx: Wait for IDC complete event to finish loopback operation.
    
    Wait for the IDC complete AEN before returning the loopback operation back to
    the application to make sure the port is put back into normal operations.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit fe52f6e121a8e6b66a608b79deb1c383e08aa32f
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:58:03 2013 -0500

    [SCSI] qla2xxx: Integrate generic card temperature with mezz card temperature.
    
    Give priority to I2C thermal.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 6c3943cdb87f68a9dbb6d586f40b84622e803574
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Fri Feb 8 01:58:02 2013 -0500

    [SCSI] qla2xxx: Don't process state change aen for reset owner.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit bb4cf5b73b47fe78502b16bc3dc4af612aa37ad7
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Fri Feb 8 01:58:01 2013 -0500

    [SCSI] qla2xxx: Don't process RSCNs for a vport on the same physical adapter.
    
    Currently,the driver is processes RSCNs for each new NPIV ports that is created.
    Processing the RSCN includes a name server query to see what has changed at the
    name server side.  The name server query is performed by the physical port and
    each virtual port on the physical adapter (since the RSCN is passed to each
    virtual port for processing).  As the number of virtual ports being created
    increases, this causes a lot of traffic and busies the firmware.
    
    Processing the RSCN for a virtual port we already have a priori knowledge of is
    not necessary so check the 24-bit fabric ID of the RSCN entry and skip
    processing it if the RSCN is for a virtual port we already know about.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 3a11711ad00caebee07e262d188cea66f3473c38
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:58:00 2013 -0500

    [SCSI] qla2xxx: Add setting of driver version string for vendor application.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 90687a1e15b3c0361cdae1dcd3291907a7d34fe9
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:57:59 2013 -0500

    [SCSI] qla2xxx: Correction of comment in MBC opcode defines.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 4ac8d4ca5d8d3bb98072be2961dd2e937e05bb11
Author: Andrew Vasquez <andrew.vasquez@qlogic.com>
Date:   Fri Feb 8 01:57:58 2013 -0500

    [SCSI] qla2xxx: Correct list-iteration bug in Report-ID Acquisition codes.
    
    Code in qla24xx_report_id_acquisition() incorrectly assumed that
    upon completion of list iteration (with no match), the 'pos'
    (vp) variable passed to list_for_each_entry() would be set to
    NULL.  In this context, if the firmware were to return an
    unrecognized vp_idx, the follow-on assignments to vp-members
    could result in corruption of the structure.
    
    Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 827210ba2a368058c72cf93e66d7d8aeb55922eb
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:57:57 2013 -0500

    [SCSI] Revert "[SCSI] qla2xxx: Optimize existing port name server query matching."
    
    This reverts commit c0822b63ccbf3b019059f384c290b080cae859f1.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit e452ceb636c416a517ec1b5d964491fd0bda503e
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:57:56 2013 -0500

    [SCSI] Revert "[SCSI] qla2xxx: Avoid losing any fc ports when loop id's are exhausted."
    
    This reverts commit 4dc77c36f86c2dc4e3f483146d33b64d12c0da3f.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit f24b697ba499f971e84478f531de77ede9a2aac1
Author: Paul Bolle <pebolle@tiscali.nl>
Date:   Fri Feb 8 01:57:55 2013 -0500

    [SCSI] qla2xxx: silence two GCC warnings.
    
    Compiling qla_gs.o (part of the qla2xxx module) triggers two GCC
    warnings:
        drivers/scsi/qla2xxx/qla_gs.c: In function ‘qla2x00_fdmi_rhba’:
        drivers/scsi/qla2xxx/qla_gs.c:1339:7: warning: array subscript is above array bounds [-Warray-bounds]
        drivers/scsi/qla2xxx/qla_gs.c: In function ‘qla2x00_fdmi_register’:
        drivers/scsi/qla2xxx/qla_gs.c:1663:15: warning: array subscript is above array bounds [-Warray-bounds]
    
    It seems that the sequence of a strcpy followed by a strlen confuses GCC
    when it is keeping track of array bounds here. (It is not clear to me
    which array triggers this warning and by how much GCC thinks the
    subscript is above its bounds. Neither is it clear to me why comparable
    code in these two functions doesn't trigger this warning.)
    
    An easy way to silence these warnings is to use preprocessor macros and
    strncpy, as that apparently gives GCC enough information to keep track
    of array bounds.
    
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 1e63395ce04f6d64f67c64d87762d2b6d48ec4d4
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Fri Feb 8 01:57:54 2013 -0500

    [SCSI] qla2xxx: Update the copyright information.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 6c315553285533d6785ec313e437c3b3ab89ad47
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Fri Feb 8 01:57:53 2013 -0500

    [SCSI] qla2xxx: Display the lock owner on lock acquire failure.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 992357c6514398ab874198f5059c5e5024480f8c
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Fri Feb 8 01:57:52 2013 -0500

    [SCSI] qla2xxx: Move loopback mode reset after chip reset check.
    
    If we need to do a chip reset because of a serious loopback error don't try to
    reset the loopback mode on the port as the mailbox command will timeout.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 67b2a31f517a43631af218d146e39f4e502b3e83
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Fri Feb 8 01:57:51 2013 -0500

    [SCSI] qla2xxx: Extra loopback error handling for ISP83xx.
    
    Add the following error handling for loopback diagnostic mode with ISP83xx:
    
    1. If we do not receive an MBA_DCBX_COMPLETE after our initial set port
    configuration command, try to reset the port back into normal operation.
    If that fails, take a FCoE dump and then reset the chip.
    2. After completing the loopback diagnostic operation, if the reset of the port
    back into normal operation fails then reset the port so we take a FCoE dump
    and then reset the chip.
    3. When we receive an IDC notification and the requested operation is loopback
    extend the loop down timer so the link does not appear to down for an
    extended period of time.
    
    [jejb: fix checkpatch issue]
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit b00ee7d770abbe1e63df74eada0376c75ceb2daf
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Fri Feb 8 01:57:50 2013 -0500

    [SCSI] qla2xxx: Unload hangs after issuing BSG commands to vport.
    
    BSG code path increments ref count in the send path, but does not
    decrement in the return path leading to hang during unload of the
    driver.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 619d5a0ded06f6d46092205a68a92f7c3a01dd44
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Fri Feb 8 01:57:49 2013 -0500

    [SCSI] qla2xxx: Do MPI reset only for ISP81xx.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 61e1b269be20f2bd81d0e6a2ccdc42eca3a6f059
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:57:48 2013 -0500

    [SCSI] qla2xxx: Do link initialization on get loop id failure.
    
    To avoid continually doing ISP resets when get loop id fails to
    obtain the adapter loop id, first try to do a link initialization.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit e9454a883b3a26a63c3810f8e4f33c71e218728c
Author: Giridhar Malavali <giridhar.malavali@qlogic.com>
Date:   Fri Feb 8 01:57:47 2013 -0500

    [SCSI] qla2xxx: Update the FTP site references in the driver sources.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 1bcc46cb74d3ba7471eac57af8931ca1a03e7b36
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Fri Feb 8 01:57:46 2013 -0500

    [SCSI] qla2xxx: Reject loopback request if one is already in progress.
    
    If another function on the port has initiated a loopback operation do not
    process the current request.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 37f489b580929c542dddc4bb6389d3aeb9bd39be
Author: Joe Carnuccio <joe.carnuccio@qlogic.com>
Date:   Fri Feb 8 01:57:45 2013 -0500

    [SCSI] qla2xxx: Print thermal unsupported message.
    
    When the Read SFP mailbox command fails on the thermal device,
    print a message explaining that thermal is not supported.
    
    Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 552f3f9aca3b8aee5b1b52bece6771d3275ca744
Author: Masanari Iida <standby24x7@gmail.com>
Date:   Fri Feb 8 01:57:44 2013 -0500

    [SCSI] qla2xxx: Avoid null pointer dereference in shutdown routine.
    
    Signed-off-by: Masanari Iida <standby24x7@gmail.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit a865c50a64f1c0c27fc0be0652b6a352f537cb6f
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Fri Feb 8 01:57:43 2013 -0500

    [SCSI] qla2xxx: Get VPD information from common location for CNA.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 0b7e7c53307de217cfc7eeb036c9b8b013d67fcc
Author: Andrew Vasquez <andrew.vasquez@qlogic.com>
Date:   Fri Feb 8 01:57:42 2013 -0500

    [SCSI] qla2xxx: Correct race in loop_state assignment during reset handling.
    
    There's a subtle race in the loop/bus-reset handling whereby a
    VHA's loop-state can get incorrectly set to 'down' after the
    loop-reset and firmware's completion of link re-negotiation.  The
    original code incorrectly assumes that firmware AENs would arrive
    only after mailbox-command execution to initiate the link-flap.
    
    Here's a good case with the old code (AENs arrive after
    mailbox-command completion):
    
    	qla2xxx [0000:03:00.1]-8012:91: BUS RESET ISSUED nexus=91:0:4.
    	qla2xxx [0000:03:00.1]-287d:91: FCPort state transitioned from ONLINE to LOST - portid=010100.
    	qla2xxx [0000:03:00.1]-580e:91: Asynchronous P2P MODE received.
    	qla2xxx [0000:03:00.1]-287d:91: FCPort state transitioned from ONLINE to LOST - portid=010400.
    	qla2xxx [0000:03:00.1]-802b:91: BUS RESET SUCCEEDED nexus=91:0:4.
    	qla2xxx [0000:03:00.1]-480b:91: Reset marker scheduled.
    	qla2xxx [0000:03:00.1]-5812:91: Port database changed ffff 0006 0000.
    	qla2xxx [0000:03:00.1]-505f:91: Link is operational (4 Gbps).
    	qla2xxx [0000:03:00.1]-480c:91: Reset marker end.
    	qla2xxx [0000:03:00.1]-480f:91: Loop resync scheduled.
    	qla2xxx [0000:03:00.1]-8837:91: F/W Ready - OK.
    	qla2xxx [0000:03:00.1]-883a:91: fw_state=3 (7, 0, 0, 0) curr time=170b8f315.
    	qla2xxx [0000:03:00.1]-280e:91: HBA in F P2P topology.
    	qla2xxx [0000:03:00.1]-2812:91: qla2x00_configure_hba success
    	qla2xxx [0000:03:00.1]-2814:91: Configure loop -- dpc flags = 0x5260.
    
    notice how the 'Port database changed' (8014) arrived after the
    bus-reset handler completed 'BUS RESET SUCCEEDED'.
    
    Now, here's a failing case with the old code (AENs arrive before
    mailbox-command completion):
    
    	qla2xxx [0000:03:00.1]-8012:91: BUS RESET ISSUED nexus=91:0:0.
    	qla2xxx [0000:03:00.1]-580e:91: Asynchronous P2P MODE received.
    	qla2xxx [0000:03:00.1]-287d:91: FCPort state transitioned from ONLINE to LOST - portid=010100.
    	qla2xxx [0000:03:00.1]-287d:91: FCPort state transitioned from ONLINE to LOST - portid=010400.
    	qla2xxx [0000:03:00.1]-4800:91: DPC handler sleeping.
    	qla2xxx [0000:03:00.1]-5812:91: Port database changed ffff 0006 0000.
    	qla2xxx [0000:03:00.1]-505f:91: Link is operational (4 Gbps).
    	qla2xxx [0000:03:00.1]-802b:91: BUS RESET SUCCEEDED nexus=91:0:0.
    	qla2xxx [0000:03:00.1]-480b:91: Reset marker scheduled.
    	qla2xxx [0000:03:00.1]-480c:91: Reset marker end.
    	qla2xxx [0000:03:00.1]-480f:91: Loop resync scheduled.
    	qla2xxx [0000:03:00.1]-8837:91: F/W Ready - OK.
    	qla2xxx [0000:03:00.1]-883a:91: fw_state=3 (7, 0, 0, 0) curr time=170be9eb2.
    	qla2xxx [0000:03:00.1]-280e:91: HBA in F P2P topology.
    	qla2xxx [0000:03:00.1]-2812:91: qla2x00_configure_hba success
    	qla2xxx [0000:03:00.1]-2814:91: Configure loop -- dpc flags = 0x5260.
    	qla2xxx [0000:03:00.1]-281e:91: Needs RSCN update and loop transition.
    	qla2xxx [0000:03:00.1]-286a:91: qla2x00_configure_loop *** FAILED ***.
    	qla2xxx [0000:03:00.1]-4810:91: Loop resync end.
    	qla2xxx [0000:03:00.1]-4800:91: DPC handler sleeping.
    
    This race would ultimately lead to devices go unexpectedly
    offline until another link-flap or chip-reset would cause driver
    re-discovery to take place.
    
    Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 78d56df6174f6858f79620e0e06ece326a744353
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Wed Jan 30 03:34:42 2013 -0500

    [SCSI] qla2xxx: Correction to the message ids.
    
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 33c36c0a556c307a2430e92148d5e8d5a84d29df
Author: Arun Easi <arun.easi@qlogic.com>
Date:   Wed Jan 30 03:34:41 2013 -0500

    [SCSI] qla2xxx: Prevent enabling target mode for unsupported HBAs.
    
    Signed-off-by: Arun Easi <arun.easi@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit b8aa4bdfe13ac3ff51af5d8f79ae0adc20405215
Author: Arun Easi <arun.easi@qlogic.com>
Date:   Wed Jan 30 03:34:40 2013 -0500

    [SCSI] qla2xxx: Allow ISP81xx to create ATIO queues.
    
    Signed-off-by: Arun Easi <arun.easi@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit aa230bc55c169b76a229ff3f927141edf02e7b3a
Author: Arun Easi <arun.easi@qlogic.com>
Date:   Wed Jan 30 03:34:39 2013 -0500

    [SCSI] qla2xxx: Enable target mode support for ISP83xx.
    
    Signed-off-by: Arun Easi <arun.easi@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 3c290d0b5f8ff7b0fd2c964c5ec2c14191a9e790
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Wed Jan 30 03:34:38 2013 -0500

    [SCSI] qla2xxx: Ramp down queue depth for attached SCSI devices when driver resources are low.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 8d93f5502221cc8eb420da65dc86a5ef07b038d0
Author: Chad Dupuis <chad.dupuis@qlogic.com>
Date:   Wed Jan 30 03:34:37 2013 -0500

    [SCSI] qla2xxx: Determine the number of outstanding commands based on available resources.
    
    Base the number of outstanding requests the driver will keep track of on the
    available resources instead of being hard-coded.
    
    Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 6d1f6621fa12800fc84f62db9e0b7a6b623eb439
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jan 30 10:06:02 2013 +0300

    [SCSI] libosd: check for kzalloc() failure
    
    There wasn't any error handling for this kzalloc().
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Boaz Harrosh <bharrosh@panasas.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 50e9291578886099888b8169459c6f97626ccbfc
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Jan 30 10:07:31 2013 +0300

    [SCSI] qla4xxx: don't free NULL dma pool
    
    The error path calls dma_pool_free() on this path but "chap_table" is
    NULL and "chap_dma" is uninitialized.  It's cleaner to just return
    directly.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 7c237c5f6d5c62724ccd82aecdcd1fd9bd71dc75
Author: Xiangliang Yu <yuxiangl@marvell.com>
Date:   Wed Jan 30 00:25:53 2013 +0800

    [SCSI] mvsas: fixed timeout issue when removing module
    
    Root cause is libsas will clear asd_sas_port phy_mask value in sas_port_deform
    after triggering destruct workqueue, but the workqueue will send sync cmd and
    still need phy_mask value.  Now, mvsas using asd_sas_phy setting instead of
    asd_sas_port setting.
    
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

commit 1f953b0dbc2549318afcc0a70af5542dffbce34a
Author: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Date:   Mon Jan 28 11:43:03 2013 -0800

    libfcoe: Check for unusable FCFs before looking for conflicting FCFs
    
    When there are multiple FCFs in the fabric, and one of them becomes
    unavailable, the fabric name for the unavailable FCF becomes 0 along
    with FIP_FL_AVAIL getting reset. In this case, FCF selection logic does
    not select any FCF as it first checks for conflicting FCFs (since fabric
    name is 0, it fails the condition), instead of first checking if it is
    usable or not. Fix it by first checking if FCF is usable and skip that
    FCF, and go to the next one in the list to check if it can be selected.
    
    Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit a586069b0f56a700d6f6249a64cbc313dd4a97e0
Author: Krishna Mohan <krmohan@cisco.com>
Date:   Wed Feb 13 16:33:04 2013 -0800

    libfc: XenServer fails to mount root filesystem.
    
    schedule_delayed_work() is using msec instead of jiffies. On PLOGI
    reject from target, remote port retry is scheduled @ 20 sec instead
    of 2sec(FC_DEF_E_D_TOV).
    XenServer dom0 kernel is configured with CONFIG_HZ=100Hz
    
    Signed-off-by: Krishna Mohan <krmohan@cisco.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit b2593cbe18c4f50c9acacd88860b051f567654d7
Author: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Date:   Mon Feb 4 23:00:20 2013 -0800

    libfcoe: Handle CVL while waiting to select an FCF
    
    When a CVL is received while we wait to select best FCF, we drop it
    without handling it. This causes initiator and the switch to go
    out-of-sync. Initiator proceeds selecting one of the FCFs and tries to
    send FIP FLOGI. However the switch may reject the FLOGI, as it has
    cleared its internal state, and expects the initiator to start FIP
    discovery protocol. Fix this condition by resetting the fcoe
    controller.
    
    Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Reviewed-by: Yi Zou <yi.zou@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 94aa743a2af455ee3bd9fc3410dff82f6abf4522
Author: Neerav Parikh <Neerav.Parikh@intel.com>
Date:   Tue Jan 15 15:42:38 2013 -0800

    fcoe: Fix deadlock while deleting FCoE interface with NPIV ports
    
    This patch fixes following deadlock caused by destroying of
    an FCoE interface with active NPIV ports on that interface.
    
        Call Trace:
        [<ffffffff814b7e88>] schedule+0x64/0x66
        [<ffffffff814b6b4f>] schedule_timeout+0x36/0xe3
        [<ffffffff81070c55>] ? update_curr+0xd6/0x110
        [<ffffffff81071f6b>] ? hrtick_update+0x1b/0x4d
        [<ffffffff81072405>] ? dequeue_task_fair+0x1ca/0x1d9
        [<ffffffff8106a369>] ? need_resched+0x1e/0x28
        [<ffffffff814b7d14>] wait_for_common+0x9b/0xf1
        [<ffffffff8106e7be>] ? try_to_wake_up+0x1e0/0x1e0
        [<ffffffff814b7e22>] wait_for_completion+0x1d/0x1f
        [<ffffffff8105ae82>] flush_workqueue+0x116/0x2a1
        [<ffffffff8105b357>] drain_workqueue+0x66/0x14c
        [<ffffffff8105b8ef>] destroy_workqueue+0x1a/0xcf
        [<ffffffffa009211e>] fc_remove_host+0x154/0x17f [scsi_transport_fc]
        [<ffffffffa00edbb8>] fcoe_if_destroy+0x184/0x1c9 [fcoe]
        [<ffffffffa00edc28>] fcoe_destroy_work+0x2b/0x44 [fcoe]
        [<ffffffff8105a82a>] process_one_work+0x1a8/0x2a4
        [<ffffffffa00edbfd>] ? fcoe_if_destroy+0x1c9/0x1c9 [fcoe]
        [<ffffffff8105c396>] worker_thread+0x1db/0x268
        [<ffffffff810604a3>] ? wake_up_bit+0x2a/0x2a
        [<ffffffff8105c1bb>] ? manage_workers.clone.16+0x1f6/0x1f6
        [<ffffffff8105ffd6>] kthread+0x6f/0x77
        [<ffffffff814c0304>] kernel_thread_helper+0x4/0x10
        [<ffffffff8105ff67>] ? kthread_freezable_should_stop+0x4b/0x4b
    
        Call Trace:
        [<ffffffff814b7e88>] schedule+0x64/0x66
        [<ffffffff814b8041>] schedule_preempt_disabled+0xe/0x10
        [<ffffffff814b70a1>] __mutex_lock_common.clone.5+0x117/0x17a
        [<ffffffff814b7117>] __mutex_lock_slowpath+0x13/0x15
        [<ffffffff814b6f76>] mutex_lock+0x23/0x37
        [<ffffffff8125b890>] ? list_del+0x11/0x30
        [<ffffffffa00edc84>] fcoe_vport_destroy+0x43/0x5f [fcoe]
        [<ffffffffa009130a>] fc_vport_terminate+0x48/0x110 [scsi_transport_fc]
        [<ffffffffa00913ef>] fc_vport_sched_delete+0x1d/0x79 [scsi_transport_fc]
        [<ffffffff8105a82a>] process_one_work+0x1a8/0x2a4
        [<ffffffffa00913d2>] ? fc_vport_terminate+0x110/0x110 [scsi_transport_fc]
        [<ffffffff8105c396>] worker_thread+0x1db/0x268
        [<ffffffff8105c1bb>] ? manage_workers.clone.16+0x1f6/0x1f6
        [<ffffffff8105ffd6>] kthread+0x6f/0x77
        [<ffffffff814c0304>] kernel_thread_helper+0x4/0x10
        [<ffffffff8105ff67>] ? kthread_freezable_should_stop+0x4b/0x4b
        [<ffffffff814c0300>] ? gs_change+0x13/0x13
    
    A prior attempt to fix this issue is posted here:
    http://lists.open-fcoe.org/pipermail/devel/2012-October/012318.html
    or
    http://article.gmane.org/gmane.linux.scsi.open-fcoe.devel/11924
    
    Based on feedback and discussion with Neil Horman it seems that the above patch
    may have a case where the fcoe_vport_destroy() and fcoe_destroy_work() can
    race; hence that patch has been withdrawn with this patch that is trying to
    solve the same problem in a different way.
    
    In the current approach instead of removing the fcoe_config_mutex from the
    vport_delete callback function; I've chosen to delete all the NPIV ports first
    on a given root lport before continuing with the removal of the root lport.
    
    Signed-off-by: Neerav Parikh <Neerav.Parikh@intel.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit f9184df3b99375964340c1a78e33f304bbf15f06
Author: Neil Horman <nhorman@tuxdriver.com>
Date:   Tue Jan 15 14:34:40 2013 -0500

    fcoe: close race on link speed detection in fcoe code
    
    When creating an fcoe interfce, we call fcoe_link_speed_update before we add the
    lports fcoe interface to the fc_hostlist.  Since network device events like
    NETDEV_CHANGE are only processed if an fcoe interface is found with an
    underlying netdev that matches the netdev of the event.  Since this processing
    in fcoe_device_notification is how link_speed changes get communicated to the
    libfc  code (via fcoe_link_speed_update), we have a race condition - if a
    NETDEV_CHANGE event is sent after the call to fcoe_link_speed_update in
    fcoe_netdev_config, but before we add the interface to the fc_hostlist, we will
    loose the event and attributes like /sys/class/fc_host/hostX/speed will not get
    updated properly.
    
    Fix this by moving the add to the fc_hostlist above the serialized call to
    fcoe_netdev_config, ensuring that we catch netdev envents before we make a
    direct call to fcoe_link_speed_update.
    
    Also use this opportunity to clean up access to the fc_hostlist a bit by
    creating a fcoe_hostlist_del accessor and replacing the cleanup in fcoe_exit to
    use it properly.
    
    Tested by myself successfully
    
    [ Comment over 80 chars broken into multi-line by Robert Love to
      satisfy checkpatch.pl ]
    
    Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
    Reviewed-by: Yi Zou <yi.zou@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit cf02820041668b14cbfa0fbd2bab45ac79bd6174
Author: David Howells <dhowells@redhat.com>
Date:   Wed Dec 19 16:07:25 2012 +0000

    UAPI: (Scripted) Disintegrate include/scsi/fc
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
    Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Acked-by: Dave Jones <davej@redhat.com>

commit ee7afd717c26299c85675d84c7ff89a9c989f4fa
Author: David Howells <dhowells@redhat.com>
Date:   Wed Dec 19 16:07:23 2012 +0000

    UAPI: (Scripted) Disintegrate include/scsi
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
    Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Acked-by: Dave Jones <davej@redhat.com>

commit 4f670ff8eb4cb3e9e6ae0c0c6976faa0a4503751
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Fri Dec 7 14:10:14 2012 +0000

    debris left by "[SCSI] libfcoe: Remove mutex_trylock/restart_syscall checks"
    
    	AFAICS, the situation for fcoe_transport_disable() seems to be
    the same as for fcoe_transport_enable().  IOW, shouldn't it have
    restart_syscall() removed as well?  I don't see any in-tree ->disable()
    instances that could return -ERESTARTSYS, anyway...
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit b8b3e697d15165090583bed850879b1f3b250db0
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:24:59 2012 +0000

    bnx2fc: use fcoe_get_lesb/fcoe_ctlr_get_lesb() directly from libfcoe
    
    Drop the bnx2fc_xxx versions as they are basically the same.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 0e0f9cd6a80dc883dab4c82c17edc1abe485cbd9
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:24:44 2012 +0000

    bnx2fc: use fcoe_link_speed_update() from the exported symbol in libfcoe
    
    We have fcoe_link_speed_update() in libfcoe ready for use now, take out the
    bnx2fc version which is almost the same.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit c3d7909b865274ffa74fa2715c6663caa51a80e1
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:24:29 2012 +0000

    bnx2fc: add support to get_netdev for bnx2f_interface
    
    Adds support to fcoe_port's newly added get_netdev fucntion pointer for bnx2fc.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 57c2728fa806aff08703e5739620454d723bc865
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:24:13 2012 +0000

    libfcoe, fcoe: consolidate the fcoe_ctlr_get_lesb/fcoe_get_lesb
    
    Similarly they can be moved into libfcoe instead of being private to fcoe now.
    Also add comments particularly on the term LESB to the corresponding function.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 03702689fcc985e9cb45b57099ebd5066f674739
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:23:58 2012 +0000

    libfcoe, fcoe: move fcoe_link_speed_update() to libfcoe and export it
    
    With the previous patch, fcoe_link_speed_update() can be moved into libfcoe and
    exported to used by fcoe, bnx2fc, and etc.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 66524ec9d0aeaa8bc59077c7c5f78d09ec9eeb9d
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:23:43 2012 +0000

    fcoe: add support to the get_netdev() for fcoe_interface
    
    Adds support to fcoe_port's newly added get_netdev fucntion pointer.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 8106fb4790c33547a034db53f7658bccd3cfbf6b
Author: Yi Zou <yi.zou@intel.com>
Date:   Thu Dec 6 06:23:27 2012 +0000

    fcoe: prep work to start consolidate the usage of fcoe_netdev
    
    Currently, in the default kernel fcoe driver, it is needed to get to the underlying
    private per fcoe transport's private structure, e.g., fcoe_interface in
    fcoe.ko, and returns the associated netdev. The similar logic exists in other
    fcoe drivers, e.g., bnx2fc, so we add a function pointer into the common
    fcoe_port struct to allow individual fcoe transport implementaion (fcoe
    and bnx2fc) to get the corresponding netdev associated with a give lport.
    
    Then a inline fcoe_get_netdev() is added as part of libfcoe for all underlying
    fcoe transport drivers to use regardless of its individual fcoe transport
    driver, and also allows move more common code such as fcoe_link_speed_update or
    fcoe_ctlr_get_lesb to be in libfcoe, rather than specific to fcoe.
    
    This patch is a prep work that adds aforementioned fucntion pointer, and
    followed by the actual code changes to make use of it.
    
    Signed-off-by: Yi Zou <yi.zou@intel.com>
    Cc: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>

commit 8e6c5363dc52afbc60011c2c079bf4c4d26b1272
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Dec 4 02:14:53 2012 +0000

    libfc, libfcoe, fcoe: Convert debug_logging macros to pr_info
    
    Convert libfc, libfcoe and fcoe's debug_logging macros
    to use pr_info() instead of printk(KERN_INFO, ...). checkpatch.pl
    now complains about this, so convert libfcoe to preferred
    method.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>

commit 6e89ea3f1032d5c762f1ae9b0bd2039794596813
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Nov 27 06:53:40 2012 +0000

    bnx2fc: Use the fcoe_sysfs control interface
    
    This patch adds support for the new fcoe_sysfs
    control interface to bnx2fc.ko. It keeps the deprecated
    interface in tact and therefore either the legacy
    or the new control interfaces can be used. A mixed mode
    is not supported. A user must either use the new
    interfaces or the old ones, but not both.
    
    The fcoe_ctlr's link state is now driven by both the
    netdev link state as well as the fcoe_ctlr_device's
    enabled attribute. The link must be up and the
    fcoe_ctlr_device must be enabled before the FCoE
    Controller starts discovery or login.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>

commit 435c86679a24ead623c8a47ca31038e250a75e05
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Nov 27 06:53:35 2012 +0000

    fcoe: Use the fcoe_sysfs control interface
    
    This patch adds support for the new fcoe_sysfs
    control interface to fcoe.ko. It keeps the deprecated
    interface in tact and therefore either the legacy
    or the new control interfaces can be used. A mixed mode
    is not supported. A user must either use the new
    interfaces or the old ones, but not both.
    
    The fcoe_ctlr's link state is now driven by both the
    netdev link state as well as the fcoe_ctlr_device's
    enabled attribute. The link must be up and the
    fcoe_ctlr_device must be enabled before the FCoE
    Controller starts discovery or login.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>

commit 6a891b071b640e1de44c4a5117fa2c974dcfa84a
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Nov 27 06:53:30 2012 +0000

    libfcoe, fcoe, bnx2fc: Add new fcoe control interface
    
    This patch does a few things.
    
    1) Makes /sys/bus/fcoe/ctlr_{create,destroy} interfaces.
       These interfaces take an <ifname> and will either
       create an FCoE Controller or destroy an FCoE
       Controller depending on which file is written to.
    
       The new FCoE Controller will start in a DISABLED
       state and will not do discovery or login until it
       is ENABLED. This pause will allow us to configure
       the FCoE Controller before enabling it.
    
    2) Makes the 'mode' attribute of a fcoe_ctlr_device
       writale. This allows the user to configure the mode
       in which the FCoE Controller will start in when it
       is ENABLED.
    
       Possible modes are 'Fabric', or 'VN2VN'.
    
       The default mode for a fcoe_ctlr{,_device} is 'Fabric'.
       Drivers must implement the set_fcoe_ctlr_mode routine
       to support this feature.
    
       libfcoe offers an exported routine to set a FCoE
       Controller's mode. The mode can only be changed
       when the FCoE Controller is DISABLED.
    
       This patch also removes the get_fcoe_ctlr_mode pointer
       in the fcoe_sysfs function template, the code in
       fcoe_ctlr.c to get the mode and the assignment of
       the fcoe_sysfs function pointer to the fcoe_ctlr.c
       implementation (in fcoe and bnx2fc). fcoe_sysfs can
       return that value for the mode without consulting the
       LLD.
    
    3) Make a 'enabled' attribute of a fcoe_ctlr_device. On a
       read, fcoe_sysfs will return the attribute's value. On
       a write, fcoe_sysfs will call the LLD (if there is a
       callback) to notifiy that the enalbed state has changed.
    
    This patch maintains the old FCoE control interfaces as
    module parameters, but it adds comments pointing out that
    the old interfaces are deprecated.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>

commit 3993de6183885a099163b9562a2ea9c07b994a0e
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Nov 27 06:53:24 2012 +0000

    libfcoe: Add fcoe_sysfs debug logging level
    
    Add a macro to print fcoe_sysfs debug statements.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>

commit ef60f674344cdb6d1da199f6b8d7d7016813cc6f
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Nov 27 06:53:19 2012 +0000

    libfcoe: Save some memory and optimize name lookups
    
    Instead of creating a structure with an enum and a pointer
    to a string, simply allocate an array of strings and use
    the enum values for the indicies.
    
    This means that we do not need to iterate through the list
    of entries when looking up a string name by its enum key.
    
    This will also help with a latter patch that will add
    more fcoe_sysfs attributes that will also use the
    fcoe_enum_name_search macro. One attribute will also do
    a reverse lookup which requires less code when the
    enum-to-string mappings are organized as this patch makes
    them to be.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>

commit 354d1123c16942b8a3ca9131b8fc2f8c06e2ed7f
Author: Robert Love <robert.w.love@intel.com>
Date:   Tue Oct 30 01:55:46 2012 +0000

    Documentation: Add missing devices/ to devices path
    
    Add missing 'devices/ subdirectory to /sys/bus/fcoe/devices/ctlr_X
    and /sys/bus/fcoe/devices/fcf_X references.
    
    Signed-off-by: Robert Love <robert.w.love@intel.com>
    Tested-by: Ross Brattain <ross.b.brattain@intel.com>

commit 5b97fabdc815b4b60bac2328b58c5c7274debf58
Author: Vasu Dev <vasu.dev@intel.com>
Date:   Tue Oct 9 01:43:24 2012 +0000

    libfc: fix REC handling
    
    Currently fc_fcp_timeout doesn't check FC_RP_FLAGS_REC_SUPPORTED
    flag first, this prevents REC request ever going out at all
    to the target having REC support. So this patches fixes the
    fc_fcp_timeout by checking FC_RP_FLAGS_REC_SUPPORTED flag first.
    
    The changed order won't cause any issue during clearing
    FC_RP_FLAGS_REC_SUPPORTED on failed IO with target not supporting
    FC_RP_FLAGS_REC_SUPPORTED, since retry on failed IO would succeed.
    
    Signed-off-by: Vasu Dev <vasu.dev@intel.com>
    Tested-by: Ross Brattain <ross.b.brattain@intel.com>
    Signed-off-by: Robert Love <robert.w.love@intel.com>