projects/linux·commit fecb4a0c

Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6

fecb4a0c · Linus Torvalds <[email protected]> · 2005-11-05 10:31:35 -08:00

Commit
fecb4a0c87c2bcaee1f3cf800126eef752a07ed3
Parents
a2c78f7c · 39b7f1e2

Merge commit. Changes below are compared with the first parent: a2c78f7c.

Changes

135 files changed · +29953 −37035

FileStatusAddDelContent
Documentation/scsi/LICENSE.qla2xxxadded+45−0View file
drivers/message/fusion/mptbase.hmodified+14−2View file
drivers/message/fusion/mptsas.cmodified+249−74View file
drivers/scsi/3w-9xxx.cmodified+3−1View file
drivers/scsi/3w-xxxx.cmodified+3−1View file
drivers/scsi/53c700.cmodified+45−44View file
drivers/scsi/53c700.hmodified+7−1View file
drivers/scsi/Kconfigmodified+25−14View file
drivers/scsi/Makefilemodified+1−3View file
drivers/scsi/NCR5380.cmodified+12−9View file
drivers/scsi/NCR53C9x.cmodified+8−8View file
drivers/scsi/NCR53c406a.cmodified+1−1View file
drivers/scsi/a100u2w.cmodified+1−1View file
drivers/scsi/aacraid/READMEmodified+1−1View file
drivers/scsi/aacraid/TODOmodified+0−1View file
drivers/scsi/aacraid/aachba.cmodified+53−35View file
drivers/scsi/aacraid/aacraid.hmodified+19−8View file
drivers/scsi/aacraid/commctrl.cmodified+3−3View file
drivers/scsi/aacraid/comminit.cmodified+25−0View file
drivers/scsi/aacraid/commsup.cmodified+58−30View file
drivers/scsi/aacraid/dpcsup.cmodified+114−1View file
drivers/scsi/aacraid/linit.cmodified+30−7View file
drivers/scsi/aacraid/rkt.cmodified+110−62View file
drivers/scsi/aacraid/rx.cmodified+95−62View file
drivers/scsi/aacraid/sa.cmodified+1−37View file
drivers/scsi/aha152x.cmodified+1−2View file
drivers/scsi/aha1542.cmodified+2−1View file
drivers/scsi/aha1740.cmodified+1−1View file
drivers/scsi/aic7xxx/aic79xx_osm.cmodified+15−24View file
drivers/scsi/aic7xxx/aic7xxx_osm.cmodified+11−21View file
drivers/scsi/atp870u.cmodified+14−15View file
drivers/scsi/ch.cmodified+1−3View file
drivers/scsi/constants.cmodified+1−4View file
drivers/scsi/cpqfcTS.hdeleted+0−19View before deletion
drivers/scsi/cpqfcTSchip.hdeleted+0−238View before deletion
drivers/scsi/cpqfcTScontrol.cdeleted+0−2231View before deletion
drivers/scsi/cpqfcTSi2c.cdeleted+0−493View before deletion
drivers/scsi/cpqfcTSinit.cdeleted+0−2096View before deletion
drivers/scsi/cpqfcTSioctl.hdeleted+0−94View before deletion
drivers/scsi/cpqfcTSstructs.hdeleted+0−1530View before deletion
drivers/scsi/cpqfcTStrigger.cdeleted+0−33View before deletion
drivers/scsi/cpqfcTStrigger.hdeleted+0−8View before deletion
drivers/scsi/cpqfcTSworker.cdeleted+0−6516View before deletion
drivers/scsi/dc395x.cmodified+13−0View file
drivers/scsi/dec_esp.cmodified+13−8View file
drivers/scsi/eata.cmodified+23−33View file
drivers/scsi/eata_pio.cmodified+15−6View file
drivers/scsi/fd_mcs.cmodified+2−2View file
drivers/scsi/fdomain.cmodified+2−2View file
drivers/scsi/hosts.cmodified+5−5View file
drivers/scsi/ibmmca.cmodified+4−1View file
drivers/scsi/ide-scsi.cmodified+1−1View file
drivers/scsi/imm.cmodified+1−1View file
drivers/scsi/in2000.cmodified+1−1View file
drivers/scsi/ipr.hmodified+2−3View file
drivers/scsi/ips.cmodified+135−18View file
drivers/scsi/iscsi_tcp.cadded+3642−0View file
drivers/scsi/iscsi_tcp.hadded+322−0View file
drivers/scsi/lpfc/lpfc.hmodified+0−4View file
drivers/scsi/lpfc/lpfc_attr.cmodified+120−81View file
drivers/scsi/lpfc/lpfc_crtn.hmodified+8−13View file
drivers/scsi/lpfc/lpfc_ct.cmodified+6−8View file
drivers/scsi/lpfc/lpfc_disc.hmodified+0−1View file
drivers/scsi/lpfc/lpfc_els.cmodified+18−18View file
drivers/scsi/lpfc/lpfc_hbadisc.cmodified+38−84View file
drivers/scsi/lpfc/lpfc_init.cmodified+37−32View file
drivers/scsi/lpfc/lpfc_mbox.cmodified+6−1View file
drivers/scsi/lpfc/lpfc_nportdisc.cmodified+4−17View file
drivers/scsi/lpfc/lpfc_scsi.cmodified+152−247View file
drivers/scsi/lpfc/lpfc_sli.cmodified+245−278View file
drivers/scsi/lpfc/lpfc_sli.hmodified+14−8View file
drivers/scsi/lpfc/lpfc_version.hmodified+1−1View file
drivers/scsi/megaraid/megaraid_sas.cmodified+2−3View file
drivers/scsi/ncr53c8xx.cmodified+15−15View file
drivers/scsi/nsp32.cmodified+4−4View file
drivers/scsi/osst.cmodified+3−3View file
drivers/scsi/pcmcia/nsp_cs.cmodified+5−5View file
drivers/scsi/pcmcia/sym53c500_cs.cmodified+1−1View file
drivers/scsi/ppa.cmodified+1−1View file
drivers/scsi/psi240i.cmodified+1−1View file
drivers/scsi/qla2xxx/ql2100.cmodified+4−5View file
drivers/scsi/qla2xxx/ql2100_fw.cmodified+5−17View file
drivers/scsi/qla2xxx/ql2200.cmodified+4−5View file
drivers/scsi/qla2xxx/ql2200_fw.cmodified+5−17View file
drivers/scsi/qla2xxx/ql2300.cmodified+4−5View file
drivers/scsi/qla2xxx/ql2300_fw.cmodified+6926−6925View file
drivers/scsi/qla2xxx/ql2322.cmodified+3−4View file
drivers/scsi/qla2xxx/ql2322_fw.cmodified+7246−7237View file
drivers/scsi/qla2xxx/ql6312.cmodified+3−4View file
drivers/scsi/qla2xxx/ql6312_fw.cmodified+6941−6941View file
drivers/scsi/qla2xxx/qla_attr.cmodified+96−15View file
drivers/scsi/qla2xxx/qla_dbg.cmodified+3−15View file
drivers/scsi/qla2xxx/qla_dbg.hmodified+5−18View file
drivers/scsi/qla2xxx/qla_def.hmodified+17−19View file
drivers/scsi/qla2xxx/qla_fw.hmodified+8−22View file
drivers/scsi/qla2xxx/qla_gbl.hmodified+7−24View file
drivers/scsi/qla2xxx/qla_gs.cmodified+3−15View file
drivers/scsi/qla2xxx/qla_init.cmodified+67−32View file
drivers/scsi/qla2xxx/qla_inline.hmodified+3−16View file
drivers/scsi/qla2xxx/qla_iocb.cmodified+17−46View file
drivers/scsi/qla2xxx/qla_isr.cmodified+7−18View file
drivers/scsi/qla2xxx/qla_mbx.cmodified+3−15View file
drivers/scsi/qla2xxx/qla_os.cmodified+39−73View file
drivers/scsi/qla2xxx/qla_rscn.cmodified+6−17View file
drivers/scsi/qla2xxx/qla_settings.hmodified+5−17View file
drivers/scsi/qla2xxx/qla_sup.cmodified+5−18View file
drivers/scsi/qla2xxx/qla_version.hmodified+5−17View file
drivers/scsi/qlogicfas408.cmodified+2−2View file
drivers/scsi/scsi.cmodified+11−15View file
drivers/scsi/scsi_debug.cmodified+7−10View file
drivers/scsi/scsi_error.cmodified+21−27View file
drivers/scsi/scsi_ioctl.cmodified+5−9View file
drivers/scsi/scsi_lib.cmodified+17−20View file
drivers/scsi/scsi_scan.cmodified+12−25View file
drivers/scsi/scsi_transport_fc.cmodified+304−172View file
drivers/scsi/scsi_transport_iscsi.cmodified+1133−247View file
drivers/scsi/scsi_transport_sas.cmodified+73−2View file
drivers/scsi/scsi_transport_spi.cmodified+11−13View file
drivers/scsi/sd.cmodified+69−47View file
drivers/scsi/sg.cmodified+5−9View file
drivers/scsi/sgiwd93.cmodified+2−3View file
drivers/scsi/sgiwd93.hdeleted+0−24View before deletion
drivers/scsi/sr.cmodified+8−9View file
drivers/scsi/st.cmodified+3−6View file
drivers/scsi/sym53c416.cmodified+1−1View file
drivers/scsi/sym53c8xx_defs.hmodified+0−13View file
drivers/scsi/tmscsim.cmodified+10−2View file
drivers/scsi/u14-34f.cmodified+22−25View file
include/scsi/iscsi_if.hadded+245−0View file
include/scsi/iscsi_proto.hadded+589−0View file
include/scsi/scsi_device.hmodified+22−0View file
include/scsi/scsi_host.hmodified+4−2View file
include/scsi/scsi_transport_fc.hmodified+31−2View file
include/scsi/scsi_transport_iscsi.hmodified+55−147View file
include/scsi/scsi_transport_sas.hmodified+23−4View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/scsi/LICENSE.qla2xxx

