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.
...

+297 -220
+38 -28
Documentation/scsi/aacraid.txt
··· 11 Supported Cards/Chipsets 12 ------------------------- 13 PCI ID (pci.ids) OEM Product 14 - 9005:0283:9005:0283 Adaptec Catapult (3210S with arc firmware) 15 - 9005:0284:9005:0284 Adaptec Tomcat (3410S with arc firmware) 16 9005:0285:9005:0285 Adaptec 2200S (Vulcan) 17 9005:0285:9005:0286 Adaptec 2120S (Crusader) 18 9005:0285:9005:0287 Adaptec 2200S (Vulcan-2m) 19 9005:0285:9005:0288 Adaptec 3230S (Harrier) 20 9005:0285:9005:0289 Adaptec 3240S (Tornado) 21 9005:0285:9005:028a Adaptec 2020ZCR (Skyhawk) 22 - 9005:0285:9005:028b Adaptec 2025ZCR (Terminator) 23 9005:0286:9005:028c Adaptec 2230S (Lancer) 24 9005:0286:9005:028c Adaptec 2230SLP (Lancer) 25 9005:0286:9005:028d Adaptec 2130S (Lancer) 26 9005:0285:9005:028e Adaptec 2020SA (Skyhawk) 27 - 9005:0285:9005:028f Adaptec 2025SA (Terminator) 28 9005:0285:9005:0290 Adaptec 2410SA (Jaguar) 29 - 9005:0285:103c:3227 Adaptec 2610SA (Bearcat HP release) 30 - 9005:0285:9005:0293 Adaptec 21610SA (Corsair-16) 31 9005:0285:9005:0296 Adaptec 2240S (SabreExpress) 32 9005:0285:9005:0292 Adaptec 2810SA (Corsair-8) 33 - 9005:0285:9005:0294 Adaptec Prowler 34 - 9005:0285:9005:0297 Adaptec 4005SAS (AvonPark) 35 - 9005:0285:9005:0298 Adaptec 4000SAS (BlackBird) 36 9005:0285:9005:0299 Adaptec 4800SAS (Marauder-X) 37 9005:0285:9005:029a Adaptec 4805SAS (Marauder-E) 38 9005:0286:9005:029b Adaptec 2820SA (Intruder) 39 9005:0286:9005:029c Adaptec 2620SA (Intruder) 40 9005:0286:9005:029d Adaptec 2420SA (Intruder HP release) 41 - 9005:0286:9005:02a2 Adaptec 3800SAS (Hurricane44) 42 - 9005:0286:9005:02a7 Adaptec 3805SAS (Hurricane80) 43 - 9005:0286:9005:02a8 Adaptec 3400SAS (Hurricane40) 44 - 9005:0286:9005:02ac Adaptec 1800SAS (Typhoon44) 45 - 9005:0286:9005:02b3 Adaptec 2400SAS (Hurricane40lm) 46 - 9005:0285:9005:02b5 Adaptec ASR5800 (Voodoo44) 47 - 9005:0285:9005:02b6 Adaptec ASR5805 (Voodoo80) 48 - 9005:0285:9005:02b7 Adaptec ASR5808 (Voodoo08) 49 1011:0046:9005:0364 Adaptec 5400S (Mustang) 50 - 1011:0046:9005:0365 Adaptec 5400S (Mustang) 51 9005:0287:9005:0800 Adaptec Themisto (Jupiter) 52 9005:0200:9005:0200 Adaptec Themisto (Jupiter) 53 9005:0286:9005:0800 Adaptec Callisto (Jupiter) ··· 67 9005:0285:17aa:0287 Legend S230 (Vulcan) 68 9005:0285:9005:0290 IBM ServeRAID 7t (Jaguar) 69 9005:0285:1014:02F2 IBM ServeRAID 8i (AvonPark) 70 - 9005:0285:1014:0312 IBM ServeRAID 8i (AvonParkLite) 71 9005:0286:1014:9540 IBM ServeRAID 8k/8k-l4 (AuroraLite) 72 9005:0286:1014:9580 IBM ServeRAID 8k/8k-l8 (Aurora) 73 - 9005:0286:1014:034d IBM ServeRAID 8s (Hurricane) 74 - 9005:0286:9005:029e ICP ICP9024R0 (Lancer) 75 - 9005:0286:9005:029f ICP ICP9014R0 (Lancer) 76 9005:0286:9005:02a0 ICP ICP9047MA (Lancer) 77 9005:0286:9005:02a1 ICP ICP9087MA (Lancer) 78 - 9005:0286:9005:02a3 ICP ICP5445AU (Hurricane44) 79 - 9005:0286:9005:02a4 ICP ICP9085LI (Marauder-X) 80 - 9005:0286:9005:02a5 ICP ICP5085BR (Marauder-E) 81 9005:0286:9005:02a6 ICP ICP9067MA (Intruder-6) 82 - 9005:0286:9005:02a9 ICP ICP5085AU (Hurricane80) 83 - 9005:0286:9005:02aa ICP ICP5045AU (Hurricane40) 84 - 9005:0286:9005:02b4 ICP ICP5045AL (Hurricane40lm) 85 86 People 87 -------------------------
··· 11 Supported Cards/Chipsets 12 ------------------------- 13 PCI ID (pci.ids) OEM Product 14 9005:0285:9005:0285 Adaptec 2200S (Vulcan) 15 9005:0285:9005:0286 Adaptec 2120S (Crusader) 16 9005:0285:9005:0287 Adaptec 2200S (Vulcan-2m) 17 9005:0285:9005:0288 Adaptec 3230S (Harrier) 18 9005:0285:9005:0289 Adaptec 3240S (Tornado) 19 9005:0285:9005:028a Adaptec 2020ZCR (Skyhawk) 20 + 9005:0285:9005:028b Adaptec 2025ZCR (Terminator) 21 9005:0286:9005:028c Adaptec 2230S (Lancer) 22 9005:0286:9005:028c Adaptec 2230SLP (Lancer) 23 9005:0286:9005:028d Adaptec 2130S (Lancer) 24 9005:0285:9005:028e Adaptec 2020SA (Skyhawk) 25 + 9005:0285:9005:028f Adaptec 2025SA (Terminator) 26 9005:0285:9005:0290 Adaptec 2410SA (Jaguar) 27 + 9005:0285:103c:3227 Adaptec 2610SA (Bearcat HP release) 28 + 9005:0285:9005:0293 Adaptec 21610SA (Corsair-16) 29 9005:0285:9005:0296 Adaptec 2240S (SabreExpress) 30 9005:0285:9005:0292 Adaptec 2810SA (Corsair-8) 31 + 9005:0285:9005:0297 Adaptec 4005 (AvonPark) 32 + 9005:0285:9005:0298 Adaptec 4000 (BlackBird) 33 9005:0285:9005:0299 Adaptec 4800SAS (Marauder-X) 34 9005:0285:9005:029a Adaptec 4805SAS (Marauder-E) 35 9005:0286:9005:029b Adaptec 2820SA (Intruder) 36 9005:0286:9005:029c Adaptec 2620SA (Intruder) 37 9005:0286:9005:029d Adaptec 2420SA (Intruder HP release) 38 + 9005:0286:9005:02ac Adaptec 1800 (Typhoon44) 39 + 9005:0285:9005:02b5 Adaptec 5445 (Voodoo44) 40 + 9005:0285:9005:02b6 Adaptec 5805 (Voodoo80) 41 + 9005:0285:9005:02b7 Adaptec 5085 (Voodoo08) 42 + 9005:0285:9005:02bb Adaptec 3405 (Marauder40LP) 43 + 9005:0285:9005:02bc Adaptec 3805 (Marauder80LP) 44 + 9005:0285:9005:02c7 Adaptec 3085 (Marauder08ELP) 45 + 9005:0285:9005:02bd Adaptec 31205 (Marauder120) 46 + 9005:0285:9005:02be Adaptec 31605 (Marauder160) 47 + 9005:0285:9005:02c3 Adaptec 51205 (Voodoo120) 48 + 9005:0285:9005:02c4 Adaptec 51605 (Voodoo160) 49 1011:0046:9005:0364 Adaptec 5400S (Mustang) 50 9005:0287:9005:0800 Adaptec Themisto (Jupiter) 51 9005:0200:9005:0200 Adaptec Themisto (Jupiter) 52 9005:0286:9005:0800 Adaptec Callisto (Jupiter) ··· 68 9005:0285:17aa:0287 Legend S230 (Vulcan) 69 9005:0285:9005:0290 IBM ServeRAID 7t (Jaguar) 70 9005:0285:1014:02F2 IBM ServeRAID 8i (AvonPark) 71 9005:0286:1014:9540 IBM ServeRAID 8k/8k-l4 (AuroraLite) 72 9005:0286:1014:9580 IBM ServeRAID 8k/8k-l8 (Aurora) 73 + 9005:0285:1014:034d IBM ServeRAID 8s (Marauder-E) 74 + 9005:0286:9005:029e ICP ICP9024RO (Lancer) 75 + 9005:0286:9005:029f ICP ICP9014RO (Lancer) 76 9005:0286:9005:02a0 ICP ICP9047MA (Lancer) 77 9005:0286:9005:02a1 ICP ICP9087MA (Lancer) 78 + 9005:0285:9005:02a4 ICP ICP9085LI (Marauder-X) 79 + 9005:0285:9005:02a5 ICP ICP5085BR (Marauder-E) 80 9005:0286:9005:02a6 ICP ICP9067MA (Intruder-6) 81 + 9005:0285:9005:02b2 ICP (Voodoo 8 internal 8 external) 82 + 9005:0285:9005:02b8 ICP ICP5445SL (Voodoo44) 83 + 9005:0285:9005:02b9 ICP ICP5085SL (Voodoo80) 84 + 9005:0285:9005:02ba ICP ICP5805SL (Voodoo08) 85 + 9005:0285:9005:02bf ICP ICP5045BL (Marauder40LP) 86 + 9005:0285:9005:02c0 ICP ICP5085BL (Marauder80LP) 87 + 9005:0285:9005:02c8 ICP ICP5805BL (Marauder08ELP) 88 + 9005:0285:9005:02c1 ICP ICP5125BR (Marauder120) 89 + 9005:0285:9005:02c2 ICP ICP5165BR (Marauder160) 90 + 9005:0285:9005:02c5 ICP ICP5125SL (Voodoo120) 91 + 9005:0285:9005:02c6 ICP ICP5165SL (Voodoo160) 92 + 9005:0286:9005:02ab (Typhoon40) 93 + 9005:0286:9005:02ad (Aurora ARK) 94 + 9005:0286:9005:02ae (Aurora Lite ARK) 95 + 9005:0285:9005:02b0 (Sunrise Lake ARK) 96 + 9005:0285:9005:02b1 Adaptec (Voodoo 8 internal 8 external) 97 98 People 99 -------------------------
+2 -1
drivers/message/fusion/mptbase.c
··· 5 * For use with LSI Logic PCI chip/adapter(s) 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 - * Copyright (c) 1999-2005 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */ ··· 73 MODULE_AUTHOR(MODULEAUTHOR); 74 MODULE_DESCRIPTION(my_NAME); 75 MODULE_LICENSE("GPL"); 76 77 /* 78 * cmd line parameters
··· 5 * For use with LSI Logic PCI chip/adapter(s) 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 + * Copyright (c) 1999-2007 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */ ··· 73 MODULE_AUTHOR(MODULEAUTHOR); 74 MODULE_DESCRIPTION(my_NAME); 75 MODULE_LICENSE("GPL"); 76 + MODULE_VERSION(my_VERSION); 77 78 /* 79 * cmd line parameters
+5 -5
drivers/message/fusion/mptbase.h
··· 5 * LSIFC9xx/LSI409xx Fibre Channel 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 - * Copyright (c) 1999-2005 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */ ··· 72 #endif 73 74 #ifndef COPYRIGHT 75 - #define COPYRIGHT "Copyright (c) 1999-2005 " MODULEAUTHOR 76 #endif 77 78 - #define MPT_LINUX_VERSION_COMMON "3.04.02" 79 - #define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.02" 80 #define WHAT_MAGIC_STRING "@" "(" "#" ")" 81 82 #define show_mptmod_ver(s,ver) \ ··· 1059 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 1060 #endif /* } __KERNEL__ */ 1061 1062 - #if defined(__alpha__) || defined(__sparc_v9__) || defined(__ia64__) || defined(__x86_64__) 1063 #define CAST_U32_TO_PTR(x) ((void *)(u64)x) 1064 #define CAST_PTR_TO_U32(x) ((u32)(u64)x) 1065 #else
··· 5 * LSIFC9xx/LSI409xx Fibre Channel 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 + * Copyright (c) 1999-2007 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */ ··· 72 #endif 73 74 #ifndef COPYRIGHT 75 + #define COPYRIGHT "Copyright (c) 1999-2007 " MODULEAUTHOR 76 #endif 77 78 + #define MPT_LINUX_VERSION_COMMON "3.04.03" 79 + #define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.03" 80 #define WHAT_MAGIC_STRING "@" "(" "#" ")" 81 82 #define show_mptmod_ver(s,ver) \ ··· 1059 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 1060 #endif /* } __KERNEL__ */ 1061 1062 + #if defined(__alpha__) || defined(__sparc_v9__) || defined(__ia64__) || defined(__x86_64__) || defined(__powerpc__) 1063 #define CAST_U32_TO_PTR(x) ((void *)(u64)x) 1064 #define CAST_PTR_TO_U32(x) ((u32)(u64)x) 1065 #else
+3 -2
drivers/message/fusion/mptctl.c
··· 4 * For use with LSI Logic PCI chip/adapters 5 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 6 * 7 - * Copyright (c) 1999-2005 LSI Logic Corporation 8 * (mailto:mpt_linux_developer@lsil.com) 9 * 10 */ ··· 66 #include <scsi/scsi_host.h> 67 #include <scsi/scsi_tcq.h> 68 69 - #define COPYRIGHT "Copyright (c) 1999-2005 LSI Logic Corporation" 70 #define MODULEAUTHOR "LSI Logic Corporation" 71 #include "mptbase.h" 72 #include "mptctl.h" ··· 79 MODULE_AUTHOR(MODULEAUTHOR); 80 MODULE_DESCRIPTION(my_NAME); 81 MODULE_LICENSE("GPL"); 82 83 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 84
··· 4 * For use with LSI Logic PCI chip/adapters 5 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 6 * 7 + * Copyright (c) 1999-2007 LSI Logic Corporation 8 * (mailto:mpt_linux_developer@lsil.com) 9 * 10 */ ··· 66 #include <scsi/scsi_host.h> 67 #include <scsi/scsi_tcq.h> 68 69 + #define COPYRIGHT "Copyright (c) 1999-2007 LSI Logic Corporation" 70 #define MODULEAUTHOR "LSI Logic Corporation" 71 #include "mptbase.h" 72 #include "mptctl.h" ··· 79 MODULE_AUTHOR(MODULEAUTHOR); 80 MODULE_DESCRIPTION(my_NAME); 81 MODULE_LICENSE("GPL"); 82 + MODULE_VERSION(my_VERSION); 83 84 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 85
+1 -1
drivers/message/fusion/mptctl.h
··· 5 * LSIFC9xx/LSI409xx Fibre Channel 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 - * Copyright (c) 1999-2005 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */
··· 5 * LSIFC9xx/LSI409xx Fibre Channel 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 + * Copyright (c) 1999-2007 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */
+2 -1
drivers/message/fusion/mptfc.c
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 - * Copyright (c) 1999-2005 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 * 9 */ ··· 75 MODULE_AUTHOR(MODULEAUTHOR); 76 MODULE_DESCRIPTION(my_NAME); 77 MODULE_LICENSE("GPL"); 78 79 /* Command line args */ 80 #define MPTFC_DEV_LOSS_TMO (60)
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 + * Copyright (c) 1999-2007 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 * 9 */ ··· 75 MODULE_AUTHOR(MODULEAUTHOR); 76 MODULE_DESCRIPTION(my_NAME); 77 MODULE_LICENSE("GPL"); 78 + MODULE_VERSION(my_VERSION); 79 80 /* Command line args */ 81 #define MPTFC_DEV_LOSS_TMO (60)
+3 -1
drivers/message/fusion/mptlan.c
··· 4 * For use with LSI Logic Fibre Channel PCI chip/adapters 5 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 6 * 7 - * Copyright (c) 2000-2005 LSI Logic Corporation 8 * 9 */ 10 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ ··· 56 #include <linux/module.h> 57 #include <linux/fs.h> 58 59 #define MYNAM "mptlan" 60 61 MODULE_LICENSE("GPL"); 62 63 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 64 /*
··· 4 * For use with LSI Logic Fibre Channel PCI chip/adapters 5 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 6 * 7 + * Copyright (c) 2000-2007 LSI Logic Corporation 8 * 9 */ 10 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ ··· 56 #include <linux/module.h> 57 #include <linux/fs.h> 58 59 + #define my_VERSION MPT_LINUX_VERSION_COMMON 60 #define MYNAM "mptlan" 61 62 MODULE_LICENSE("GPL"); 63 + MODULE_VERSION(my_VERSION); 64 65 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 66 /*
+1 -1
drivers/message/fusion/mptlan.h
··· 4 * For use with LSI Logic Fibre Channel PCI chip/adapters 5 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 6 * 7 - * Copyright (c) 2000-2005 LSI Logic Corporation 8 * 9 */ 10 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
··· 4 * For use with LSI Logic Fibre Channel PCI chip/adapters 5 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 6 * 7 + * Copyright (c) 2000-2007 LSI Logic Corporation 8 * 9 */ 10 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
+21 -17
drivers/message/fusion/mptsas.c
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 - * Copyright (c) 1999-2005 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 - * Copyright (c) 2005-2006 Dell 9 */ 10 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 11 /* ··· 75 MODULE_AUTHOR(MODULEAUTHOR); 76 MODULE_DESCRIPTION(my_NAME); 77 MODULE_LICENSE("GPL"); 78 79 static int mpt_pt_clear; 80 module_param(mpt_pt_clear, int, 0); ··· 246 printk("Parent Handle=0x%X\n" ,le16_to_cpu(pg0->ParentDevHandle)); 247 printk("Enclosure Handle=0x%X\n", le16_to_cpu(pg0->EnclosureHandle)); 248 printk("Slot=0x%X\n", le16_to_cpu(pg0->Slot)); 249 - printk("SAS Address=0x%llX\n", le64_to_cpu(sas_address)); 250 printk("Target ID=0x%X\n", pg0->TargetID); 251 printk("Bus=0x%X\n", pg0->Bus); 252 /* The PhyNum field specifies the PHY number of the parent ··· 351 phy_info = port_info->phy_info; 352 353 dsaswideprintk((KERN_DEBUG "%s: [%p]: num_phys=%02d " 354 - "bitmask=0x%016llX\n", 355 - __FUNCTION__, port_details, port_details->num_phys, 356 - port_details->phy_bitmask)); 357 358 for (i = 0; i < port_info->num_phys; i++, phy_info++) { 359 if(phy_info->port_details != port_details) ··· 478 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) { 479 sas_address = phy_info->attached.sas_address; 480 dsaswideprintk((KERN_DEBUG "phy_id=%d sas_address=0x%018llX\n", 481 - i, sas_address)); 482 if (!sas_address) 483 continue; 484 port_details = phy_info->port_details; ··· 497 (1 << phy_info->phy_id); 498 phy_info->sas_port_add_phy=1; 499 dsaswideprintk((KERN_DEBUG "\t\tForming port\n\t\t" 500 - "phy_id=%d sas_address=0x%018llX\n", 501 - i, sas_address)); 502 phy_info->port_details = port_details; 503 } 504 ··· 514 if (phy_info_cmp->port_details == port_details ) 515 continue; 516 dsaswideprintk((KERN_DEBUG 517 - "\t\tphy_id=%d sas_address=0x%018llX\n", 518 - j, phy_info_cmp->attached.sas_address)); 519 if (phy_info_cmp->port_details) { 520 port_details->rphy = 521 mptsas_get_rphy(phy_info_cmp); ··· 549 if (!port_details) 550 continue; 551 dsaswideprintk((KERN_DEBUG 552 - "%s: [%p]: phy_id=%02d num_phys=%02d " 553 - "bitmask=0x%016llX\n", 554 - __FUNCTION__, 555 - port_details, i, port_details->num_phys, 556 - port_details->phy_bitmask)); 557 dsaswideprintk((KERN_DEBUG"\t\tport = %p rphy=%p\n", 558 port_details->port, port_details->rphy)); 559 } ··· 2081 static void 2082 mptsas_reprobe_lun(struct scsi_device *sdev, void *data) 2083 { 2084 sdev->no_uld_attach = data ? 1 : 0; 2085 - scsi_device_reprobe(sdev); 2086 } 2087 2088 static void
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 + * Copyright (c) 1999-2007 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 + * Copyright (c) 2005-2007 Dell 9 */ 10 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 11 /* ··· 75 MODULE_AUTHOR(MODULEAUTHOR); 76 MODULE_DESCRIPTION(my_NAME); 77 MODULE_LICENSE("GPL"); 78 + MODULE_VERSION(my_VERSION); 79 80 static int mpt_pt_clear; 81 module_param(mpt_pt_clear, int, 0); ··· 245 printk("Parent Handle=0x%X\n" ,le16_to_cpu(pg0->ParentDevHandle)); 246 printk("Enclosure Handle=0x%X\n", le16_to_cpu(pg0->EnclosureHandle)); 247 printk("Slot=0x%X\n", le16_to_cpu(pg0->Slot)); 248 + printk("SAS Address=0x%llX\n", (unsigned long long) 249 + le64_to_cpu(sas_address)); 250 printk("Target ID=0x%X\n", pg0->TargetID); 251 printk("Bus=0x%X\n", pg0->Bus); 252 /* The PhyNum field specifies the PHY number of the parent ··· 349 phy_info = port_info->phy_info; 350 351 dsaswideprintk((KERN_DEBUG "%s: [%p]: num_phys=%02d " 352 + "bitmask=0x%016llX\n", __FUNCTION__, port_details, 353 + port_details->num_phys, (unsigned long long) 354 + port_details->phy_bitmask)); 355 356 for (i = 0; i < port_info->num_phys; i++, phy_info++) { 357 if(phy_info->port_details != port_details) ··· 476 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) { 477 sas_address = phy_info->attached.sas_address; 478 dsaswideprintk((KERN_DEBUG "phy_id=%d sas_address=0x%018llX\n", 479 + i, (unsigned long long)sas_address)); 480 if (!sas_address) 481 continue; 482 port_details = phy_info->port_details; ··· 495 (1 << phy_info->phy_id); 496 phy_info->sas_port_add_phy=1; 497 dsaswideprintk((KERN_DEBUG "\t\tForming port\n\t\t" 498 + "phy_id=%d sas_address=0x%018llX\n", 499 + i, (unsigned long long)sas_address)); 500 phy_info->port_details = port_details; 501 } 502 ··· 512 if (phy_info_cmp->port_details == port_details ) 513 continue; 514 dsaswideprintk((KERN_DEBUG 515 + "\t\tphy_id=%d sas_address=0x%018llX\n", 516 + j, (unsigned long long) 517 + phy_info_cmp->attached.sas_address)); 518 if (phy_info_cmp->port_details) { 519 port_details->rphy = 520 mptsas_get_rphy(phy_info_cmp); ··· 546 if (!port_details) 547 continue; 548 dsaswideprintk((KERN_DEBUG 549 + "%s: [%p]: phy_id=%02d num_phys=%02d " 550 + "bitmask=0x%016llX\n", __FUNCTION__, 551 + port_details, i, port_details->num_phys, 552 + (unsigned long long)port_details->phy_bitmask)); 553 dsaswideprintk((KERN_DEBUG"\t\tport = %p rphy=%p\n", 554 port_details->port, port_details->rphy)); 555 } ··· 2079 static void 2080 mptsas_reprobe_lun(struct scsi_device *sdev, void *data) 2081 { 2082 + int rc; 2083 + 2084 sdev->no_uld_attach = data ? 1 : 0; 2085 + rc = scsi_device_reprobe(sdev); 2086 } 2087 2088 static void
+16 -3
drivers/message/fusion/mptscsih.c
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 - * Copyright (c) 1999-2005 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 * 9 */ ··· 76 MODULE_AUTHOR(MODULEAUTHOR); 77 MODULE_DESCRIPTION(my_NAME); 78 MODULE_LICENSE("GPL"); 79 80 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 81 ··· 702 break; 703 } 704 } 705 } 706 707 /* ··· 2700 struct scsi_device *sdev) 2701 { 2702 dinitprintk((MYIOC_s_INFO_FMT "initTarget bus=%d id=%d lun=%d hd=%p\n", 2703 - hd->ioc->name, vtarget->bus_id, vtarget->target_id, lun, hd)); 2704 2705 /* Is LUN supported? If so, upper 2 bits will be 0 2706 * in first byte of inquiry data. ··· 2783 else { 2784 factor = MPT_ULTRA320; 2785 if (scsi_device_qas(sdev)) { 2786 - ddvtprintk((KERN_INFO "Enabling QAS due to byte56=%02x on id=%d!\n", byte56, id)); 2787 noQas = 0; 2788 } 2789 if (sdev->type == TYPE_TAPE &&
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 + * Copyright (c) 1999-2007 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 * 9 */ ··· 76 MODULE_AUTHOR(MODULEAUTHOR); 77 MODULE_DESCRIPTION(my_NAME); 78 MODULE_LICENSE("GPL"); 79 + MODULE_VERSION(my_VERSION); 80 81 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 82 ··· 701 break; 702 } 703 } 704 + } else if (ioc->bus_type == FC) { 705 + /* 706 + * The FC IOC may kill a request for variety of 707 + * reasons, some of which may be recovered by a 708 + * retry, some which are unlikely to be 709 + * recovered. Return DID_ERROR instead of 710 + * DID_RESET to permit retry of the command, 711 + * just not an infinite number of them 712 + */ 713 + sc->result = DID_ERROR << 16; 714 + break; 715 } 716 717 /* ··· 2688 struct scsi_device *sdev) 2689 { 2690 dinitprintk((MYIOC_s_INFO_FMT "initTarget bus=%d id=%d lun=%d hd=%p\n", 2691 + hd->ioc->name, vtarget->bus_id, vtarget->target_id, 2692 + sdev->lun, hd)); 2693 2694 /* Is LUN supported? If so, upper 2 bits will be 0 2695 * in first byte of inquiry data. ··· 2770 else { 2771 factor = MPT_ULTRA320; 2772 if (scsi_device_qas(sdev)) { 2773 + ddvtprintk((KERN_INFO "Enabling QAS due to byte56=%02x on id=%d!\n", scsi_device_qas(sdev), id)); 2774 noQas = 0; 2775 } 2776 if (sdev->type == TYPE_TAPE &&
+1 -1
drivers/message/fusion/mptscsih.h
··· 5 * LSIFC9xx/LSI409xx Fibre Channel 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 - * Copyright (c) 1999-2005 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */
··· 5 * LSIFC9xx/LSI409xx Fibre Channel 6 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 7 * 8 + * Copyright (c) 1999-2007 LSI Logic Corporation 9 * (mailto:mpt_linux_developer@lsil.com) 10 * 11 */
+2 -1
drivers/message/fusion/mptspi.c
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 - * Copyright (c) 1999-2005 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 * 9 */ ··· 77 MODULE_AUTHOR(MODULEAUTHOR); 78 MODULE_DESCRIPTION(my_NAME); 79 MODULE_LICENSE("GPL"); 80 81 /* Command line args */ 82 static int mpt_saf_te = MPTSCSIH_SAF_TE;
··· 3 * For use with LSI Logic PCI chip/adapter(s) 4 * running LSI Logic Fusion MPT (Message Passing Technology) firmware. 5 * 6 + * Copyright (c) 1999-2007 LSI Logic Corporation 7 * (mailto:mpt_linux_developer@lsil.com) 8 * 9 */ ··· 77 MODULE_AUTHOR(MODULEAUTHOR); 78 MODULE_DESCRIPTION(my_NAME); 79 MODULE_LICENSE("GPL"); 80 + MODULE_VERSION(my_VERSION); 81 82 /* Command line args */ 83 static int mpt_saf_te = MPTSCSIH_SAF_TE;
+29 -31
drivers/scsi/3w-xxxx.c
··· 6 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 7 Brad Strand <linux@3ware.com> 8 9 - Copyright (C) 1999-2005 3ware Inc. 10 11 Kernel compatiblity By: Andre Hedrick <andre@suse.com> 12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com> ··· 191 before shutting down card. 192 Change to new 'change_queue_depth' api. 193 Fix 'handled=1' ISR usage, remove bogus IRQ check. 194 */ 195 196 #include <linux/module.h> ··· 217 #include "3w-xxxx.h" 218 219 /* Globals */ 220 - #define TW_DRIVER_VERSION "1.26.02.001" 221 static TW_Device_Extension *tw_device_extension_list[TW_MAX_SLOT]; 222 static int tw_device_extension_count = 0; 223 static int twe_major = -1; ··· 229 MODULE_VERSION(TW_DRIVER_VERSION); 230 231 /* Function prototypes */ 232 - static int tw_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_reset); 233 234 /* Functions */ 235 ··· 987 /* Now wait for the command to complete */ 988 timeout = wait_event_timeout(tw_dev->ioctl_wqueue, tw_dev->chrdev_request_id == TW_IOCTL_CHRDEV_FREE, timeout); 989 990 - /* See if we reset while waiting for the ioctl to complete */ 991 - if (test_bit(TW_IN_RESET, &tw_dev->flags)) { 992 - clear_bit(TW_IN_RESET, &tw_dev->flags); 993 - retval = -ERESTARTSYS; 994 - goto out2; 995 - } 996 - 997 /* We timed out, and didn't get an interrupt */ 998 if (tw_dev->chrdev_request_id != TW_IOCTL_CHRDEV_FREE) { 999 /* Now we need to reset the board */ 1000 printk(KERN_WARNING "3w-xxxx: scsi%d: Character ioctl (0x%x) timed out, resetting card.\n", tw_dev->host->host_no, cmd); 1001 retval = -EIO; 1002 - spin_lock_irqsave(tw_dev->host->host_lock, flags); 1003 - tw_dev->state[request_id] = TW_S_COMPLETED; 1004 - tw_state_request_finish(tw_dev, request_id); 1005 - tw_dev->posted_request_count--; 1006 - spin_unlock_irqrestore(tw_dev->host->host_lock, flags); 1007 - if (tw_reset_device_extension(tw_dev, 1)) { 1008 printk(KERN_WARNING "3w-xxxx: tw_chrdev_ioctl(): Reset failed for card %d.\n", tw_dev->host->host_no); 1009 } 1010 goto out2; ··· 1327 } /* End tw_unmap_scsi_data() */ 1328 1329 /* This function will reset a device extension */ 1330 - static int tw_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_reset) 1331 { 1332 int i = 0; 1333 struct scsi_cmnd *srb; ··· 1373 printk(KERN_WARNING "3w-xxxx: scsi%d: Reset sequence failed.\n", tw_dev->host->host_no); 1374 return 1; 1375 } 1376 - TW_ENABLE_AND_CLEAR_INTERRUPTS(tw_dev); 1377 1378 - /* Wake up any ioctl that was pending before the reset */ 1379 - if ((tw_dev->chrdev_request_id == TW_IOCTL_CHRDEV_FREE) || (ioctl_reset)) { 1380 - clear_bit(TW_IN_RESET, &tw_dev->flags); 1381 - } else { 1382 - tw_dev->chrdev_request_id = TW_IOCTL_CHRDEV_FREE; 1383 - wake_up(&tw_dev->ioctl_wqueue); 1384 - } 1385 1386 return 0; 1387 } /* End tw_reset_device_extension() */ ··· 1423 "WARNING: Command (0x%x) timed out, resetting card.\n", 1424 SCpnt->cmnd[0]); 1425 1426 /* Now reset the card and some of the device extension data */ 1427 - if (tw_reset_device_extension(tw_dev, 0)) { 1428 printk(KERN_WARNING "3w-xxxx: scsi%d: Reset failed.\n", tw_dev->host->host_no); 1429 goto out; 1430 } 1431 1432 retval = SUCCESS; 1433 out: 1434 return retval; 1435 } /* End tw_scsi_eh_reset() */ 1436 ··· 1650 request_buffer[4] = 0x8; /* caching page */ 1651 request_buffer[5] = 0xa; /* page length */ 1652 if (*flags & 0x1) 1653 - request_buffer[6] = 0x4; /* WCE on */ 1654 else 1655 - request_buffer[6] = 0x0; /* WCE off */ 1656 tw_transfer_internal(tw_dev, request_id, request_buffer, 1657 sizeof(request_buffer)); 1658 ··· 2002 int retval = 1; 2003 TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; 2004 2005 /* Save done function into Scsi_Cmnd struct */ 2006 SCpnt->scsi_done = done; 2007 ··· 2093 goto tw_interrupt_bail; 2094 2095 handled = 1; 2096 2097 /* Check controller for errors */ 2098 if (tw_check_bits(status_reg_value)) { ··· 2274 /* Disable interrupts */ 2275 TW_DISABLE_INTERRUPTS(tw_dev); 2276 2277 printk(KERN_WARNING "3w-xxxx: Shutting down host %d.\n", tw_dev->host->host_no); 2278 2279 /* Tell the card we are shutting down */ ··· 2444 unregister_chrdev(twe_major, "twe"); 2445 twe_major = -1; 2446 } 2447 - 2448 - /* Free up the IRQ */ 2449 - free_irq(tw_dev->tw_pci_dev->irq, tw_dev); 2450 2451 /* Shutdown the card */ 2452 __tw_shutdown(tw_dev);
··· 6 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 7 Brad Strand <linux@3ware.com> 8 9 + Copyright (C) 1999-2007 3ware Inc. 10 11 Kernel compatiblity By: Andre Hedrick <andre@suse.com> 12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com> ··· 191 before shutting down card. 192 Change to new 'change_queue_depth' api. 193 Fix 'handled=1' ISR usage, remove bogus IRQ check. 194 + 1.26.02.002 - Free irq handler in __tw_shutdown(). 195 + Turn on RCD bit for caching mode page. 196 + Serialize reset code. 197 */ 198 199 #include <linux/module.h> ··· 214 #include "3w-xxxx.h" 215 216 /* Globals */ 217 + #define TW_DRIVER_VERSION "1.26.02.002" 218 static TW_Device_Extension *tw_device_extension_list[TW_MAX_SLOT]; 219 static int tw_device_extension_count = 0; 220 static int twe_major = -1; ··· 226 MODULE_VERSION(TW_DRIVER_VERSION); 227 228 /* Function prototypes */ 229 + static int tw_reset_device_extension(TW_Device_Extension *tw_dev); 230 231 /* Functions */ 232 ··· 984 /* Now wait for the command to complete */ 985 timeout = wait_event_timeout(tw_dev->ioctl_wqueue, tw_dev->chrdev_request_id == TW_IOCTL_CHRDEV_FREE, timeout); 986 987 /* We timed out, and didn't get an interrupt */ 988 if (tw_dev->chrdev_request_id != TW_IOCTL_CHRDEV_FREE) { 989 /* Now we need to reset the board */ 990 printk(KERN_WARNING "3w-xxxx: scsi%d: Character ioctl (0x%x) timed out, resetting card.\n", tw_dev->host->host_no, cmd); 991 retval = -EIO; 992 + if (tw_reset_device_extension(tw_dev)) { 993 printk(KERN_WARNING "3w-xxxx: tw_chrdev_ioctl(): Reset failed for card %d.\n", tw_dev->host->host_no); 994 } 995 goto out2; ··· 1336 } /* End tw_unmap_scsi_data() */ 1337 1338 /* This function will reset a device extension */ 1339 + static int tw_reset_device_extension(TW_Device_Extension *tw_dev) 1340 { 1341 int i = 0; 1342 struct scsi_cmnd *srb; ··· 1382 printk(KERN_WARNING "3w-xxxx: scsi%d: Reset sequence failed.\n", tw_dev->host->host_no); 1383 return 1; 1384 } 1385 1386 + TW_ENABLE_AND_CLEAR_INTERRUPTS(tw_dev); 1387 + clear_bit(TW_IN_RESET, &tw_dev->flags); 1388 + tw_dev->chrdev_request_id = TW_IOCTL_CHRDEV_FREE; 1389 1390 return 0; 1391 } /* End tw_reset_device_extension() */ ··· 1437 "WARNING: Command (0x%x) timed out, resetting card.\n", 1438 SCpnt->cmnd[0]); 1439 1440 + /* Make sure we are not issuing an ioctl or resetting from ioctl */ 1441 + mutex_lock(&tw_dev->ioctl_lock); 1442 + 1443 /* Now reset the card and some of the device extension data */ 1444 + if (tw_reset_device_extension(tw_dev)) { 1445 printk(KERN_WARNING "3w-xxxx: scsi%d: Reset failed.\n", tw_dev->host->host_no); 1446 goto out; 1447 } 1448 1449 retval = SUCCESS; 1450 out: 1451 + mutex_unlock(&tw_dev->ioctl_lock); 1452 return retval; 1453 } /* End tw_scsi_eh_reset() */ 1454 ··· 1660 request_buffer[4] = 0x8; /* caching page */ 1661 request_buffer[5] = 0xa; /* page length */ 1662 if (*flags & 0x1) 1663 + request_buffer[6] = 0x5; /* WCE on, RCD on */ 1664 else 1665 + request_buffer[6] = 0x1; /* WCE off, RCD on */ 1666 tw_transfer_internal(tw_dev, request_id, request_buffer, 1667 sizeof(request_buffer)); 1668 ··· 2012 int retval = 1; 2013 TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; 2014 2015 + /* If we are resetting due to timed out ioctl, report as busy */ 2016 + if (test_bit(TW_IN_RESET, &tw_dev->flags)) 2017 + return SCSI_MLQUEUE_HOST_BUSY; 2018 + 2019 /* Save done function into Scsi_Cmnd struct */ 2020 SCpnt->scsi_done = done; 2021 ··· 2099 goto tw_interrupt_bail; 2100 2101 handled = 1; 2102 + 2103 + /* If we are resetting, bail */ 2104 + if (test_bit(TW_IN_RESET, &tw_dev->flags)) 2105 + goto tw_interrupt_bail; 2106 2107 /* Check controller for errors */ 2108 if (tw_check_bits(status_reg_value)) { ··· 2276 /* Disable interrupts */ 2277 TW_DISABLE_INTERRUPTS(tw_dev); 2278 2279 + /* Free up the IRQ */ 2280 + free_irq(tw_dev->tw_pci_dev->irq, tw_dev); 2281 + 2282 printk(KERN_WARNING "3w-xxxx: Shutting down host %d.\n", tw_dev->host->host_no); 2283 2284 /* Tell the card we are shutting down */ ··· 2443 unregister_chrdev(twe_major, "twe"); 2444 twe_major = -1; 2445 } 2446 2447 /* Shutdown the card */ 2448 __tw_shutdown(tw_dev);
+1 -1
drivers/scsi/3w-xxxx.h
··· 6 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 7 Brad Strand <linux@3ware.com> 8 9 - Copyright (C) 1999-2005 3ware Inc. 10 11 Kernel compatiblity By: Andre Hedrick <andre@suse.com> 12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com>
··· 6 Arnaldo Carvalho de Melo <acme@conectiva.com.br> 7 Brad Strand <linux@3ware.com> 8 9 + Copyright (C) 1999-2007 3ware Inc. 10 11 Kernel compatiblity By: Andre Hedrick <andre@suse.com> 12 Non-Copyright (C) 2000 Andre Hedrick <andre@suse.com>
+1 -1
drivers/scsi/Kconfig
··· 1303 1304 config SCSI_SEAGATE 1305 tristate "Seagate ST-02 and Future Domain TMC-8xx SCSI support" 1306 - depends on X86 && ISA && SCSI && BROKEN 1307 ---help--- 1308 These are 8-bit SCSI controllers; the ST-01 is also supported by 1309 this driver. It is explained in section 3.9 of the SCSI-HOWTO,
··· 1303 1304 config SCSI_SEAGATE 1305 tristate "Seagate ST-02 and Future Domain TMC-8xx SCSI support" 1306 + depends on X86 && ISA && SCSI 1307 ---help--- 1308 These are 8-bit SCSI controllers; the ST-01 is also supported by 1309 this driver. It is explained in section 3.9 of the SCSI-HOWTO,
+10 -10
drivers/scsi/aacraid/linit.c
··· 117 { 0x9005, 0x0286, 0x9005, 0x029b, 0, 0, 22 }, /* AAR-2820SA (Intruder) */ 118 { 0x9005, 0x0286, 0x9005, 0x029c, 0, 0, 23 }, /* AAR-2620SA (Intruder) */ 119 { 0x9005, 0x0286, 0x9005, 0x029d, 0, 0, 24 }, /* AAR-2420SA (Intruder) */ 120 - { 0x9005, 0x0286, 0x9005, 0x029e, 0, 0, 25 }, /* ICP9024R0 (Lancer) */ 121 - { 0x9005, 0x0286, 0x9005, 0x029f, 0, 0, 26 }, /* ICP9014R0 (Lancer) */ 122 { 0x9005, 0x0286, 0x9005, 0x02a0, 0, 0, 27 }, /* ICP9047MA (Lancer) */ 123 { 0x9005, 0x0286, 0x9005, 0x02a1, 0, 0, 28 }, /* ICP9087MA (Lancer) */ 124 { 0x9005, 0x0286, 0x9005, 0x02a3, 0, 0, 29 }, /* ICP5445AU (Hurricane44) */ ··· 137 { 0x9005, 0x0285, 0x9005, 0x0294, 0, 0, 41 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ 138 { 0x9005, 0x0285, 0x103C, 0x3227, 0, 0, 42 }, /* AAR-2610SA PCI SATA 6ch */ 139 { 0x9005, 0x0285, 0x9005, 0x0296, 0, 0, 43 }, /* ASR-2240S (SabreExpress) */ 140 - { 0x9005, 0x0285, 0x9005, 0x0297, 0, 0, 44 }, /* ASR-4005SAS */ 141 { 0x9005, 0x0285, 0x1014, 0x02F2, 0, 0, 45 }, /* IBM 8i (AvonPark) */ 142 { 0x9005, 0x0285, 0x1014, 0x0312, 0, 0, 45 }, /* IBM 8i (AvonPark Lite) */ 143 { 0x9005, 0x0286, 0x1014, 0x9580, 0, 0, 46 }, /* IBM 8k/8k-l8 (Aurora) */ 144 { 0x9005, 0x0286, 0x1014, 0x9540, 0, 0, 47 }, /* IBM 8k/8k-l4 (Aurora Lite) */ 145 - { 0x9005, 0x0285, 0x9005, 0x0298, 0, 0, 48 }, /* ASR-4000SAS (BlackBird) */ 146 { 0x9005, 0x0285, 0x9005, 0x0299, 0, 0, 49 }, /* ASR-4800SAS (Marauder-X) */ 147 { 0x9005, 0x0285, 0x9005, 0x029a, 0, 0, 50 }, /* ASR-4805SAS (Marauder-E) */ 148 - { 0x9005, 0x0286, 0x9005, 0x02a2, 0, 0, 51 }, /* ASR-3800SAS (Hurricane44) */ 149 150 { 0x9005, 0x0285, 0x1028, 0x0287, 0, 0, 52 }, /* Perc 320/DC*/ 151 { 0x1011, 0x0046, 0x9005, 0x0365, 0, 0, 53 }, /* Adaptec 5400S (Mustang)*/ ··· 193 { aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2820SA ", 1 }, /* AAR-2820SA (Intruder) */ 194 { aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2620SA ", 1 }, /* AAR-2620SA (Intruder) */ 195 { aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2420SA ", 1 }, /* AAR-2420SA (Intruder) */ 196 - { aac_rkt_init, "aacraid", "ICP ", "ICP9024R0 ", 2 }, /* ICP9024R0 (Lancer) */ 197 - { aac_rkt_init, "aacraid", "ICP ", "ICP9014R0 ", 1 }, /* ICP9014R0 (Lancer) */ 198 { aac_rkt_init, "aacraid", "ICP ", "ICP9047MA ", 1 }, /* ICP9047MA (Lancer) */ 199 { aac_rkt_init, "aacraid", "ICP ", "ICP9087MA ", 1 }, /* ICP9087MA (Lancer) */ 200 { aac_rkt_init, "aacraid", "ICP ", "ICP5445AU ", 1 }, /* ICP5445AU (Hurricane44) */ ··· 212 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2026ZCR ", 1 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ 213 { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2610SA ", 1 }, /* SATA 6Ch (Bearcat) */ 214 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2240S ", 1 }, /* ASR-2240S (SabreExpress) */ 215 - { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4005SAS ", 1 }, /* ASR-4005SAS */ 216 { aac_rx_init, "ServeRAID","IBM ", "ServeRAID 8i ", 1 }, /* IBM 8i (AvonPark) */ 217 { aac_rkt_init, "ServeRAID","IBM ", "ServeRAID 8k-l8 ", 1 }, /* IBM 8k/8k-l8 (Aurora) */ 218 { aac_rkt_init, "ServeRAID","IBM ", "ServeRAID 8k-l4 ", 1 }, /* IBM 8k/8k-l4 (Aurora Lite) */ 219 - { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4000SAS ", 1 }, /* ASR-4000SAS (BlackBird & AvonPark) */ 220 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4800SAS ", 1 }, /* ASR-4800SAS (Marauder-X) */ 221 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4805SAS ", 1 }, /* ASR-4805SAS (Marauder-E) */ 222 - { aac_rkt_init, "aacraid", "ADAPTEC ", "ASR-3800SAS ", 1 }, /* ASR-3800SAS (Hurricane44) */ 223 224 { aac_rx_init, "percraid", "DELL ", "PERC 320/DC ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Perc 320/DC*/ 225 { aac_sa_init, "aacraid", "ADAPTEC ", "Adaptec 5400S ", 4, AAC_QUIRK_34SG }, /* Adaptec 5400S (Mustang)*/
··· 117 { 0x9005, 0x0286, 0x9005, 0x029b, 0, 0, 22 }, /* AAR-2820SA (Intruder) */ 118 { 0x9005, 0x0286, 0x9005, 0x029c, 0, 0, 23 }, /* AAR-2620SA (Intruder) */ 119 { 0x9005, 0x0286, 0x9005, 0x029d, 0, 0, 24 }, /* AAR-2420SA (Intruder) */ 120 + { 0x9005, 0x0286, 0x9005, 0x029e, 0, 0, 25 }, /* ICP9024RO (Lancer) */ 121 + { 0x9005, 0x0286, 0x9005, 0x029f, 0, 0, 26 }, /* ICP9014RO (Lancer) */ 122 { 0x9005, 0x0286, 0x9005, 0x02a0, 0, 0, 27 }, /* ICP9047MA (Lancer) */ 123 { 0x9005, 0x0286, 0x9005, 0x02a1, 0, 0, 28 }, /* ICP9087MA (Lancer) */ 124 { 0x9005, 0x0286, 0x9005, 0x02a3, 0, 0, 29 }, /* ICP5445AU (Hurricane44) */ ··· 137 { 0x9005, 0x0285, 0x9005, 0x0294, 0, 0, 41 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ 138 { 0x9005, 0x0285, 0x103C, 0x3227, 0, 0, 42 }, /* AAR-2610SA PCI SATA 6ch */ 139 { 0x9005, 0x0285, 0x9005, 0x0296, 0, 0, 43 }, /* ASR-2240S (SabreExpress) */ 140 + { 0x9005, 0x0285, 0x9005, 0x0297, 0, 0, 44 }, /* ASR-4005 */ 141 { 0x9005, 0x0285, 0x1014, 0x02F2, 0, 0, 45 }, /* IBM 8i (AvonPark) */ 142 { 0x9005, 0x0285, 0x1014, 0x0312, 0, 0, 45 }, /* IBM 8i (AvonPark Lite) */ 143 { 0x9005, 0x0286, 0x1014, 0x9580, 0, 0, 46 }, /* IBM 8k/8k-l8 (Aurora) */ 144 { 0x9005, 0x0286, 0x1014, 0x9540, 0, 0, 47 }, /* IBM 8k/8k-l4 (Aurora Lite) */ 145 + { 0x9005, 0x0285, 0x9005, 0x0298, 0, 0, 48 }, /* ASR-4000 (BlackBird) */ 146 { 0x9005, 0x0285, 0x9005, 0x0299, 0, 0, 49 }, /* ASR-4800SAS (Marauder-X) */ 147 { 0x9005, 0x0285, 0x9005, 0x029a, 0, 0, 50 }, /* ASR-4805SAS (Marauder-E) */ 148 + { 0x9005, 0x0286, 0x9005, 0x02a2, 0, 0, 51 }, /* ASR-3800 (Hurricane44) */ 149 150 { 0x9005, 0x0285, 0x1028, 0x0287, 0, 0, 52 }, /* Perc 320/DC*/ 151 { 0x1011, 0x0046, 0x9005, 0x0365, 0, 0, 53 }, /* Adaptec 5400S (Mustang)*/ ··· 193 { aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2820SA ", 1 }, /* AAR-2820SA (Intruder) */ 194 { aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2620SA ", 1 }, /* AAR-2620SA (Intruder) */ 195 { aac_rkt_init, "aacraid", "ADAPTEC ", "AAR-2420SA ", 1 }, /* AAR-2420SA (Intruder) */ 196 + { aac_rkt_init, "aacraid", "ICP ", "ICP9024RO ", 2 }, /* ICP9024RO (Lancer) */ 197 + { aac_rkt_init, "aacraid", "ICP ", "ICP9014RO ", 1 }, /* ICP9014RO (Lancer) */ 198 { aac_rkt_init, "aacraid", "ICP ", "ICP9047MA ", 1 }, /* ICP9047MA (Lancer) */ 199 { aac_rkt_init, "aacraid", "ICP ", "ICP9087MA ", 1 }, /* ICP9087MA (Lancer) */ 200 { aac_rkt_init, "aacraid", "ICP ", "ICP5445AU ", 1 }, /* ICP5445AU (Hurricane44) */ ··· 212 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2026ZCR ", 1 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ 213 { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2610SA ", 1 }, /* SATA 6Ch (Bearcat) */ 214 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2240S ", 1 }, /* ASR-2240S (SabreExpress) */ 215 + { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4005 ", 1 }, /* ASR-4005 */ 216 { aac_rx_init, "ServeRAID","IBM ", "ServeRAID 8i ", 1 }, /* IBM 8i (AvonPark) */ 217 { aac_rkt_init, "ServeRAID","IBM ", "ServeRAID 8k-l8 ", 1 }, /* IBM 8k/8k-l8 (Aurora) */ 218 { aac_rkt_init, "ServeRAID","IBM ", "ServeRAID 8k-l4 ", 1 }, /* IBM 8k/8k-l4 (Aurora Lite) */ 219 + { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4000 ", 1 }, /* ASR-4000 (BlackBird & AvonPark) */ 220 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4800SAS ", 1 }, /* ASR-4800SAS (Marauder-X) */ 221 { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-4805SAS ", 1 }, /* ASR-4805SAS (Marauder-E) */ 222 + { aac_rkt_init, "aacraid", "ADAPTEC ", "ASR-3800 ", 1 }, /* ASR-3800 (Hurricane44) */ 223 224 { aac_rx_init, "percraid", "DELL ", "PERC 320/DC ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Perc 320/DC*/ 225 { aac_sa_init, "aacraid", "ADAPTEC ", "Adaptec 5400S ", 4, AAC_QUIRK_34SG }, /* Adaptec 5400S (Mustang)*/
+2 -1
drivers/scsi/advansys.c
··· 18215 } 18216 MODULE_LICENSE("Dual BSD/GPL"); 18217 18218 /* PCI Devices supported by this driver */ 18219 static struct pci_device_id advansys_pci_tbl[] __devinitdata = { 18220 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_1200A, ··· 18233 { } 18234 }; 18235 MODULE_DEVICE_TABLE(pci, advansys_pci_tbl); 18236 -
··· 18215 } 18216 MODULE_LICENSE("Dual BSD/GPL"); 18217 18218 + #ifdef CONFIG_PCI 18219 /* PCI Devices supported by this driver */ 18220 static struct pci_device_id advansys_pci_tbl[] __devinitdata = { 18221 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_1200A, ··· 18232 { } 18233 }; 18234 MODULE_DEVICE_TABLE(pci, advansys_pci_tbl); 18235 + #endif /* CONFIG_PCI */
+5 -7
drivers/scsi/iscsi_tcp.c
··· 749 if (!offset) 750 crypto_hash_update( 751 &tcp_conn->rx_hash, 752 - &sg[i], 1); 753 else 754 partial_sg_digest_update( 755 &tcp_conn->rx_hash, ··· 1777 tcp_conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0, 1778 CRYPTO_ALG_ASYNC); 1779 tcp_conn->tx_hash.flags = 0; 1780 - if (!tcp_conn->tx_hash.tfm) 1781 goto free_tcp_conn; 1782 1783 tcp_conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, 1784 CRYPTO_ALG_ASYNC); 1785 tcp_conn->rx_hash.flags = 0; 1786 - if (!tcp_conn->rx_hash.tfm) 1787 goto free_tx_tfm; 1788 1789 return cls_conn; ··· 2044 sk = tcp_conn->sock->sk; 2045 if (sk->sk_family == PF_INET) { 2046 inet = inet_sk(sk); 2047 - len = sprintf(buf, "%u.%u.%u.%u\n", 2048 NIPQUAD(inet->daddr)); 2049 } else { 2050 np = inet6_sk(sk); 2051 - len = sprintf(buf, 2052 - "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n", 2053 - NIP6(np->daddr)); 2054 } 2055 mutex_unlock(&conn->xmitmutex); 2056 break;
··· 749 if (!offset) 750 crypto_hash_update( 751 &tcp_conn->rx_hash, 752 + &sg[i], sg[i].length); 753 else 754 partial_sg_digest_update( 755 &tcp_conn->rx_hash, ··· 1777 tcp_conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0, 1778 CRYPTO_ALG_ASYNC); 1779 tcp_conn->tx_hash.flags = 0; 1780 + if (IS_ERR(tcp_conn->tx_hash.tfm)) 1781 goto free_tcp_conn; 1782 1783 tcp_conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0, 1784 CRYPTO_ALG_ASYNC); 1785 tcp_conn->rx_hash.flags = 0; 1786 + if (IS_ERR(tcp_conn->rx_hash.tfm)) 1787 goto free_tx_tfm; 1788 1789 return cls_conn; ··· 2044 sk = tcp_conn->sock->sk; 2045 if (sk->sk_family == PF_INET) { 2046 inet = inet_sk(sk); 2047 + len = sprintf(buf, NIPQUAD_FMT "\n", 2048 NIPQUAD(inet->daddr)); 2049 } else { 2050 np = inet6_sk(sk); 2051 + len = sprintf(buf, NIP6_FMT "\n", NIP6(np->daddr)); 2052 } 2053 mutex_unlock(&conn->xmitmutex); 2054 break;
+3 -3
drivers/scsi/libiscsi.c
··· 260 } 261 262 if (rhdr->cmd_status == SAM_STAT_CHECK_CONDITION) { 263 - int senselen; 264 265 if (datalen < 2) { 266 invalid_datalen: ··· 270 goto out; 271 } 272 273 - senselen = (data[0] << 8) | data[1]; 274 if (datalen < senselen) 275 goto invalid_datalen; 276 277 memcpy(sc->sense_buffer, data + 2, 278 - min(senselen, SCSI_SENSE_BUFFERSIZE)); 279 debug_scsi("copied %d bytes of sense\n", 280 min(senselen, SCSI_SENSE_BUFFERSIZE)); 281 }
··· 260 } 261 262 if (rhdr->cmd_status == SAM_STAT_CHECK_CONDITION) { 263 + uint16_t senselen; 264 265 if (datalen < 2) { 266 invalid_datalen: ··· 270 goto out; 271 } 272 273 + senselen = be16_to_cpu(*(uint16_t *)data); 274 if (datalen < senselen) 275 goto invalid_datalen; 276 277 memcpy(sc->sense_buffer, data + 2, 278 + min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE)); 279 debug_scsi("copied %d bytes of sense\n", 280 min(senselen, SCSI_SENSE_BUFFERSIZE)); 281 }
+5 -1
drivers/scsi/lpfc/lpfc_mem.c
··· 56 57 pool->elements = kmalloc(sizeof(struct lpfc_dmabuf) * 58 LPFC_MBUF_POOL_SIZE, GFP_KERNEL); 59 pool->max_count = 0; 60 pool->current_count = 0; 61 for ( i = 0; i < LPFC_MBUF_POOL_SIZE; i++) { ··· 85 fail_free_mbox_pool: 86 mempool_destroy(phba->mbox_mem_pool); 87 fail_free_mbuf_pool: 88 - while (--i) 89 pci_pool_free(phba->lpfc_mbuf_pool, pool->elements[i].virt, 90 pool->elements[i].phys); 91 kfree(pool->elements); 92 pci_pool_destroy(phba->lpfc_mbuf_pool); 93 fail_free_dma_buf_pool: 94 pci_pool_destroy(phba->lpfc_scsi_dma_buf_pool);
··· 56 57 pool->elements = kmalloc(sizeof(struct lpfc_dmabuf) * 58 LPFC_MBUF_POOL_SIZE, GFP_KERNEL); 59 + if (!pool->elements) 60 + goto fail_free_lpfc_mbuf_pool; 61 + 62 pool->max_count = 0; 63 pool->current_count = 0; 64 for ( i = 0; i < LPFC_MBUF_POOL_SIZE; i++) { ··· 82 fail_free_mbox_pool: 83 mempool_destroy(phba->mbox_mem_pool); 84 fail_free_mbuf_pool: 85 + while (i--) 86 pci_pool_free(phba->lpfc_mbuf_pool, pool->elements[i].virt, 87 pool->elements[i].phys); 88 kfree(pool->elements); 89 + fail_free_lpfc_mbuf_pool: 90 pci_pool_destroy(phba->lpfc_mbuf_pool); 91 fail_free_dma_buf_pool: 92 pci_pool_destroy(phba->lpfc_scsi_dma_buf_pool);
+3 -3
drivers/scsi/megaraid/megaraid_sas.c
··· 13 * Version : v00.00.03.05 14 * 15 * Authors: 16 - * Sreenivas Bagalkote <Sreenivas.Bagalkote@lsil.com> 17 - * Sumant Patro <Sumant.Patro@lsil.com> 18 * 19 * List of supported controllers 20 * ··· 45 46 MODULE_LICENSE("GPL"); 47 MODULE_VERSION(MEGASAS_VERSION); 48 - MODULE_AUTHOR("sreenivas.bagalkote@lsil.com"); 49 MODULE_DESCRIPTION("LSI Logic MegaRAID SAS Driver"); 50 51 /*
··· 13 * Version : v00.00.03.05 14 * 15 * Authors: 16 + * Sreenivas Bagalkote <Sreenivas.Bagalkote@lsi.com> 17 + * Sumant Patro <Sumant.Patro@lsi.com> 18 * 19 * List of supported controllers 20 * ··· 45 46 MODULE_LICENSE("GPL"); 47 MODULE_VERSION(MEGASAS_VERSION); 48 + MODULE_AUTHOR("megaraidlinux@lsi.com"); 49 MODULE_DESCRIPTION("LSI Logic MegaRAID SAS Driver"); 50 51 /*
+4 -2
drivers/scsi/qla1280.c
··· 1341 int host_status = DID_ERROR; 1342 uint16_t comp_status = le16_to_cpu(sts->comp_status); 1343 uint16_t state_flags = le16_to_cpu(sts->state_flags); 1344 - uint16_t residual_length = le32_to_cpu(sts->residual_length); 1345 uint16_t scsi_status = le16_to_cpu(sts->scsi_status); 1346 #if DEBUG_QLA1280_INTR 1347 static char *reason[] = { ··· 1413 "scsi: Underflow detected - retrying " 1414 "command.\n"); 1415 host_status = DID_ERROR; 1416 - } else 1417 host_status = DID_OK; 1418 break; 1419 1420 default:
··· 1341 int host_status = DID_ERROR; 1342 uint16_t comp_status = le16_to_cpu(sts->comp_status); 1343 uint16_t state_flags = le16_to_cpu(sts->state_flags); 1344 + uint32_t residual_length = le32_to_cpu(sts->residual_length); 1345 uint16_t scsi_status = le16_to_cpu(sts->scsi_status); 1346 #if DEBUG_QLA1280_INTR 1347 static char *reason[] = { ··· 1413 "scsi: Underflow detected - retrying " 1414 "command.\n"); 1415 host_status = DID_ERROR; 1416 + } else { 1417 + cp->resid = residual_length; 1418 host_status = DID_OK; 1419 + } 1420 break; 1421 1422 default:
+2
drivers/scsi/qla2xxx/qla_def.h
··· 1602 1603 #define CT_REJECT_RESPONSE 0x8001 1604 #define CT_ACCEPT_RESPONSE 0x8002 1605 #define CT_REASON_CANNOT_PERFORM 0x09 1606 #define CT_EXPL_ALREADY_REGISTERED 0x10 1607 ··· 2080 uint32_t msi_enabled :1; 2081 uint32_t msix_enabled :1; 2082 uint32_t disable_serdes :1; 2083 } flags; 2084 2085 atomic_t loop_state;
··· 1602 1603 #define CT_REJECT_RESPONSE 0x8001 1604 #define CT_ACCEPT_RESPONSE 0x8002 1605 + #define CT_REASON_INVALID_COMMAND_CODE 0x01 1606 #define CT_REASON_CANNOT_PERFORM 0x09 1607 #define CT_EXPL_ALREADY_REGISTERED 0x10 1608 ··· 2079 uint32_t msi_enabled :1; 2080 uint32_t msix_enabled :1; 2081 uint32_t disable_serdes :1; 2082 + uint32_t gpsc_supported :1; 2083 } flags; 2084 2085 atomic_t loop_state;
-1
drivers/scsi/qla2xxx/qla_gbl.h
··· 45 extern int qla2x00_abort_isp(scsi_qla_host_t *); 46 47 extern void qla2x00_update_fcport(scsi_qla_host_t *, fc_port_t *); 48 - extern void qla2x00_reg_remote_port(scsi_qla_host_t *, fc_port_t *); 49 50 extern void qla2x00_alloc_fw_dump(scsi_qla_host_t *); 51 extern void qla2x00_try_to_stop_firmware(scsi_qla_host_t *);
··· 45 extern int qla2x00_abort_isp(scsi_qla_host_t *); 46 47 extern void qla2x00_update_fcport(scsi_qla_host_t *, fc_port_t *); 48 49 extern void qla2x00_alloc_fw_dump(scsi_qla_host_t *); 50 extern void qla2x00_try_to_stop_firmware(scsi_qla_host_t *);
+19 -5
drivers/scsi/qla2xxx/qla_gs.c
··· 127 ha->host_no, routine, ms_pkt->entry_status)); 128 } else { 129 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) 130 - comp_status = 131 - ((struct ct_entry_24xx *)ms_pkt)->comp_status; 132 else 133 comp_status = le16_to_cpu(ms_pkt->status); 134 switch (comp_status) { ··· 143 DEBUG2_3(qla2x00_dump_buffer( 144 (uint8_t *)&ct_rsp->header, 145 sizeof(struct ct_rsp_hdr))); 146 } else 147 rval = QLA_SUCCESS; 148 break; ··· 1684 memset(list[i].fabric_port_name, 0, WWN_SIZE); 1685 1686 /* Prepare common MS IOCB */ 1687 - ms_pkt = qla2x00_prep_ms_iocb(ha, GFPN_ID_REQ_SIZE, 1688 GFPN_ID_RSP_SIZE); 1689 1690 /* Prepare CT request */ ··· 1785 1786 if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) 1787 return QLA_FUNCTION_FAILED; 1788 1789 rval = qla2x00_mgmt_svr_login(ha); 1790 if (rval) ··· 1816 /*EMPTY*/ 1817 DEBUG2_3(printk("scsi(%ld): GPSC issue IOCB " 1818 "failed (%d).\n", ha->host_no, rval)); 1819 - } else if (qla2x00_chk_ms_status(ha, ms_pkt, ct_rsp, 1820 - "GPSC") != QLA_SUCCESS) { 1821 rval = QLA_FUNCTION_FAILED; 1822 } else { 1823 /* Save portname */
··· 127 ha->host_no, routine, ms_pkt->entry_status)); 128 } else { 129 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) 130 + comp_status = le16_to_cpu( 131 + ((struct ct_entry_24xx *)ms_pkt)->comp_status); 132 else 133 comp_status = le16_to_cpu(ms_pkt->status); 134 switch (comp_status) { ··· 143 DEBUG2_3(qla2x00_dump_buffer( 144 (uint8_t *)&ct_rsp->header, 145 sizeof(struct ct_rsp_hdr))); 146 + rval = QLA_INVALID_COMMAND; 147 } else 148 rval = QLA_SUCCESS; 149 break; ··· 1683 memset(list[i].fabric_port_name, 0, WWN_SIZE); 1684 1685 /* Prepare common MS IOCB */ 1686 + ms_pkt = ha->isp_ops.prep_ms_iocb(ha, GFPN_ID_REQ_SIZE, 1687 GFPN_ID_RSP_SIZE); 1688 1689 /* Prepare CT request */ ··· 1784 1785 if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha)) 1786 return QLA_FUNCTION_FAILED; 1787 + if (!ha->flags.gpsc_supported) 1788 + return QLA_FUNCTION_FAILED; 1789 1790 rval = qla2x00_mgmt_svr_login(ha); 1791 if (rval) ··· 1813 /*EMPTY*/ 1814 DEBUG2_3(printk("scsi(%ld): GPSC issue IOCB " 1815 "failed (%d).\n", ha->host_no, rval)); 1816 + } else if ((rval = qla2x00_chk_ms_status(ha, ms_pkt, ct_rsp, 1817 + "GPSC")) != QLA_SUCCESS) { 1818 + /* FM command unsupported? */ 1819 + if (rval == QLA_INVALID_COMMAND && 1820 + ct_rsp->header.reason_code == 1821 + CT_REASON_INVALID_COMMAND_CODE) { 1822 + DEBUG2(printk("scsi(%ld): GPSC command " 1823 + "unsupported, disabling query...\n", 1824 + ha->host_no)); 1825 + ha->flags.gpsc_supported = 0; 1826 + rval = QLA_FUNCTION_FAILED; 1827 + break; 1828 + } 1829 rval = QLA_FUNCTION_FAILED; 1830 } else { 1831 /* Save portname */
+39 -37
drivers/scsi/qla2xxx/qla_init.c
··· 2103 } 2104 } 2105 2106 - /* 2107 - * qla2x00_update_fcport 2108 - * Updates device on list. 2109 - * 2110 - * Input: 2111 - * ha = adapter block pointer. 2112 - * fcport = port structure pointer. 2113 - * 2114 - * Return: 2115 - * 0 - Success 2116 - * BIT_0 - error 2117 - * 2118 - * Context: 2119 - * Kernel context. 2120 - */ 2121 - void 2122 - qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport) 2123 - { 2124 - fcport->ha = ha; 2125 - fcport->login_retry = 0; 2126 - fcport->port_login_retry_count = ha->port_down_retry_count * 2127 - PORT_RETRY_TIME; 2128 - atomic_set(&fcport->port_down_timer, ha->port_down_retry_count * 2129 - PORT_RETRY_TIME); 2130 - fcport->flags &= ~FCF_LOGIN_NEEDED; 2131 - 2132 - qla2x00_iidma_fcport(ha, fcport); 2133 - 2134 - atomic_set(&fcport->state, FCS_ONLINE); 2135 - 2136 - qla2x00_reg_remote_port(ha, fcport); 2137 - } 2138 - 2139 - void 2140 qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport) 2141 { 2142 struct fc_rport_identifiers rport_ids; ··· 2143 if (rport->scsi_target_id != -1 && 2144 rport->scsi_target_id < ha->host->max_id) 2145 fcport->os_target_id = rport->scsi_target_id; 2146 } 2147 2148 /* ··· 3476 3477 /* Set host adapter parameters. */ 3478 ha->flags.disable_risc_code_load = 0; 3479 - ha->flags.enable_lip_reset = 1; 3480 - ha->flags.enable_lip_full_login = 1; 3481 - ha->flags.enable_target_reset = 1; 3482 ha->flags.enable_led_scheme = 0; 3483 ha->flags.disable_serdes = le32_to_cpu(nv->host_p) & BIT_5 ? 1: 0; 3484
··· 2103 } 2104 } 2105 2106 + static void 2107 qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport) 2108 { 2109 struct fc_rport_identifiers rport_ids; ··· 2176 if (rport->scsi_target_id != -1 && 2177 rport->scsi_target_id < ha->host->max_id) 2178 fcport->os_target_id = rport->scsi_target_id; 2179 + } 2180 + 2181 + /* 2182 + * qla2x00_update_fcport 2183 + * Updates device on list. 2184 + * 2185 + * Input: 2186 + * ha = adapter block pointer. 2187 + * fcport = port structure pointer. 2188 + * 2189 + * Return: 2190 + * 0 - Success 2191 + * BIT_0 - error 2192 + * 2193 + * Context: 2194 + * Kernel context. 2195 + */ 2196 + void 2197 + qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport) 2198 + { 2199 + fcport->ha = ha; 2200 + fcport->login_retry = 0; 2201 + fcport->port_login_retry_count = ha->port_down_retry_count * 2202 + PORT_RETRY_TIME; 2203 + atomic_set(&fcport->port_down_timer, ha->port_down_retry_count * 2204 + PORT_RETRY_TIME); 2205 + fcport->flags &= ~FCF_LOGIN_NEEDED; 2206 + 2207 + qla2x00_iidma_fcport(ha, fcport); 2208 + 2209 + atomic_set(&fcport->state, FCS_ONLINE); 2210 + 2211 + qla2x00_reg_remote_port(ha, fcport); 2212 } 2213 2214 /* ··· 3476 3477 /* Set host adapter parameters. */ 3478 ha->flags.disable_risc_code_load = 0; 3479 + ha->flags.enable_lip_reset = 0; 3480 + ha->flags.enable_lip_full_login = 3481 + le32_to_cpu(nv->host_p) & BIT_10 ? 1: 0; 3482 + ha->flags.enable_target_reset = 3483 + le32_to_cpu(nv->host_p) & BIT_11 ? 1: 0; 3484 ha->flags.enable_led_scheme = 0; 3485 ha->flags.disable_serdes = le32_to_cpu(nv->host_p) & BIT_5 ? 1: 0; 3486
+9 -6
drivers/scsi/qla2xxx/qla_isr.c
··· 134 if (stat & HSR_RISC_PAUSED) { 135 hccr = RD_REG_WORD(&reg->hccr); 136 if (hccr & (BIT_15 | BIT_13 | BIT_11 | BIT_8)) 137 - qla_printk(KERN_INFO, ha, 138 - "Parity error -- HCCR=%x.\n", hccr); 139 else 140 - qla_printk(KERN_INFO, ha, 141 - "RISC paused -- HCCR=%x.\n", hccr); 142 143 /* 144 * Issue a "HARD" reset in order for the RISC ··· 147 */ 148 WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC); 149 RD_REG_WORD(&reg->hccr); 150 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 151 break; 152 } else if ((stat & HSR_RISC_INT) == 0) ··· 477 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags); 478 } 479 set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags); 480 break; 481 482 case MBA_CHG_IN_CONNECTION: /* Change in connection mode */ ··· 1444 1445 qla_printk(KERN_INFO, ha, "RISC paused -- HCCR=%x, " 1446 "Dumping firmware!\n", hccr); 1447 - qla24xx_fw_dump(ha, 1); 1448 - 1449 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 1450 break; 1451 } else if ((stat & HSRX_RISC_INT) == 0)
··· 134 if (stat & HSR_RISC_PAUSED) { 135 hccr = RD_REG_WORD(&reg->hccr); 136 if (hccr & (BIT_15 | BIT_13 | BIT_11 | BIT_8)) 137 + qla_printk(KERN_INFO, ha, "Parity error -- " 138 + "HCCR=%x, Dumping firmware!\n", hccr); 139 else 140 + qla_printk(KERN_INFO, ha, "RISC paused -- " 141 + "HCCR=%x, Dumping firmware!\n", hccr); 142 143 /* 144 * Issue a "HARD" reset in order for the RISC ··· 147 */ 148 WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC); 149 RD_REG_WORD(&reg->hccr); 150 + 151 + ha->isp_ops.fw_dump(ha, 1); 152 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 153 break; 154 } else if ((stat & HSR_RISC_INT) == 0) ··· 475 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags); 476 } 477 set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags); 478 + 479 + ha->flags.gpsc_supported = 1; 480 break; 481 482 case MBA_CHG_IN_CONNECTION: /* Change in connection mode */ ··· 1440 1441 qla_printk(KERN_INFO, ha, "RISC paused -- HCCR=%x, " 1442 "Dumping firmware!\n", hccr); 1443 + ha->isp_ops.fw_dump(ha, 1); 1444 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 1445 break; 1446 } else if ((stat & HSRX_RISC_INT) == 0)
+6 -6
drivers/scsi/qla2xxx/qla_mbx.c
··· 1339 1340 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { 1341 mcp->mb[0] = MBC_LIP_FULL_LOGIN; 1342 - mcp->mb[1] = BIT_0; 1343 - mcp->mb[2] = 0xff; 1344 - mcp->mb[3] = 0; 1345 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1346 } else { 1347 mcp->mb[0] = MBC_LIP_RESET; ··· 1823 ha->host_no)); 1824 1825 mcp->mb[0] = MBC_LIP_FULL_LOGIN; 1826 - mcp->mb[1] = 0; 1827 - mcp->mb[2] = 0xff; 1828 mcp->mb[3] = 0; 1829 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1830 mcp->in_mb = MBX_0; ··· 2486 mcp->mb[4] = LSW(MSD(eft_dma)); 2487 mcp->mb[5] = MSW(MSD(eft_dma)); 2488 mcp->mb[6] = buffers; 2489 - mcp->mb[7] = buffers; 2490 mcp->out_mb |= MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2; 2491 } 2492 mcp->tov = 30;
··· 1339 1340 if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) { 1341 mcp->mb[0] = MBC_LIP_FULL_LOGIN; 1342 + mcp->mb[1] = BIT_6; 1343 + mcp->mb[2] = 0; 1344 + mcp->mb[3] = ha->loop_reset_delay; 1345 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1346 } else { 1347 mcp->mb[0] = MBC_LIP_RESET; ··· 1823 ha->host_no)); 1824 1825 mcp->mb[0] = MBC_LIP_FULL_LOGIN; 1826 + mcp->mb[1] = IS_QLA24XX(ha) || IS_QLA54XX(ha) ? BIT_3: 0; 1827 + mcp->mb[2] = 0; 1828 mcp->mb[3] = 0; 1829 mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0; 1830 mcp->in_mb = MBX_0; ··· 2486 mcp->mb[4] = LSW(MSD(eft_dma)); 2487 mcp->mb[5] = MSW(MSD(eft_dma)); 2488 mcp->mb[6] = buffers; 2489 + mcp->mb[7] = 0; 2490 mcp->out_mb |= MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2; 2491 } 2492 mcp->tov = 30;
+32 -29
drivers/scsi/qla2xxx/qla_os.c
··· 1037 static int 1038 qla2x00_loop_reset(scsi_qla_host_t *ha) 1039 { 1040 - int status = QLA_SUCCESS; 1041 struct fc_port *fcport; 1042 1043 - if (ha->flags.enable_lip_reset) { 1044 - status = qla2x00_lip_reset(ha); 1045 } 1046 1047 - if (status == QLA_SUCCESS && ha->flags.enable_target_reset) { 1048 list_for_each_entry(fcport, &ha->fcports, list) { 1049 if (fcport->port_type != FCT_TARGET) 1050 continue; 1051 1052 - status = qla2x00_device_reset(ha, fcport); 1053 - if (status != QLA_SUCCESS) 1054 - break; 1055 } 1056 - } 1057 - 1058 - if (status == QLA_SUCCESS && 1059 - ((!ha->flags.enable_target_reset && 1060 - !ha->flags.enable_lip_reset) || 1061 - ha->flags.enable_lip_full_login)) { 1062 - 1063 - status = qla2x00_full_login_lip(ha); 1064 } 1065 1066 /* Issue marker command only when we are going to start the I/O */ 1067 ha->marker_needed = 1; 1068 1069 - if (status) { 1070 - /* Empty */ 1071 - DEBUG2_3(printk("%s(%ld): **** FAILED ****\n", 1072 - __func__, 1073 - ha->host_no)); 1074 - } else { 1075 - /* Empty */ 1076 - DEBUG3(printk("%s(%ld): exiting normally.\n", 1077 - __func__, 1078 - ha->host_no)); 1079 - } 1080 - 1081 - return(status); 1082 } 1083 1084 /* ··· 1414 1415 sht = &qla2x00_driver_template; 1416 if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 || 1417 - pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432) 1418 sht = &qla24xx_driver_template; 1419 host = scsi_host_alloc(sht, sizeof(scsi_qla_host_t)); 1420 if (host == NULL) {
··· 1037 static int 1038 qla2x00_loop_reset(scsi_qla_host_t *ha) 1039 { 1040 + int ret; 1041 struct fc_port *fcport; 1042 1043 + if (ha->flags.enable_lip_full_login) { 1044 + ret = qla2x00_full_login_lip(ha); 1045 + if (ret != QLA_SUCCESS) { 1046 + DEBUG2_3(printk("%s(%ld): bus_reset failed: " 1047 + "full_login_lip=%d.\n", __func__, ha->host_no, 1048 + ret)); 1049 + } 1050 + atomic_set(&ha->loop_state, LOOP_DOWN); 1051 + atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME); 1052 + qla2x00_mark_all_devices_lost(ha, 0); 1053 + qla2x00_wait_for_loop_ready(ha); 1054 } 1055 1056 + if (ha->flags.enable_lip_reset) { 1057 + ret = qla2x00_lip_reset(ha); 1058 + if (ret != QLA_SUCCESS) { 1059 + DEBUG2_3(printk("%s(%ld): bus_reset failed: " 1060 + "lip_reset=%d.\n", __func__, ha->host_no, ret)); 1061 + } 1062 + qla2x00_wait_for_loop_ready(ha); 1063 + } 1064 + 1065 + if (ha->flags.enable_target_reset) { 1066 list_for_each_entry(fcport, &ha->fcports, list) { 1067 if (fcport->port_type != FCT_TARGET) 1068 continue; 1069 1070 + ret = qla2x00_device_reset(ha, fcport); 1071 + if (ret != QLA_SUCCESS) { 1072 + DEBUG2_3(printk("%s(%ld): bus_reset failed: " 1073 + "target_reset=%d d_id=%x.\n", __func__, 1074 + ha->host_no, ret, fcport->d_id.b24)); 1075 + } 1076 } 1077 } 1078 1079 /* Issue marker command only when we are going to start the I/O */ 1080 ha->marker_needed = 1; 1081 1082 + return QLA_SUCCESS; 1083 } 1084 1085 /* ··· 1413 1414 sht = &qla2x00_driver_template; 1415 if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 || 1416 + pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432 || 1417 + pdev->device == PCI_DEVICE_ID_QLOGIC_ISP5422 || 1418 + pdev->device == PCI_DEVICE_ID_QLOGIC_ISP5432) 1419 sht = &qla24xx_driver_template; 1420 host = scsi_host_alloc(sht, sizeof(scsi_qla_host_t)); 1421 if (host == NULL) {
+1 -1
drivers/scsi/qla2xxx/qla_version.h
··· 7 /* 8 * Driver version 9 */ 10 - #define QLA2XXX_VERSION "8.01.07-k3" 11 12 #define QLA_DRIVER_MAJOR_VER 8 13 #define QLA_DRIVER_MINOR_VER 1
··· 7 /* 8 * Driver version 9 */ 10 + #define QLA2XXX_VERSION "8.01.07-k4" 11 12 #define QLA_DRIVER_MAJOR_VER 8 13 #define QLA_DRIVER_MINOR_VER 1
+25 -8
drivers/scsi/scsi_scan.c
··· 133 /** 134 * scsi_complete_async_scans - Wait for asynchronous scans to complete 135 * 136 - * Asynchronous scans add themselves to the scanning_hosts list. Once 137 - * that list is empty, we know that the scans are complete. Rather than 138 - * waking up periodically to check the state of the list, we pretend to be 139 - * a scanning task by adding ourselves at the end of the list and going to 140 - * sleep. When the task before us wakes us up, we take ourselves off the 141 - * list and return. 142 */ 143 int scsi_complete_async_scans(void) 144 { ··· 169 170 spin_lock(&async_scan_lock); 171 list_del(&data->list); 172 done: 173 spin_unlock(&async_scan_lock); 174 ··· 742 sdev->no_uld_attach = 1; 743 744 switch (sdev->type = (inq_result[0] & 0x1f)) { 745 case TYPE_TAPE: 746 case TYPE_DISK: 747 case TYPE_PRINTER: ··· 760 case TYPE_ENCLOSURE: 761 case TYPE_COMM: 762 case TYPE_RAID: 763 - case TYPE_RBC: 764 sdev->writeable = 1; 765 break; 766 - case TYPE_WORM: 767 case TYPE_ROM: 768 sdev->writeable = 0; 769 break; 770 default:
··· 133 /** 134 * scsi_complete_async_scans - Wait for asynchronous scans to complete 135 * 136 + * When this function returns, any host which started scanning before 137 + * this function was called will have finished its scan. Hosts which 138 + * started scanning after this function was called may or may not have 139 + * finished. 140 */ 141 int scsi_complete_async_scans(void) 142 { ··· 171 172 spin_lock(&async_scan_lock); 173 list_del(&data->list); 174 + if (!list_empty(&scanning_hosts)) { 175 + struct async_scan_data *next = list_entry(scanning_hosts.next, 176 + struct async_scan_data, list); 177 + complete(&next->prev_finished); 178 + } 179 done: 180 spin_unlock(&async_scan_lock); 181 ··· 739 sdev->no_uld_attach = 1; 740 741 switch (sdev->type = (inq_result[0] & 0x1f)) { 742 + case TYPE_RBC: 743 + /* RBC devices can return SCSI-3 compliance and yet 744 + * still not support REPORT LUNS, so make them act as 745 + * BLIST_NOREPORTLUN unless BLIST_REPORTLUN2 is 746 + * specifically set */ 747 + if ((*bflags & BLIST_REPORTLUN2) == 0) 748 + *bflags |= BLIST_NOREPORTLUN; 749 + /* fall through */ 750 case TYPE_TAPE: 751 case TYPE_DISK: 752 case TYPE_PRINTER: ··· 749 case TYPE_ENCLOSURE: 750 case TYPE_COMM: 751 case TYPE_RAID: 752 sdev->writeable = 1; 753 break; 754 case TYPE_ROM: 755 + /* MMC devices can return SCSI-3 compliance and yet 756 + * still not support REPORT LUNS, so make them act as 757 + * BLIST_NOREPORTLUN unless BLIST_REPORTLUN2 is 758 + * specifically set */ 759 + if ((*bflags & BLIST_REPORTLUN2) == 0) 760 + *bflags |= BLIST_NOREPORTLUN; 761 + /* fall through */ 762 + case TYPE_WORM: 763 sdev->writeable = 0; 764 break; 765 default:
+1 -1
drivers/scsi/scsi_transport_iscsi.c
··· 1416 { 1417 int err; 1418 1419 - printk(KERN_INFO "Loading iSCSI transport class v%s.", 1420 ISCSI_TRANSPORT_VERSION); 1421 1422 err = class_register(&iscsi_transport_class);
··· 1416 { 1417 int err; 1418 1419 + printk(KERN_INFO "Loading iSCSI transport class v%s.\n", 1420 ISCSI_TRANSPORT_VERSION); 1421 1422 err = class_register(&iscsi_transport_class);
+1 -1
drivers/scsi/scsi_transport_spi.c
··· 122 if (!sshdr) 123 sshdr = &sshdr_tmp; 124 125 - if (scsi_normalize_sense(sense, sizeof(*sense), 126 sshdr) 127 && sshdr->sense_key == UNIT_ATTENTION) 128 continue;
··· 122 if (!sshdr) 123 sshdr = &sshdr_tmp; 124 125 + if (scsi_normalize_sense(sense, SCSI_SENSE_BUFFERSIZE, 126 sshdr) 127 && sshdr->sense_key == UNIT_ATTENTION) 128 continue;
+3 -2
drivers/scsi/seagate.c
··· 114 #define DPRINTK( when, msg... ) do { if ( (DEBUG & (when)) == (when) ) printk( msg ); } while (0) 115 #else 116 #define DPRINTK( when, msg... ) do { } while (0) 117 #endif 118 #define DANY( msg... ) DPRINTK( 0xffff, msg ); 119 ··· 524 #ifdef ARBITRATE 525 " ARBITRATE" 526 #endif 527 - #ifdef DEBUG 528 " DEBUG" 529 #endif 530 #ifdef FAST ··· 734 unsigned char *data = NULL; 735 struct scatterlist *buffer = NULL; 736 int clock, temp, nobuffs = 0, done = 0, len = 0; 737 - #ifdef DEBUG 738 int transfered = 0, phase = 0, newphase; 739 #endif 740 register unsigned char status_read;
··· 114 #define DPRINTK( when, msg... ) do { if ( (DEBUG & (when)) == (when) ) printk( msg ); } while (0) 115 #else 116 #define DPRINTK( when, msg... ) do { } while (0) 117 + #define DEBUG 0 118 #endif 119 #define DANY( msg... ) DPRINTK( 0xffff, msg ); 120 ··· 523 #ifdef ARBITRATE 524 " ARBITRATE" 525 #endif 526 + #if DEBUG 527 " DEBUG" 528 #endif 529 #ifdef FAST ··· 733 unsigned char *data = NULL; 734 struct scatterlist *buffer = NULL; 735 int clock, temp, nobuffs = 0, done = 0, len = 0; 736 + #if DEBUG 737 int transfered = 0, phase = 0, newphase; 738 #endif 739 register unsigned char status_read;
+1 -1
drivers/scsi/sr.c
··· 468 } 469 470 ret = cdrom_ioctl(file, &cd->cdi, inode, cmd, arg); 471 - if (ret != ENOSYS) 472 return ret; 473 474 /*
··· 468 } 469 470 ret = cdrom_ioctl(file, &cd->cdi, inode, cmd, arg); 471 + if (ret != -ENOSYS) 472 return ret; 473 474 /*