You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (30 commits) [SCSI] qla1280: set residual correctly [SCSI] fusion: bump version [SCSI] fusion: MODULE_VERSION support [SCSI] fusion: power pc and miscellaneous bug fixs [SCSI] fusion: fibre channel: return DID_ERROR for MPI_IOCSTATUS_SCSI_IOC_TERMINATED [SCSI] megaraid_sas: Update module author [SCSI] 3ware 8000 serialize reset code [SCSI] sr: fix error code check in sr_block_ioctl() [SCSI] scsi: lpfc error path fix [SCSI] aacraid: Product List Update [SCSI] libiscsi: fix senselen calculation [SCSI] iscsi: simplify IPv6 and IPv4 address printing [SCSI] iscsi: newline in printk [SCSI] iscsi: fix crypto_alloc_hash() error check [SCSI] iscsi: fix 2.6.19 data digest calculation bug [SCSI] scsi_scan: fix report lun problems with CDROM or RBC devices [SCSI] qla2xxx: Update version number to 8.01.07-k4. [SCSI] qla2xxx: Use generic isp_ops.fw_dump() function. [SCSI] qla2xxx: Perform a fw-dump when an ISP23xx RISC-paused state is detected. [SCSI] qla2xxx: Correct reset handling logic. ...
This commit is contained in:
@@ -11,43 +11,42 @@ the original).
|
||||
Supported Cards/Chipsets
|
||||
-------------------------
|
||||
PCI ID (pci.ids) OEM Product
|
||||
9005:0283:9005:0283 Adaptec Catapult (3210S with arc firmware)
|
||||
9005:0284:9005:0284 Adaptec Tomcat (3410S with arc firmware)
|
||||
9005:0285:9005:0285 Adaptec 2200S (Vulcan)
|
||||
9005:0285:9005:0286 Adaptec 2120S (Crusader)
|
||||
9005:0285:9005:0287 Adaptec 2200S (Vulcan-2m)
|
||||
9005:0285:9005:0288 Adaptec 3230S (Harrier)
|
||||
9005:0285:9005:0289 Adaptec 3240S (Tornado)
|
||||
9005:0285:9005:028a Adaptec 2020ZCR (Skyhawk)
|
||||
9005:0285:9005:028b Adaptec 2025ZCR (Terminator)
|
||||
9005:0285:9005:028b Adaptec 2025ZCR (Terminator)
|
||||
9005:0286:9005:028c Adaptec 2230S (Lancer)
|
||||
9005:0286:9005:028c Adaptec 2230SLP (Lancer)
|
||||
9005:0286:9005:028d Adaptec 2130S (Lancer)
|
||||
9005:0285:9005:028e Adaptec 2020SA (Skyhawk)
|
||||
9005:0285:9005:028f Adaptec 2025SA (Terminator)
|
||||
9005:0285:9005:028f Adaptec 2025SA (Terminator)
|
||||
9005:0285:9005:0290 Adaptec 2410SA (Jaguar)
|
||||
9005:0285:103c:3227 Adaptec 2610SA (Bearcat HP release)
|
||||
9005:0285:9005:0293 Adaptec 21610SA (Corsair-16)
|
||||
9005:0285:103c:3227 Adaptec 2610SA (Bearcat HP release)
|
||||
9005:0285:9005:0293 Adaptec 21610SA (Corsair-16)
|
||||
9005:0285:9005:0296 Adaptec 2240S (SabreExpress)
|
||||
9005:0285:9005:0292 Adaptec 2810SA (Corsair-8)
|
||||
9005:0285:9005:0294 Adaptec Prowler
|
||||
9005:0285:9005:0297 Adaptec 4005SAS (AvonPark)
|
||||
9005:0285:9005:0298 Adaptec 4000SAS (BlackBird)
|
||||
9005:0285:9005:0297 Adaptec 4005 (AvonPark)
|
||||
9005:0285:9005:0298 Adaptec 4000 (BlackBird)
|
||||
9005:0285:9005:0299 Adaptec 4800SAS (Marauder-X)
|
||||
9005:0285:9005:029a Adaptec 4805SAS (Marauder-E)
|
||||
9005:0286:9005:029b Adaptec 2820SA (Intruder)
|
||||
9005:0286:9005:029c Adaptec 2620SA (Intruder)
|
||||
9005:0286:9005:029d Adaptec 2420SA (Intruder HP release)
|
||||
9005:0286:9005:02a2 Adaptec 3800SAS (Hurricane44)
|
||||
9005:0286:9005:02a7 Adaptec 3805SAS (Hurricane80)
|
||||
9005:0286:9005:02a8 Adaptec 3400SAS (Hurricane40)
|
||||
9005:0286:9005:02ac Adaptec 1800SAS (Typhoon44)
|
||||
9005:0286:9005:02b3 Adaptec 2400SAS (Hurricane40lm)
|
||||
9005:0285:9005:02b5 Adaptec ASR5800 (Voodoo44)
|
||||
9005:0285:9005:02b6 Adaptec ASR5805 (Voodoo80)
|
||||
9005:0285:9005:02b7 Adaptec ASR5808 (Voodoo08)
|
||||
9005:0286:9005:02ac Adaptec 1800 (Typhoon44)
|
||||
9005:0285:9005:02b5 Adaptec 5445 (Voodoo44)
|
||||
9005:0285:9005:02b6 Adaptec 5805 (Voodoo80)
|
||||
9005:0285:9005:02b7 Adaptec 5085 (Voodoo08)
|
||||
9005:0285:9005:02bb Adaptec 3405 (Marauder40LP)
|
||||
9005:0285:9005:02bc Adaptec 3805 (Marauder80LP)
|
||||
9005:0285:9005:02c7 Adaptec 3085 (Marauder08ELP)
|
||||
9005:0285:9005:02bd Adaptec 31205 (Marauder120)
|
||||
9005:0285:9005:02be Adaptec 31605 (Marauder160)
|
||||
9005:0285:9005:02c3 Adaptec 51205 (Voodoo120)
|
||||
9005:0285:9005:02c4 Adaptec 51605 (Voodoo160)
|
||||
1011:0046:9005:0364 Adaptec 5400S (Mustang)
|
||||
1011:0046:9005:0365 Adaptec 5400S (Mustang)
|
||||
9005:0287:9005:0800 Adaptec Themisto (Jupiter)
|
||||
9005:0200:9005:0200 Adaptec Themisto (Jupiter)
|
||||
9005:0286:9005:0800 Adaptec Callisto (Jupiter)
|
||||
@@ -68,21 +67,32 @@ Supported Cards/Chipsets
|
||||
9005:0285:17aa:0287 Legend S230 (Vulcan)
|
||||
9005:0285:9005:0290 IBM ServeRAID 7t (Jaguar)
|
||||
9005:0285:1014:02F2 IBM ServeRAID 8i (AvonPark)
|
||||
9005:0285:1014:0312 IBM ServeRAID 8i (AvonParkLite)
|
||||
9005:0286:1014:9540 IBM ServeRAID 8k/8k-l4 (AuroraLite)
|
||||
9005:0286:1014:9580 IBM ServeRAID 8k/8k-l8 (Aurora)
|
||||
9005:0286:1014:034d IBM ServeRAID 8s (Hurricane)
|
||||
9005:0286:9005:029e ICP ICP9024R0 (Lancer)
|
||||
9005:0286:9005:029f ICP ICP9014R0 (Lancer)
|
||||
9005:0285:1014:034d IBM ServeRAID 8s (Marauder-E)
|
||||
9005:0286:9005:029e ICP ICP9024RO (Lancer)
|
||||
9005:0286:9005:029f ICP ICP9014RO (Lancer)
|
||||
9005:0286:9005:02a0 ICP ICP9047MA (Lancer)
|
||||
9005:0286:9005:02a1 ICP ICP9087MA (Lancer)
|
||||
9005:0286:9005:02a3 ICP ICP5445AU (Hurricane44)
|
||||
9005:0286:9005:02a4 ICP ICP9085LI (Marauder-X)
|
||||
9005:0286:9005:02a5 ICP ICP5085BR (Marauder-E)
|
||||
9005:0285:9005:02a4 ICP ICP9085LI (Marauder-X)
|
||||
9005:0285:9005:02a5 ICP ICP5085BR (Marauder-E)
|
||||
9005:0286:9005:02a6 ICP ICP9067MA (Intruder-6)
|
||||
9005:0286:9005:02a9 ICP ICP5085AU (Hurricane80)
|
||||
9005:0286:9005:02aa ICP ICP5045AU (Hurricane40)
|
||||
9005:0286:9005:02b4 ICP ICP5045AL (Hurricane40lm)
|
||||
9005:0285:9005:02b2 ICP (Voodoo 8 internal 8 external)
|
||||
9005:0285:9005:02b8 ICP ICP5445SL (Voodoo44)
|
||||
9005:0285:9005:02b9 ICP ICP5085SL (Voodoo80)
|
||||
9005:0285:9005:02ba ICP ICP5805SL (Voodoo08)
|
||||
9005:0285:9005:02bf ICP ICP5045BL (Marauder40LP)
|
||||
9005:0285:9005:02c0 ICP ICP5085BL (Marauder80LP)
|
||||
9005:0285:9005:02c8 ICP ICP5805BL (Marauder08ELP)
|
||||
9005:0285:9005:02c1 ICP ICP5125BR (Marauder120)
|
||||
9005:0285:9005:02c2 ICP ICP5165BR (Marauder160)
|
||||
9005:0285:9005:02c5 ICP ICP5125SL (Voodoo120)
|
||||
9005:0285:9005:02c6 ICP ICP5165SL (Voodoo160)
|
||||
9005:0286:9005:02ab (Typhoon40)
|
||||
9005:0286:9005:02ad (Aurora ARK)
|
||||
9005:0286:9005:02ae (Aurora Lite ARK)
|
||||
9005:0285:9005:02b0 (Sunrise Lake ARK)
|
||||
9005:0285:9005:02b1 Adaptec (Voodoo 8 internal 8 external)
|
||||
|
||||
People
|
||||
-------------------------
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* For use with LSI Logic PCI chip/adapter(s)
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
@@ -73,6 +73,7 @@
|
||||
MODULE_AUTHOR(MODULEAUTHOR);
|
||||
MODULE_DESCRIPTION(my_NAME);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
/*
|
||||
* cmd line parameters
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LSIFC9xx/LSI409xx Fibre Channel
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
@@ -72,11 +72,11 @@
|
||||
#endif
|
||||
|
||||
#ifndef COPYRIGHT
|
||||
#define COPYRIGHT "Copyright (c) 1999-2005 " MODULEAUTHOR
|
||||
#define COPYRIGHT "Copyright (c) 1999-2007 " MODULEAUTHOR
|
||||
#endif
|
||||
|
||||
#define MPT_LINUX_VERSION_COMMON "3.04.02"
|
||||
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.02"
|
||||
#define MPT_LINUX_VERSION_COMMON "3.04.03"
|
||||
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.03"
|
||||
#define WHAT_MAGIC_STRING "@" "(" "#" ")"
|
||||
|
||||
#define show_mptmod_ver(s,ver) \
|
||||
@@ -1059,7 +1059,7 @@ extern int mpt_stm_index; /* needed by mptstm.c */
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
#endif /* } __KERNEL__ */
|
||||
|
||||
#if defined(__alpha__) || defined(__sparc_v9__) || defined(__ia64__) || defined(__x86_64__)
|
||||
#if defined(__alpha__) || defined(__sparc_v9__) || defined(__ia64__) || defined(__x86_64__) || defined(__powerpc__)
|
||||
#define CAST_U32_TO_PTR(x) ((void *)(u64)x)
|
||||
#define CAST_PTR_TO_U32(x) ((u32)(u64)x)
|
||||
#else
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* For use with LSI Logic PCI chip/adapters
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
@@ -66,7 +66,7 @@
|
||||
#include <scsi/scsi_host.h>
|
||||
#include <scsi/scsi_tcq.h>
|
||||
|
||||
#define COPYRIGHT "Copyright (c) 1999-2005 LSI Logic Corporation"
|
||||
#define COPYRIGHT "Copyright (c) 1999-2007 LSI Logic Corporation"
|
||||
#define MODULEAUTHOR "LSI Logic Corporation"
|
||||
#include "mptbase.h"
|
||||
#include "mptctl.h"
|
||||
@@ -79,6 +79,7 @@
|
||||
MODULE_AUTHOR(MODULEAUTHOR);
|
||||
MODULE_DESCRIPTION(my_NAME);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LSIFC9xx/LSI409xx Fibre Channel
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* For use with LSI Logic PCI chip/adapter(s)
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
@@ -75,6 +75,7 @@
|
||||
MODULE_AUTHOR(MODULEAUTHOR);
|
||||
MODULE_DESCRIPTION(my_NAME);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
/* Command line args */
|
||||
#define MPTFC_DEV_LOSS_TMO (60)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* For use with LSI Logic Fibre Channel PCI chip/adapters
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 2000-2005 LSI Logic Corporation
|
||||
* Copyright (c) 2000-2007 LSI Logic Corporation
|
||||
*
|
||||
*/
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
@@ -56,9 +56,11 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#define my_VERSION MPT_LINUX_VERSION_COMMON
|
||||
#define MYNAM "mptlan"
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
/*
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* For use with LSI Logic Fibre Channel PCI chip/adapters
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 2000-2005 LSI Logic Corporation
|
||||
* Copyright (c) 2000-2007 LSI Logic Corporation
|
||||
*
|
||||
*/
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
* For use with LSI Logic PCI chip/adapter(s)
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
* Copyright (c) 2005-2006 Dell
|
||||
* Copyright (c) 2005-2007 Dell
|
||||
*/
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
/*
|
||||
@@ -75,6 +75,7 @@
|
||||
MODULE_AUTHOR(MODULEAUTHOR);
|
||||
MODULE_DESCRIPTION(my_NAME);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
static int mpt_pt_clear;
|
||||
module_param(mpt_pt_clear, int, 0);
|
||||
@@ -245,7 +246,8 @@ static void mptsas_print_device_pg0(SasDevicePage0_t *pg0)
|
||||
printk("Parent Handle=0x%X\n" ,le16_to_cpu(pg0->ParentDevHandle));
|
||||
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("SAS Address=0x%llX\n", (unsigned long long)
|
||||
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
|
||||
@@ -349,9 +351,9 @@ mptsas_port_delete(struct mptsas_portinfo_details * port_details)
|
||||
phy_info = port_info->phy_info;
|
||||
|
||||
dsaswideprintk((KERN_DEBUG "%s: [%p]: num_phys=%02d "
|
||||
"bitmask=0x%016llX\n",
|
||||
__FUNCTION__, port_details, port_details->num_phys,
|
||||
port_details->phy_bitmask));
|
||||
"bitmask=0x%016llX\n", __FUNCTION__, port_details,
|
||||
port_details->num_phys, (unsigned long long)
|
||||
port_details->phy_bitmask));
|
||||
|
||||
for (i = 0; i < port_info->num_phys; i++, phy_info++) {
|
||||
if(phy_info->port_details != port_details)
|
||||
@@ -476,7 +478,7 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
|
||||
for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) {
|
||||
sas_address = phy_info->attached.sas_address;
|
||||
dsaswideprintk((KERN_DEBUG "phy_id=%d sas_address=0x%018llX\n",
|
||||
i, sas_address));
|
||||
i, (unsigned long long)sas_address));
|
||||
if (!sas_address)
|
||||
continue;
|
||||
port_details = phy_info->port_details;
|
||||
@@ -495,8 +497,8 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
|
||||
(1 << phy_info->phy_id);
|
||||
phy_info->sas_port_add_phy=1;
|
||||
dsaswideprintk((KERN_DEBUG "\t\tForming port\n\t\t"
|
||||
"phy_id=%d sas_address=0x%018llX\n",
|
||||
i, sas_address));
|
||||
"phy_id=%d sas_address=0x%018llX\n",
|
||||
i, (unsigned long long)sas_address));
|
||||
phy_info->port_details = port_details;
|
||||
}
|
||||
|
||||
@@ -512,8 +514,9 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
|
||||
if (phy_info_cmp->port_details == port_details )
|
||||
continue;
|
||||
dsaswideprintk((KERN_DEBUG
|
||||
"\t\tphy_id=%d sas_address=0x%018llX\n",
|
||||
j, phy_info_cmp->attached.sas_address));
|
||||
"\t\tphy_id=%d sas_address=0x%018llX\n",
|
||||
j, (unsigned long long)
|
||||
phy_info_cmp->attached.sas_address));
|
||||
if (phy_info_cmp->port_details) {
|
||||
port_details->rphy =
|
||||
mptsas_get_rphy(phy_info_cmp);
|
||||
@@ -546,11 +549,10 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
|
||||
if (!port_details)
|
||||
continue;
|
||||
dsaswideprintk((KERN_DEBUG
|
||||
"%s: [%p]: phy_id=%02d num_phys=%02d "
|
||||
"bitmask=0x%016llX\n",
|
||||
__FUNCTION__,
|
||||
port_details, i, port_details->num_phys,
|
||||
port_details->phy_bitmask));
|
||||
"%s: [%p]: phy_id=%02d num_phys=%02d "
|
||||
"bitmask=0x%016llX\n", __FUNCTION__,
|
||||
port_details, i, port_details->num_phys,
|
||||
(unsigned long long)port_details->phy_bitmask));
|
||||
dsaswideprintk((KERN_DEBUG"\t\tport = %p rphy=%p\n",
|
||||
port_details->port, port_details->rphy));
|
||||
}
|
||||
@@ -2079,8 +2081,10 @@ mptsas_persist_clear_table(struct work_struct *work)
|
||||
static void
|
||||
mptsas_reprobe_lun(struct scsi_device *sdev, void *data)
|
||||
{
|
||||
int rc;
|
||||
|
||||
sdev->no_uld_attach = data ? 1 : 0;
|
||||
scsi_device_reprobe(sdev);
|
||||
rc = scsi_device_reprobe(sdev);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* For use with LSI Logic PCI chip/adapter(s)
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
@@ -76,6 +76,7 @@
|
||||
MODULE_AUTHOR(MODULEAUTHOR);
|
||||
MODULE_DESCRIPTION(my_NAME);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||
|
||||
@@ -701,6 +702,17 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (ioc->bus_type == FC) {
|
||||
/*
|
||||
* The FC IOC may kill a request for variety of
|
||||
* reasons, some of which may be recovered by a
|
||||
* retry, some which are unlikely to be
|
||||
* recovered. Return DID_ERROR instead of
|
||||
* DID_RESET to permit retry of the command,
|
||||
* just not an infinite number of them
|
||||
*/
|
||||
sc->result = DID_ERROR << 16;
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2688,7 +2700,8 @@ mptscsih_initTarget(MPT_SCSI_HOST *hd, VirtTarget *vtarget,
|
||||
struct scsi_device *sdev)
|
||||
{
|
||||
dinitprintk((MYIOC_s_INFO_FMT "initTarget bus=%d id=%d lun=%d hd=%p\n",
|
||||
hd->ioc->name, vtarget->bus_id, vtarget->target_id, lun, hd));
|
||||
hd->ioc->name, vtarget->bus_id, vtarget->target_id,
|
||||
sdev->lun, hd));
|
||||
|
||||
/* Is LUN supported? If so, upper 2 bits will be 0
|
||||
* in first byte of inquiry data.
|
||||
@@ -2770,7 +2783,7 @@ mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtTarget *target,
|
||||
else {
|
||||
factor = MPT_ULTRA320;
|
||||
if (scsi_device_qas(sdev)) {
|
||||
ddvtprintk((KERN_INFO "Enabling QAS due to byte56=%02x on id=%d!\n", byte56, id));
|
||||
ddvtprintk((KERN_INFO "Enabling QAS due to byte56=%02x on id=%d!\n", scsi_device_qas(sdev), id));
|
||||
noQas = 0;
|
||||
}
|
||||
if (sdev->type == TYPE_TAPE &&
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* LSIFC9xx/LSI409xx Fibre Channel
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* For use with LSI Logic PCI chip/adapter(s)
|
||||
* running LSI Logic Fusion MPT (Message Passing Technology) firmware.
|
||||
*
|
||||
* Copyright (c) 1999-2005 LSI Logic Corporation
|
||||
* Copyright (c) 1999-2007 LSI Logic Corporation
|
||||
* (mailto:mpt_linux_developer@lsil.com)
|
||||
*
|
||||
*/
|
||||
@@ -77,6 +77,7 @@
|
||||
MODULE_AUTHOR(MODULEAUTHOR);
|
||||
MODULE_DESCRIPTION(my_NAME);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(my_VERSION);
|
||||
|
||||
/* Command line args */
|
||||
static int mpt_saf_te = MPTSCSIH_SAF_TE;
|
||||
|
||||
+29
-31
@@ -6,7 +6,7 @@
|
||||
Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||
Brad Strand <linux@3ware.com>
|
||||
|
||||
Copyright (C) 1999-2005 3ware Inc.
|
||||
Copyright (C) 1999-2007 3ware Inc.
|
||||
|
||||
Kernel compatiblity By: Andre Hedrick <andre@suse.com>
|
||||
Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com>
|
||||
@@ -191,6 +191,9 @@
|
||||
before shutting down card.
|
||||
Change to new 'change_queue_depth' api.
|
||||
Fix 'handled=1' ISR usage, remove bogus IRQ check.
|
||||
1.26.02.002 - Free irq handler in __tw_shutdown().
|
||||
Turn on RCD bit for caching mode page.
|
||||
Serialize reset code.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
@@ -214,7 +217,7 @@
|
||||
#include "3w-xxxx.h"
|
||||
|
||||
/* Globals */
|
||||
#define TW_DRIVER_VERSION "1.26.02.001"
|
||||
#define TW_DRIVER_VERSION "1.26.02.002"
|
||||
static TW_Device_Extension *tw_device_extension_list[TW_MAX_SLOT];
|
||||
static int tw_device_extension_count = 0;
|
||||
static int twe_major = -1;
|
||||
@@ -226,7 +229,7 @@ MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(TW_DRIVER_VERSION);
|
||||
|
||||
/* Function prototypes */
|
||||
static int tw_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_reset);
|
||||
static int tw_reset_device_extension(TW_Device_Extension *tw_dev);
|
||||
|
||||
/* Functions */
|
||||
|
||||
@@ -984,24 +987,12 @@ static int tw_chrdev_ioctl(struct inode *inode, struct file *file, unsigned int
|
||||
/* Now wait for the command to complete */
|
||||
timeout = wait_event_timeout(tw_dev->ioctl_wqueue, tw_dev->chrdev_request_id == TW_IOCTL_CHRDEV_FREE, timeout);
|
||||
|
||||
/* See if we reset while waiting for the ioctl to complete */
|
||||
if (test_bit(TW_IN_RESET, &tw_dev->flags)) {
|
||||
clear_bit(TW_IN_RESET, &tw_dev->flags);
|
||||
retval = -ERESTARTSYS;
|
||||
goto out2;
|
||||
}
|
||||
|
||||
/* We timed out, and didn't get an interrupt */
|
||||
if (tw_dev->chrdev_request_id != TW_IOCTL_CHRDEV_FREE) {
|
||||
/* Now we need to reset the board */
|
||||
printk(KERN_WARNING "3w-xxxx: scsi%d: Character ioctl (0x%x) timed out, resetting card.\n", tw_dev->host->host_no, cmd);
|
||||
retval = -EIO;
|
||||
spin_lock_irqsave(tw_dev->host->host_lock, flags);
|
||||
tw_dev->state[request_id] = TW_S_COMPLETED;
|
||||
tw_state_request_finish(tw_dev, request_id);
|
||||
tw_dev->posted_request_count--;
|
||||
spin_unlock_irqrestore(tw_dev->host->host_lock, flags);
|
||||
if (tw_reset_device_extension(tw_dev, 1)) {
|
||||
if (tw_reset_device_extension(tw_dev)) {
|
||||
printk(KERN_WARNING "3w-xxxx: tw_chrdev_ioctl(): Reset failed for card %d.\n", tw_dev->host->host_no);
|
||||
}
|
||||
goto out2;
|
||||
@@ -1336,7 +1327,7 @@ static void tw_unmap_scsi_data(struct pci_dev *pdev, struct scsi_cmnd *cmd)
|
||||
} /* End tw_unmap_scsi_data() */
|
||||
|
||||
/* This function will reset a device extension */
|
||||
static int tw_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_reset)
|
||||
static int tw_reset_device_extension(TW_Device_Extension *tw_dev)
|
||||
{
|
||||
int i = 0;
|
||||
struct scsi_cmnd *srb;
|
||||
@@ -1382,15 +1373,10 @@ static int tw_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_rese
|
||||
printk(KERN_WARNING "3w-xxxx: scsi%d: Reset sequence failed.\n", tw_dev->host->host_no);
|
||||
return 1;
|
||||
}
|
||||
TW_ENABLE_AND_CLEAR_INTERRUPTS(tw_dev);
|
||||
|
||||
/* Wake up any ioctl that was pending before the reset */
|
||||
if ((tw_dev->chrdev_request_id == TW_IOCTL_CHRDEV_FREE) || (ioctl_reset)) {
|
||||
clear_bit(TW_IN_RESET, &tw_dev->flags);
|
||||
} else {
|
||||
tw_dev->chrdev_request_id = TW_IOCTL_CHRDEV_FREE;
|
||||
wake_up(&tw_dev->ioctl_wqueue);
|
||||
}
|
||||
TW_ENABLE_AND_CLEAR_INTERRUPTS(tw_dev);
|
||||
clear_bit(TW_IN_RESET, &tw_dev->flags);
|
||||
tw_dev->chrdev_request_id = TW_IOCTL_CHRDEV_FREE;
|
||||
|
||||
return 0;
|
||||
} /* End tw_reset_device_extension() */
|
||||
@@ -1437,14 +1423,18 @@ static int tw_scsi_eh_reset(struct scsi_cmnd *SCpnt)
|
||||
"WARNING: Command (0x%x) timed out, resetting card.\n",
|
||||
SCpnt->cmnd[0]);
|
||||
|
||||
/* Make sure we are not issuing an ioctl or resetting from ioctl */
|
||||
mutex_lock(&tw_dev->ioctl_lock);
|
||||
|
||||
/* Now reset the card and some of the device extension data */
|
||||
if (tw_reset_device_extension(tw_dev, 0)) {
|
||||
if (tw_reset_device_extension(tw_dev)) {
|
||||
printk(KERN_WARNING "3w-xxxx: scsi%d: Reset failed.\n", tw_dev->host->host_no);
|
||||
goto out;
|
||||
}
|
||||
|
||||
retval = SUCCESS;
|
||||
out:
|
||||
mutex_unlock(&tw_dev->ioctl_lock);
|
||||
return retval;
|
||||
} /* End tw_scsi_eh_reset() */
|
||||
|
||||
@@ -1660,9 +1650,9 @@ static int tw_scsiop_mode_sense_complete(TW_Device_Extension *tw_dev, int reques
|
||||
request_buffer[4] = 0x8; /* caching page */
|
||||
request_buffer[5] = 0xa; /* page length */
|
||||
if (*flags & 0x1)
|
||||
request_buffer[6] = 0x4; /* WCE on */
|
||||
request_buffer[6] = 0x5; /* WCE on, RCD on */
|
||||
else
|
||||
request_buffer[6] = 0x0; /* WCE off */
|
||||
request_buffer[6] = 0x1; /* WCE off, RCD on */
|
||||
tw_transfer_internal(tw_dev, request_id, request_buffer,
|
||||
sizeof(request_buffer));
|
||||
|
||||
@@ -2012,6 +2002,10 @@ static int tw_scsi_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd
|
||||
int retval = 1;
|
||||
TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata;
|
||||
|
||||
/* If we are resetting due to timed out ioctl, report as busy */
|
||||
if (test_bit(TW_IN_RESET, &tw_dev->flags))
|
||||
return SCSI_MLQUEUE_HOST_BUSY;
|
||||
|
||||
/* Save done function into Scsi_Cmnd struct */
|
||||
SCpnt->scsi_done = done;
|
||||
|
||||
@@ -2100,6 +2094,10 @@ static irqreturn_t tw_interrupt(int irq, void *dev_instance)
|
||||
|
||||
handled = 1;
|
||||
|
||||
/* If we are resetting, bail */
|
||||
if (test_bit(TW_IN_RESET, &tw_dev->flags))
|
||||
goto tw_interrupt_bail;
|
||||
|
||||
/* Check controller for errors */
|
||||
if (tw_check_bits(status_reg_value)) {
|
||||
dprintk(KERN_WARNING "3w-xxxx: tw_interrupt(): Unexpected bits.\n");
|
||||
@@ -2276,6 +2274,9 @@ static void __tw_shutdown(TW_Device_Extension *tw_dev)
|
||||
/* Disable interrupts */
|
||||
TW_DISABLE_INTERRUPTS(tw_dev);
|
||||
|
||||
/* Free up the IRQ */
|
||||
free_irq(tw_dev->tw_pci_dev->irq, tw_dev);
|
||||
|
||||
printk(KERN_WARNING "3w-xxxx: Shutting down host %d.\n", tw_dev->host->host_no);
|
||||
|
||||
/* Tell the card we are shutting down */
|
||||
@@ -2444,9 +2445,6 @@ static void tw_remove(struct pci_dev *pdev)
|
||||
twe_major = -1;
|
||||
}
|
||||
|
||||
/* Free up the IRQ */
|
||||
free_irq(tw_dev->tw_pci_dev->irq, tw_dev);
|
||||
|
||||
/* Shutdown the card */
|
||||
__tw_shutdown(tw_dev);
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||
Brad Strand <linux@3ware.com>
|
||||
|
||||
Copyright (C) 1999-2005 3ware Inc.
|
||||
Copyright (C) 1999-2007 3ware Inc.
|
||||
|
||||
Kernel compatiblity By: Andre Hedrick <andre@suse.com>
|
||||
Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com>
|
||||
|
||||
@@ -1303,7 +1303,7 @@ config SCSI_LPFC
|
||||
|
||||
config SCSI_SEAGATE
|
||||
tristate "Seagate ST-02 and Future Domain TMC-8xx SCSI support"
|
||||
depends on X86 && ISA && SCSI && BROKEN
|
||||
depends on X86 && ISA && SCSI
|
||||
---help---
|
||||
These are 8-bit SCSI controllers; the ST-01 is also supported by
|
||||
this driver. It is explained in section 3.9 of the SCSI-HOWTO,
|
||||
|
||||
@@ -117,8 +117,8 @@ static struct pci_device_id aac_pci_tbl[] = {
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029b, 0, 0, 22 }, /* AAR-2820SA (Intruder) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029c, 0, 0, 23 }, /* AAR-2620SA (Intruder) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029d, 0, 0, 24 }, /* AAR-2420SA (Intruder) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029e, 0, 0, 25 }, /* ICP9024R0 (Lancer) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029f, 0, 0, 26 }, /* ICP9014R0 (Lancer) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029e, 0, 0, 25 }, /* ICP9024RO (Lancer) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x029f, 0, 0, 26 }, /* ICP9014RO (Lancer) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x02a0, 0, 0, 27 }, /* ICP9047MA (Lancer) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x02a1, 0, 0, 28 }, /* ICP9087MA (Lancer) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x02a3, 0, 0, 29 }, /* ICP5445AU (Hurricane44) */
|
||||
@@ -137,15 +137,15 @@ static struct pci_device_id aac_pci_tbl[] = {
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0294, 0, 0, 41 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */
|
||||
{ 0x9005, 0x0285, 0x103C, 0x3227, 0, 0, 42 }, /* AAR-2610SA PCI SATA 6ch */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0296, 0, 0, 43 }, /* ASR-2240S (SabreExpress) */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0297, 0, 0, 44 }, /* ASR-4005SAS */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0297, 0, 0, 44 }, /* ASR-4005 */
|
||||
{ 0x9005, 0x0285, 0x1014, 0x02F2, 0, 0, 45 }, /* IBM 8i (AvonPark) */
|
||||
{ 0x9005, 0x0285, 0x1014, 0x0312, 0, 0, 45 }, /* IBM 8i (AvonPark Lite) */
|
||||
{ 0x9005, 0x0286, 0x1014, 0x9580, 0, 0, 46 }, /* IBM 8k/8k-l8 (Aurora) */
|
||||
{ 0x9005, 0x0286, 0x1014, 0x9540, 0, 0, 47 }, /* IBM 8k/8k-l4 (Aurora Lite) */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0298, 0, 0, 48 }, /* ASR-4000SAS (BlackBird) */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0298, 0, 0, 48 }, /* ASR-4000 (BlackBird) */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x0299, 0, 0, 49 }, /* ASR-4800SAS (Marauder-X) */
|
||||
{ 0x9005, 0x0285, 0x9005, 0x029a, 0, 0, 50 }, /* ASR-4805SAS (Marauder-E) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x02a2, 0, 0, 51 }, /* ASR-3800SAS (Hurricane44) */
|
||||
{ 0x9005, 0x0286, 0x9005, 0x02a2, 0, 0, 51 }, /* ASR-3800 (Hurricane44) */
|
||||
|
||||
{ 0x9005, 0x0285, 0x1028, 0x0287, 0, 0, 52 }, /* Perc 320/DC*/
|
||||
{ 0x1011, 0x0046, 0x9005, 0x0365, 0, 0, 53 }, /* Adaptec 5400S (Mustang)*/
|
||||
@@ -193,8 +193,8 @@ static struct aac_driver_ident aac_drivers[] = {
|
||||
{ aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2820SA ", 1 }, /* AAR-2820SA (Intruder) */
|
||||
{ aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2620SA ", 1 }, /* AAR-2620SA (Intruder) */
|
||||
{ aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2420SA ", 1 }, /* AAR-2420SA (Intruder) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP9024R0 ", 2 }, /* ICP9024R0 (Lancer) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP9014R0 ", 1 }, /* ICP9014R0 (Lancer) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP9024RO ", 2 }, /* ICP9024RO (Lancer) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP9014RO ", 1 }, /* ICP9014RO (Lancer) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP9047MA ", 1 }, /* ICP9047MA (Lancer) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP9087MA ", 1 }, /* ICP9087MA (Lancer) */
|
||||
{ aac_rkt_init, "aacraid", "ICP ", "ICP5445AU ", 1 }, /* ICP5445AU (Hurricane44) */
|
||||
@@ -212,14 +212,14 @@ static struct aac_driver_ident aac_drivers[] = {
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2026ZCR ", 1 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2610SA ", 1 }, /* SATA 6Ch (Bearcat) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2240S ", 1 }, /* ASR-2240S (SabreExpress) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4005SAS ", 1 }, /* ASR-4005SAS */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4005 ", 1 }, /* ASR-4005 */
|
||||
{ aac_rx_init, "ServeRAID","IBM ", "ServeRAID 8i ", 1 }, /* IBM 8i (AvonPark) */
|
||||
{ aac_rkt_init, "ServeRAID","IBM ", "ServeRAID 8k-l8 ", 1 }, /* IBM 8k/8k-l8 (Aurora) */
|
||||
{ aac_rkt_init, "ServeRAID","IBM ", "ServeRAID 8k-l4 ", 1 }, /* IBM 8k/8k-l4 (Aurora Lite) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4000SAS ", 1 }, /* ASR-4000SAS (BlackBird & AvonPark) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4000 ", 1 }, /* ASR-4000 (BlackBird & AvonPark) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4800SAS ", 1 }, /* ASR-4800SAS (Marauder-X) */
|
||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4805SAS ", 1 }, /* ASR-4805SAS (Marauder-E) */
|
||||
{ aac_rkt_init, "aacraid", "ADAPTEC ", "ASR-3800SAS ", 1 }, /* ASR-3800SAS (Hurricane44) */
|
||||
{ aac_rkt_init, "aacraid", "ADAPTEC ", "ASR-3800 ", 1 }, /* ASR-3800 (Hurricane44) */
|
||||
|
||||
{ aac_rx_init, "percraid", "DELL ", "PERC 320/DC ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Perc 320/DC*/
|
||||
{ aac_sa_init, "aacraid", "ADAPTEC ", "Adaptec 5400S ", 4, AAC_QUIRK_34SG }, /* Adaptec 5400S (Mustang)*/
|
||||
|
||||
@@ -18215,6 +18215,7 @@ AdvInquiryHandling(
|
||||
}
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
/* PCI Devices supported by this driver */
|
||||
static struct pci_device_id advansys_pci_tbl[] __devinitdata = {
|
||||
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_1200A,
|
||||
@@ -18232,4 +18233,4 @@ static struct pci_device_id advansys_pci_tbl[] __devinitdata = {
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, advansys_pci_tbl);
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
@@ -749,7 +749,7 @@ static int iscsi_scsi_data_in(struct iscsi_conn *conn)
|
||||
if (!offset)
|
||||
crypto_hash_update(
|
||||
&tcp_conn->rx_hash,
|
||||
&sg[i], 1);
|
||||
&sg[i], sg[i].length);
|
||||
else
|
||||
partial_sg_digest_update(
|
||||
&tcp_conn->rx_hash,
|
||||
@@ -1777,13 +1777,13 @@ iscsi_tcp_conn_create(struct iscsi_cls_session *cls_session, uint32_t conn_idx)
|
||||
tcp_conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0,
|
||||
CRYPTO_ALG_ASYNC);
|
||||
tcp_conn->tx_hash.flags = 0;
|
||||
if (!tcp_conn->tx_hash.tfm)
|
||||
if (IS_ERR(tcp_conn->tx_hash.tfm))
|
||||
goto free_tcp_conn;
|
||||
|
||||
tcp_conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
|
||||
CRYPTO_ALG_ASYNC);
|
||||
tcp_conn->rx_hash.flags = 0;
|
||||
if (!tcp_conn->rx_hash.tfm)
|
||||
if (IS_ERR(tcp_conn->rx_hash.tfm))
|
||||
goto free_tx_tfm;
|
||||
|
||||
return cls_conn;
|
||||
@@ -2044,13 +2044,11 @@ iscsi_tcp_conn_get_param(struct iscsi_cls_conn *cls_conn,
|
||||
sk = tcp_conn->sock->sk;
|
||||
if (sk->sk_family == PF_INET) {
|
||||
inet = inet_sk(sk);
|
||||
len = sprintf(buf, "%u.%u.%u.%u\n",
|
||||
len = sprintf(buf, NIPQUAD_FMT "\n",
|
||||
NIPQUAD(inet->daddr));
|
||||
} else {
|
||||
np = inet6_sk(sk);
|
||||
len = sprintf(buf,
|
||||
"%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
|
||||
NIP6(np->daddr));
|
||||
len = sprintf(buf, NIP6_FMT "\n", NIP6(np->daddr));
|
||||
}
|
||||
mutex_unlock(&conn->xmitmutex);
|
||||
break;
|
||||
|
||||
@@ -260,7 +260,7 @@ static int iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
|
||||
}
|
||||
|
||||
if (rhdr->cmd_status == SAM_STAT_CHECK_CONDITION) {
|
||||
int senselen;
|
||||
uint16_t senselen;
|
||||
|
||||
if (datalen < 2) {
|
||||
invalid_datalen:
|
||||
@@ -270,12 +270,12 @@ invalid_datalen:
|
||||
goto out;
|
||||
}
|
||||
|
||||
senselen = (data[0] << 8) | data[1];
|
||||
senselen = be16_to_cpu(*(uint16_t *)data);
|
||||
if (datalen < senselen)
|
||||
goto invalid_datalen;
|
||||
|
||||
memcpy(sc->sense_buffer, data + 2,
|
||||
min(senselen, SCSI_SENSE_BUFFERSIZE));
|
||||
min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE));
|
||||
debug_scsi("copied %d bytes of sense\n",
|
||||
min(senselen, SCSI_SENSE_BUFFERSIZE));
|
||||
}
|
||||
|
||||
@@ -56,6 +56,9 @@ lpfc_mem_alloc(struct lpfc_hba * phba)
|
||||
|
||||
pool->elements = kmalloc(sizeof(struct lpfc_dmabuf) *
|
||||
LPFC_MBUF_POOL_SIZE, GFP_KERNEL);
|
||||
if (!pool->elements)
|
||||
goto fail_free_lpfc_mbuf_pool;
|
||||
|
||||
pool->max_count = 0;
|
||||
pool->current_count = 0;
|
||||
for ( i = 0; i < LPFC_MBUF_POOL_SIZE; i++) {
|
||||
@@ -82,10 +85,11 @@ lpfc_mem_alloc(struct lpfc_hba * phba)
|
||||
fail_free_mbox_pool:
|
||||
mempool_destroy(phba->mbox_mem_pool);
|
||||
fail_free_mbuf_pool:
|
||||
while (--i)
|
||||
while (i--)
|
||||
pci_pool_free(phba->lpfc_mbuf_pool, pool->elements[i].virt,
|
||||
pool->elements[i].phys);
|
||||
kfree(pool->elements);
|
||||
fail_free_lpfc_mbuf_pool:
|
||||
pci_pool_destroy(phba->lpfc_mbuf_pool);
|
||||
fail_free_dma_buf_pool:
|
||||
pci_pool_destroy(phba->lpfc_scsi_dma_buf_pool);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user