View file
diff --git a/Documentation/scsi/LICENSE.qla2xxx b/Documentation/scsi/LICENSE.qla2xxx
new file mode 100644
index 0000000..9e15b4f
--- /dev/null
+++ b/Documentation/scsi/LICENSE.qla2xxx
@@ -0,0 +1,45 @@
+Copyright (c) 2003-2005 QLogic Corporation
+QLogic Linux Fibre Channel HBA Driver
+
+This program includes a device driver for Linux 2.6 that may be
+distributed with QLogic hardware specific firmware binary file.
+You may modify and redistribute the device driver code under the
+GNU General Public License as published by the Free Software
+Foundation (version 2 or a later version).
+
+You may redistribute the hardware specific firmware binary file
+under the following terms:
+
+ 1. Redistribution of source code (only if applicable),
+ must retain the above copyright notice, this list of
+ conditions and the following disclaimer.
+
+ 2. Redistribution in binary form must reproduce the above
+ copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+ 3. The name of QLogic Corporation may not be used to
+ endorse or promote products derived from this software
+ without specific prior written permission
+
+REGARDLESS OF WHAT LICENSING MECHANISM IS USED OR APPLICABLE,
+THIS PROGRAM IS PROVIDED BY QLOGIC CORPORATION "AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+USER ACKNOWLEDGES AND AGREES THAT USE OF THIS PROGRAM WILL NOT
+CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION, ESTOPPEL, OR
+OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
+TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN
+ANY OTHER QLOGIC HARDWARE OR SOFTWARE EITHER SOLELY OR IN
+COMBINATION WITH THIS PROGRAM.

drivers/message/fusion/mptbase.h

View file
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 7510527..e7efeb7 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -77,8 +77,8 @@
#define COPYRIGHT "Copyright (c) 1999-2005 " MODULEAUTHOR
#endif
-#define MPT_LINUX_VERSION_COMMON "3.03.03"
-#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.03.03"
+#define MPT_LINUX_VERSION_COMMON "3.03.04"
+#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.03.04"
#define WHAT_MAGIC_STRING "@" "(" "#" ")"
#define show_mptmod_ver(s,ver) \
@@ -421,6 +421,17 @@ typedef struct _MPT_IOCTL {
struct semaphore sem_ioc;
} MPT_IOCTL;
+#define MPT_SAS_MGMT_STATUS_RF_VALID 0x02 /* The Reply Frame is VALID */
+#define MPT_SAS_MGMT_STATUS_COMMAND_GOOD 0x10 /* Command Status GOOD */
+#define MPT_SAS_MGMT_STATUS_TM_FAILED 0x40 /* User TM request failed */
+
+typedef struct _MPT_SAS_MGMT {
+ struct semaphore mutex;
+ struct completion done;
+ u8 reply[MPT_DEFAULT_FRAME_SIZE]; /* reply frame data */
+ u8 status; /* current command status */
+}MPT_SAS_MGMT;
+
/*
* Event Structure and define
*/
@@ -604,6 +615,7 @@ typedef struct _MPT_ADAPTER
struct list_head list;
struct net_device *netdev;
struct list_head sas_topology;
+ MPT_SAS_MGMT sas_mgmt;
} MPT_ADAPTER;
/*

drivers/message/fusion/mptsas.c

View file
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 7de19a8..e0a8bb8 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -83,6 +83,7 @@ MODULE_PARM_DESC(mpt_pt_clear,
static int mptsasDoneCtx = -1;
static int mptsasTaskCtx = -1;
static int mptsasInternalCtx = -1; /* Used only for internal commands */
+static int mptsasMgmtCtx = -1;
/*
@@ -123,6 +124,104 @@ struct mptsas_portinfo {
struct mptsas_phyinfo *phy_info;
};
+
+#ifdef SASDEBUG
+static void mptsas_print_phy_data(MPI_SAS_IO_UNIT0_PHY_DATA *phy_data)
+{
+ printk("---- IO UNIT PAGE 0 ------------\n");
+ printk("Handle=0x%X\n",
+ le16_to_cpu(phy_data->AttachedDeviceHandle));
+ printk("Controller Handle=0x%X\n",
+ le16_to_cpu(phy_data->ControllerDevHandle));
+ printk("Port=0x%X\n", phy_data->Port);
+ printk("Port Flags=0x%X\n", phy_data->PortFlags);
+ printk("PHY Flags=0x%X\n", phy_data->PhyFlags);
+ printk("Negotiated Link Rate=0x%X\n", phy_data->NegotiatedLinkRate);
+ printk("Controller PHY Device Info=0x%X\n",
+ le32_to_cpu(phy_data->ControllerPhyDeviceInfo));
+ printk("DiscoveryStatus=0x%X\n",
+ le32_to_cpu(phy_data->DiscoveryStatus));
+ printk("\n");
+}
+
+static void mptsas_print_phy_pg0(SasPhyPage0_t *pg0)
+{
+ __le64 sas_address;
+
+ memcpy(&sas_address, &pg0->SASAddress, sizeof(__le64));
+
+ printk("---- SAS PHY PAGE 0 ------------\n");
+ printk("Attached Device Handle=0x%X\n",
+ le16_to_cpu(pg0->AttachedDevHandle));
+ printk("SAS Address=0x%llX\n",
+ (unsigned long long)le64_to_cpu(sas_address));
+ printk("Attached PHY Identifier=0x%X\n", pg0->AttachedPhyIdentifier);
+ printk("Attached Device Info=0x%X\n",
+ le32_to_cpu(pg0->AttachedDeviceInfo));
+ printk("Programmed Link Rate=0x%X\n", pg0->ProgrammedLinkRate);
+ printk("Change Count=0x%X\n", pg0->ChangeCount);
+ printk("PHY Info=0x%X\n", le32_to_cpu(pg0->PhyInfo));
+ printk("\n");
+}
+
+static void mptsas_print_phy_pg1(SasPhyPage1_t *pg1)
+{
+ printk("---- SAS PHY PAGE 1 ------------\n");
+ printk("Invalid Dword Count=0x%x\n", pg1->InvalidDwordCount);
+ printk("Running Disparity Error Count=0x%x\n",
+ pg1->RunningDisparityErrorCount);
+ printk("Loss Dword Synch Count=0x%x\n", pg1->LossDwordSynchCount);
+ printk("PHY Reset Problem Count=0x%x\n", pg1->PhyResetProblemCount);
+ printk("\n");
+}
+
+static void mptsas_print_device_pg0(SasDevicePage0_t *pg0)
+{
+ __le64 sas_address;
+
+ memcpy(&sas_address, &pg0->SASAddress, sizeof(__le64));
+
+ printk("---- SAS DEVICE PAGE 0 ---------\n");
+ printk("Handle=0x%X\n" ,le16_to_cpu(pg0->DevHandle));
+ printk("Enclosure Handle=0x%X\n", le16_to_cpu(pg0->EnclosureHandle));
+ printk("Slot=0x%X\n", le16_to_cpu(pg0->Slot));
+ printk("SAS Address=0x%llX\n", le64_to_cpu(sas_address));
+ printk("Target ID=0x%X\n", pg0->TargetID);
+ printk("Bus=0x%X\n", pg0->Bus);
+ /* The PhyNum field specifies the PHY number of the parent
+ * device this device is linked to
+ */
+ printk("Parent Phy Num=0x%X\n", pg0->PhyNum);
+ printk("Access Status=0x%X\n", le16_to_cpu(pg0->AccessStatus));
+ printk("Device Info=0x%X\n", le32_to_cpu(pg0->DeviceInfo));
+ printk("Flags=0x%X\n", le16_to_cpu(pg0->Flags));
+ printk("Physical Port=0x%X\n", pg0->PhysicalPort);
+ printk("\n");
+}
+
+static void mptsas_print_expander_pg1(SasExpanderPage1_t *pg1)
+{
+ printk("---- SAS EXPANDER PAGE 1 ------------\n");
+
+ printk("Physical Port=0x%X\n", pg1->PhysicalPort);
+ printk("PHY Identifier=0x%X\n", pg1->PhyIdentifier);
+ printk("Negotiated Link Rate=0x%X\n", pg1->NegotiatedLinkRate);
+ printk("Programmed Link Rate=0x%X\n", pg1->ProgrammedLinkRate);
+ printk("Hardware Link Rate=0x%X\n", pg1->HwLinkRate);
+ printk("Owner Device Handle=0x%X\n",
+ le16_to_cpu(pg1->OwnerDevHandle));
+ printk("Attached Device Handle=0x%X\n",
+ le16_to_cpu(pg1->AttachedDevHandle));
+}
+#else
+#define mptsas_print_phy_data(phy_data) do { } while (0)
+#define mptsas_print_phy_pg0(pg0) do { } while (0)
+#define mptsas_print_phy_pg1(pg1) do { } while (0)
+#define mptsas_print_device_pg0(pg0) do { } while (0)
+#define mptsas_print_expander_pg1(pg1) do { } while (0)
+#endif
+
+
/*
* This is pretty ugly. We will be able to seriously clean it up
* once the DV code in mptscsih goes away and we can properly
@@ -200,91 +299,159 @@ static struct scsi_host_template mptsas_driver_template = {
.use_clustering = ENABLE_CLUSTERING,
};
-static struct sas_function_template mptsas_transport_functions = {
-};
-
-static struct scsi_transport_template *mptsas_transport_template;
-
-#ifdef SASDEBUG
-static void mptsas_print_phy_data(MPI_SAS_IO_UNIT0_PHY_DATA *phy_data)
+static inline MPT_ADAPTER *phy_to_ioc(struct sas_phy *phy)
{
- printk("---- IO UNIT PAGE 0 ------------\n");
- printk("Handle=0x%X\n",
- le16_to_cpu(phy_data->AttachedDeviceHandle));
- printk("Controller Handle=0x%X\n",
- le16_to_cpu(phy_data->ControllerDevHandle));
- printk("Port=0x%X\n", phy_data->Port);
- printk("Port Flags=0x%X\n", phy_data->PortFlags);
- printk("PHY Flags=0x%X\n", phy_data->PhyFlags);
- printk("Negotiated Link Rate=0x%X\n", phy_data->NegotiatedLinkRate);
- printk("Controller PHY Device Info=0x%X\n",
- le32_to_cpu(phy_data->ControllerPhyDeviceInfo));
- printk("DiscoveryStatus=0x%X\n",
- le32_to_cpu(phy_data->DiscoveryStatus));
- printk("\n");
+ struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
+ return ((MPT_SCSI_HOST *)shost->hostdata)->ioc;
}
-static void mptsas_print_phy_pg0(SasPhyPage0_t *pg0)
+static int mptsas_get_linkerrors(struct sas_phy *phy)
{
- __le64 sas_address;
+ MPT_ADAPTER *ioc = phy_to_ioc(phy);
+ ConfigExtendedPageHeader_t hdr;
+ CONFIGPARMS cfg;
+ SasPhyPage1_t *buffer;
+ dma_addr_t dma_handle;
+ int error;
- memcpy(&sas_address, &pg0->SASAddress, sizeof(__le64));
+ hdr.PageVersion = MPI_SASPHY1_PAGEVERSION;
+ hdr.ExtPageLength = 0;
+ hdr.PageNumber = 1 /* page number 1*/;
+ hdr.Reserved1 = 0;
+ hdr.Reserved2 = 0;
+ hdr.PageType = MPI_CONFIG_PAGETYPE_EXTENDED;
+ hdr.ExtPageType = MPI_CONFIG_EXTPAGETYPE_SAS_PHY;
- printk("---- SAS PHY PAGE 0 ------------\n");
- printk("Attached Device Handle=0x%X\n",
- le16_to_cpu(pg0->AttachedDevHandle));
- printk("SAS Address=0x%llX\n",
- (unsigned long long)le64_to_cpu(sas_address));
- printk("Attached PHY Identifier=0x%X\n", pg0->AttachedPhyIdentifier);
- printk("Attached Device Info=0x%X\n",
- le32_to_cpu(pg0->AttachedDeviceInfo));
- printk("Programmed Link Rate=0x%X\n", pg0->ProgrammedLinkRate);
- printk("Change Count=0x%X\n", pg0->ChangeCount);
- printk("PHY Info=0x%X\n", le32_to_cpu(pg0->PhyInfo));
- printk("\n");
-}
+ cfg.cfghdr.ehdr = &hdr;
+ cfg.physAddr = -1;
+ cfg.pageAddr = phy->identify.phy_identifier;
+ cfg.action = MPI_CONFIG_ACTION_PAGE_HEADER;
+ cfg.dir = 0; /* read */
+ cfg.timeout = 10;
-static void mptsas_print_device_pg0(SasDevicePage0_t *pg0)
-{
- __le64 sas_address;
+ error = mpt_config(ioc, &cfg);
+ if (error)
+ return error;
+ if (!hdr.ExtPageLength)
+ return -ENXIO;
- memcpy(&sas_address, &pg0->SASAddress, sizeof(__le64));
+ buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
+ &dma_handle);
+ if (!buffer)
+ return -ENOMEM;
- printk("---- SAS DEVICE PAGE 0 ---------\n");
- printk("Handle=0x%X\n" ,le16_to_cpu(pg0->DevHandle));
- printk("Enclosure Handle=0x%X\n", le16_to_cpu(pg0->EnclosureHandle));
- printk("Slot=0x%X\n", le16_to_cpu(pg0->Slot));
- printk("SAS Address=0x%llX\n", le64_to_cpu(sas_address));
- printk("Target ID=0x%X\n", pg0->TargetID);
- printk("Bus=0x%X\n", pg0->Bus);
- printk("Parent Phy Num=0x%X\n", pg0->PhyNum);
- printk("Access Status=0x%X\n", le16_to_cpu(pg0->AccessStatus));
- printk("Device Info=0x%X\n", le32_to_cpu(pg0->DeviceInfo));
- printk("Flags=0x%X\n", le16_to_cpu(pg0->Flags));
- printk("Physical Port=0x%X\n", pg0->PhysicalPort);
- printk("\n");
+ cfg.physAddr = dma_handle;
+ cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
+
+ error = mpt_config(ioc, &cfg);
+ if (error)
+ goto out_free_consistent;
+
+ mptsas_print_phy_pg1(buffer);
+
+ phy->invalid_dword_count = le32_to_cpu(buffer->InvalidDwordCount);
+ phy->running_disparity_error_count =
+ le32_to_cpu(buffer->RunningDisparityErrorCount);
+ phy->loss_of_dword_sync_count =
+ le32_to_cpu(buffer->LossDwordSynchCount);
+ phy->phy_reset_problem_count =
+ le32_to_cpu(buffer->PhyResetProblemCount);
+
+ out_free_consistent:
+ pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
+ buffer, dma_handle);
+ return error;
}
-static void mptsas_print_expander_pg1(SasExpanderPage1_t *pg1)
+static int mptsas_mgmt_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req,
+ MPT_FRAME_HDR *reply)
{
- printk("---- SAS EXPANDER PAGE 1 ------------\n");
+ ioc->sas_mgmt.status |= MPT_SAS_MGMT_STATUS_COMMAND_GOOD;
+ if (reply != NULL) {
+ ioc->sas_mgmt.status |= MPT_SAS_MGMT_STATUS_RF_VALID;
+ memcpy(ioc->sas_mgmt.reply, reply,
+ min(ioc->reply_sz, 4 * reply->u.reply.MsgLength));
+ }
+ complete(&ioc->sas_mgmt.done);
+ return 1;
+}
- printk("Physical Port=0x%X\n", pg1->PhysicalPort);
- printk("PHY Identifier=0x%X\n", pg1->PhyIdentifier);
- printk("Negotiated Link Rate=0x%X\n", pg1->NegotiatedLinkRate);
- printk("Programmed Link Rate=0x%X\n", pg1->ProgrammedLinkRate);
- printk("Hardware Link Rate=0x%X\n", pg1->HwLinkRate);
- printk("Owner Device Handle=0x%X\n",
- le16_to_cpu(pg1->OwnerDevHandle));
- printk("Attached Device Handle=0x%X\n",
- le16_to_cpu(pg1->AttachedDevHandle));
+static int mptsas_phy_reset(struct sas_phy *phy, int hard_reset)
+{
+ MPT_ADAPTER *ioc = phy_to_ioc(phy);
+ SasIoUnitControlRequest_t *req;
+ SasIoUnitControlReply_t *reply;
+ MPT_FRAME_HDR *mf;
+ MPIHeader_t *hdr;
+ unsigned long timeleft;
+ int error = -ERESTARTSYS;
+
+ /* not implemented for expanders */
+ if (phy->identify.target_port_protocols & SAS_PROTOCOL_SMP)
+ return -ENXIO;
+
+ if (down_interruptible(&ioc->sas_mgmt.mutex))
+ goto out;
+
+ mf = mpt_get_msg_frame(mptsasMgmtCtx, ioc);
+ if (!mf) {
+ error = -ENOMEM;
+ goto out_unlock;
+ }
+
+ hdr = (MPIHeader_t *) mf;
+ req = (SasIoUnitControlRequest_t *)mf;
+ memset(req, 0, sizeof(SasIoUnitControlRequest_t));
+ req->Function = MPI_FUNCTION_SAS_IO_UNIT_CONTROL;
+ req->MsgContext = hdr->MsgContext;
+ req->Operation = hard_reset ?
+ MPI_SAS_OP_PHY_HARD_RESET : MPI_SAS_OP_PHY_LINK_RESET;
+ req->PhyNum = phy->identify.phy_identifier;
+
+ mpt_put_msg_frame(mptsasMgmtCtx, ioc, mf);
+
+ timeleft = wait_for_completion_timeout(&ioc->sas_mgmt.done,
+ 10 * HZ);
+ if (!timeleft) {
+ /* On timeout reset the board */
+ mpt_free_msg_frame(ioc, mf);
+ mpt_HardResetHandler(ioc, CAN_SLEEP);
+ error = -ETIMEDOUT;
+ goto out_unlock;
+ }
+
+ /* a reply frame is expected */
+ if ((ioc->sas_mgmt.status &
+ MPT_IOCTL_STATUS_RF_VALID) == 0) {
+ error = -ENXIO;
+ goto out_unlock;
+ }
+
+ /* process the completed Reply Message Frame */
+ reply = (SasIoUnitControlReply_t *)ioc->sas_mgmt.reply;
+ if (reply->IOCStatus != MPI_IOCSTATUS_SUCCESS) {
+ printk("%s: IOCStatus=0x%X IOCLogInfo=0x%X\n",
+ __FUNCTION__,
+ reply->IOCStatus,
+ reply->IOCLogInfo);
+ error = -ENXIO;
+ goto out_unlock;
+ }
+
+ error = 0;
+
+ out_unlock:
+ up(&ioc->sas_mgmt.mutex);
+ out:
+ return error;
}
-#else
-#define mptsas_print_phy_data(phy_data) do { } while (0)
-#define mptsas_print_phy_pg0(pg0) do { } while (0)
-#define mptsas_print_device_pg0(pg0) do { } while (0)
-#define mptsas_print_expander_pg1(pg1) do { } while (0)
-#endif
+
+static struct sas_function_template mptsas_transport_functions = {
+ .get_linkerrors = mptsas_get_linkerrors,
+ .phy_reset = mptsas_phy_reset,
+};
+
+static struct scsi_transport_template *mptsas_transport_template;
static int
mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
@@ -680,7 +847,7 @@ mptsas_parse_device_info(struct sas_identify *identify,
}
static int mptsas_probe_one_phy(struct device *dev,
- struct mptsas_phyinfo *phy_info, int index)
+ struct mptsas_phyinfo *phy_info, int index, int local)
{
struct sas_phy *port;
int error;
@@ -773,6 +940,9 @@ static int mptsas_probe_one_phy(struct device *dev,
break;
}
+ if (local)
+ port->local_attached = 1;
+
error = sas_phy_add(port);
if (error) {
sas_phy_free(port);
@@ -838,7 +1008,7 @@ mptsas_probe_hba_phys(MPT_ADAPTER *ioc, int *index)
}
mptsas_probe_one_phy(&ioc->sh->shost_gendev,
- &port_info->phy_info[i], *index);
+ &port_info->phy_info[i], *index, 1);
(*index)++;
}
@@ -909,7 +1079,8 @@ mptsas_probe_expander_phys(MPT_ADAPTER *ioc, u32 *handle, int *index)
}
}
- mptsas_probe_one_phy(parent, &port_info->phy_info[i], *index);
+ mptsas_probe_one_phy(parent, &port_info->phy_info[i],
+ *index, 0);
(*index)++;
}
@@ -1021,6 +1192,8 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
sh->unique_id = ioc->id;
INIT_LIST_HEAD(&ioc->sas_topology);
+ init_MUTEX(&ioc->sas_mgmt.mutex);
+ init_completion(&ioc->sas_mgmt.done);
/* Verify that we won't exceed the maximum
* number of chain buffers
@@ -1207,6 +1380,7 @@ mptsas_init(void)
mptsasTaskCtx = mpt_register(mptscsih_taskmgmt_complete, MPTSAS_DRIVER);
mptsasInternalCtx =
mpt_register(mptscsih_scandv_complete, MPTSAS_DRIVER);
+ mptsasMgmtCtx = mpt_register(mptsas_mgmt_done, MPTSAS_DRIVER);
if (mpt_event_register(mptsasDoneCtx, mptscsih_event_process) == 0) {
devtprintk((KERN_INFO MYNAM
@@ -1230,6 +1404,7 @@ mptsas_exit(void)
mpt_reset_deregister(mptsasDoneCtx);
mpt_event_deregister(mptsasDoneCtx);
+ mpt_deregister(mptsasMgmtCtx);
mpt_deregister(mptsasInternalCtx);
mpt_deregister(mptsasTaskCtx);
mpt_deregister(mptsasDoneCtx);

drivers/scsi/3w-9xxx.c

View file
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index a748fbf..d06ee65 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -1732,7 +1732,9 @@ static int twa_scsi_eh_reset(struct scsi_cmnd *SCpnt)
tw_dev->num_resets++;
- printk(KERN_WARNING "3w-9xxx: scsi%d: WARNING: (0x%02X:0x%04X): Unit #%d: Command (0x%x) timed out, resetting card.\n", tw_dev->host->host_no, TW_DRIVER, 0x2c, SCpnt->device->id, SCpnt->cmnd[0]);
+ sdev_printk(KERN_WARNING, SCpnt->device,
+ "WARNING: (0x%02X:0x%04X): Command (0x%x) timed out, resetting card.\n",
+ TW_DRIVER, 0x2c, SCpnt->cmnd[0]);
/* Now reset the card and some of the device extension data */
if (twa_reset_device_extension(tw_dev, 0)) {

drivers/scsi/3w-xxxx.c

View file
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
index ae9e020..283f6d2 100644
--- a/drivers/scsi/3w-xxxx.c
+++ b/drivers/scsi/3w-xxxx.c
@@ -1432,7 +1432,9 @@ static int tw_scsi_eh_reset(struct scsi_cmnd *SCpnt)
tw_dev->num_resets++;
- printk(KERN_WARNING "3w-xxxx: scsi%d: WARNING: Unit #%d: Command (0x%x) timed out, resetting card.\n", tw_dev->host->host_no, SCpnt->device->id, SCpnt->cmnd[0]);
+ sdev_printk(KERN_WARNING, SCpnt->device,
+ "WARNING: Command (0x%x) timed out, resetting card.\n",
+ SCpnt->cmnd[0]);
/* Now reset the card and some of the device extension data */
if (tw_reset_device_extension(tw_dev, 0)) {

drivers/scsi/53c700.c

View file
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index a7620fc..e7ad269 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -128,6 +128,7 @@
#include <linux/blkdev.h>
#include <linux/module.h>
#include <linux/interrupt.h>
+#include <linux/device.h>
#include <asm/dma.h>
#include <asm/system.h>
#include <asm/io.h>
@@ -831,8 +832,8 @@ process_extended_message(struct Scsi_Host *host,
} else {
/* SDTR message out of the blue, reject it */
- printk(KERN_WARNING "scsi%d Unexpected SDTR msg\n",
- host->host_no);
+ shost_printk(KERN_WARNING, host,
+ "Unexpected SDTR msg\n");
hostdata->msgout[0] = A_REJECT_MSG;
dma_cache_sync(hostdata->msgout, 1, DMA_TO_DEVICE);
script_patch_16(hostdata->script, MessageCount, 1);
@@ -906,15 +907,17 @@ process_message(struct Scsi_Host *host, struct NCR_700_Host_Parameters *hostdata
NCR_700_clear_flag(SCp->device, NCR_700_DEV_BEGIN_SYNC_NEGOTIATION);
} else if(SCp != NULL && NCR_700_get_tag_neg_state(SCp->device) == NCR_700_DURING_TAG_NEGOTIATION) {
/* rejected our first simple tag message */
- printk(KERN_WARNING "scsi%d (%d:%d) Rejected first tag queue attempt, turning off tag queueing\n", host->host_no, pun, lun);
+ scmd_printk(KERN_WARNING, SCp,
+ "Rejected first tag queue attempt, turning off tag queueing\n");
/* we're done negotiating */
NCR_700_set_tag_neg_state(SCp->device, NCR_700_FINISHED_TAG_NEGOTIATION);
- hostdata->tag_negotiated &= ~(1<<SCp->device->id);
+ hostdata->tag_negotiated &= ~(1<<scmd_id(SCp));
SCp->device->tagged_supported = 0;
scsi_deactivate_tcq(SCp->device, host->cmd_per_lun);
} else {
- printk(KERN_WARNING "scsi%d (%d:%d) Unexpected REJECT Message %s\n",
- host->host_no, pun, lun,
+ shost_printk(KERN_WARNING, host,
+ "(%d:%d) Unexpected REJECT Message %s\n",
+ pun, lun,
NCR_700_phase[(dsps & 0xf00) >> 8]);
/* however, just ignore it */
}
@@ -983,7 +986,8 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
if(SCp->cmnd[0] == REQUEST_SENSE) {
/* OOPS: bad device, returning another
* contingent allegiance condition */
- printk(KERN_ERR "scsi%d (%d:%d) broken device is looping in contingent allegiance: ignoring\n", host->host_no, pun, lun);
+ scmd_printk(KERN_ERR, SCp,
+ "broken device is looping in contingent allegiance: ignoring\n");
NCR_700_scsi_done(hostdata, SCp, hostdata->status[0]);
} else {
#ifdef NCR_DEBUG
@@ -1047,12 +1051,13 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
// SCp->request_bufflen,
// DMA_FROM_DEVICE);
// if(((char *)SCp->request_buffer)[7] & 0x02) {
- // printk(KERN_INFO "scsi%d: (%d:%d) Enabling Tag Command Queuing\n", host->host_no, pun, lun);
- // hostdata->tag_negotiated |= (1<<SCp->device->id);
+ // scmd_printk(KERN_INFO, SCp,
+ // "Enabling Tag Command Queuing\n");
+ // hostdata->tag_negotiated |= (1<<scmd_id(SCp));
// NCR_700_set_flag(SCp->device, NCR_700_DEV_BEGIN_TAG_QUEUEING);
// } else {
// NCR_700_clear_flag(SCp->device, NCR_700_DEV_BEGIN_TAG_QUEUEING);

This diff is incomplete. Download the complete patch.

drivers/scsi/53c700.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/NCR5380.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/NCR53C9x.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/NCR53c406a.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/a100u2w.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/README

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/TODO

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/aachba.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/aacraid.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/commctrl.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/comminit.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/commsup.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/dpcsup.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/linit.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/rkt.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/rx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aacraid/sa.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aha152x.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aha1542.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aha1740.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aic7xxx/aic79xx_osm.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/aic7xxx/aic7xxx_osm.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/atp870u.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ch.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/constants.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTS.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTSchip.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTScontrol.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTSi2c.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTSinit.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTSioctl.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTSstructs.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTStrigger.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTStrigger.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/cpqfcTSworker.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/dc395x.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/dec_esp.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/eata.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/eata_pio.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fd_mcs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/fdomain.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/hosts.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ibmmca.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ide-scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/imm.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/in2000.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ipr.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ips.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/iscsi_tcp.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/iscsi_tcp.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_attr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_crtn.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_ct.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_disc.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_els.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_hbadisc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_mbox.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_nportdisc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_sli.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_sli.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/lpfc/lpfc_version.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/megaraid/megaraid_sas.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ncr53c8xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/nsp32.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/osst.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/pcmcia/nsp_cs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/pcmcia/sym53c500_cs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/ppa.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/psi240i.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2100.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2100_fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2200.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2200_fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2300.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2300_fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2322.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql2322_fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql6312.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/ql6312_fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_attr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_dbg.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_def.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_fw.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_gbl.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_gs.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_inline.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_iocb.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_isr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_mbx.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_os.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_rscn.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_settings.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_sup.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qla2xxx/qla_version.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/qlogicfas408.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_debug.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_error.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_lib.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_scan.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_transport_fc.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_transport_iscsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_transport_sas.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/scsi_transport_spi.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sd.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sg.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sgiwd93.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sgiwd93.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/scsi/sr.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/st.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sym53c416.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/sym53c8xx_defs.h

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/tmscsim.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/u14-34f.c

View file

This diff is incomplete. Download the complete patch.

include/scsi/iscsi_if.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/iscsi_proto.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_device.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_host.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_transport_fc.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_transport_iscsi.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/scsi_transport_sas.h

View file

This diff is incomplete. Download the complete patch.