Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
[SCSI] Skip deleted devices in __scsi_device_lookup_by_target()
[SCSI] Add SUN Universal Xport to no attach blacklist
[SCSI] iscsi_tcp: make padbuf non-static
[SCSI] mpt fusion: Add Firmware debug support
[SCSI] mpt fusion: Add separate msi enable disable for FC,SPI,SAS
[SCSI] mpt fusion: Update MPI Headers to version 01.05.19
[SCSI] qla2xxx: Fix ISP restart bug in multiq code

+320 -97
+5 -2
drivers/message/fusion/lsi/mpi.h
··· 6 6 * Title: MPI Message independent structures and definitions 7 7 * Creation Date: July 27, 2000 8 8 * 9 - * mpi.h Version: 01.05.13 9 + * mpi.h Version: 01.05.16 10 10 * 11 11 * Version History 12 12 * --------------- ··· 79 79 * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. 80 80 * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. 81 81 * 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT. 82 + * 08-07-07 01.05.14 Bumped MPI_HEADER_VERSION_UNIT. 83 + * 01-15-08 01.05.15 Bumped MPI_HEADER_VERSION_UNIT. 84 + * 03-28-08 01.05.16 Bumped MPI_HEADER_VERSION_UNIT. 82 85 * -------------------------------------------------------------------------- 83 86 */ 84 87 ··· 112 109 /* Note: The major versions of 0xe0 through 0xff are reserved */ 113 110 114 111 /* versioning for this MPI header set */ 115 - #define MPI_HEADER_VERSION_UNIT (0x10) 112 + #define MPI_HEADER_VERSION_UNIT (0x13) 116 113 #define MPI_HEADER_VERSION_DEV (0x00) 117 114 #define MPI_HEADER_VERSION_UNIT_MASK (0xFF00) 118 115 #define MPI_HEADER_VERSION_UNIT_SHIFT (8)
+45 -2
drivers/message/fusion/lsi/mpi_cnfg.h
··· 6 6 * Title: MPI Config message, structures, and Pages 7 7 * Creation Date: July 27, 2000 8 8 * 9 - * mpi_cnfg.h Version: 01.05.15 9 + * mpi_cnfg.h Version: 01.05.18 10 10 * 11 11 * Version History 12 12 * --------------- ··· 308 308 * Expander Page 0 Flags field. 309 309 * Fixed define for 310 310 * MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED. 311 + * 08-07-07 01.05.16 Added MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT 312 + * define. 313 + * Added BIOS Page 4 structure. 314 + * Added MPI_RAID_PHYS_DISK1_PATH_MAX define for RAID 315 + * Physcial Disk Page 1. 316 + * 01-15-07 01.05.17 Added additional bit defines for ExtFlags field of 317 + * Manufacturing Page 4. 318 + * Added Solid State Drives Supported bit to IOC Page 6 319 + * Capabilities Flags. 320 + * Added new value for AccessStatus field of SAS Device 321 + * Page 0 (_SATA_NEEDS_INITIALIZATION). 322 + * 03-28-08 01.05.18 Defined new bits in Manufacturing Page 4 ExtFlags field 323 + * to control coercion size and the mixing of SAS and SATA 324 + * SSD drives. 311 325 * -------------------------------------------------------------------------- 312 326 */ 313 327 ··· 700 686 #define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) 701 687 702 688 /* defines for the ExtFlags field */ 689 + #define MPI_MANPAGE4_EXTFLAGS_MASK_COERCION_SIZE (0x0180) 690 + #define MPI_MANPAGE4_EXTFLAGS_SHIFT_COERCION_SIZE (7) 691 + #define MPI_MANPAGE4_EXTFLAGS_1GB_COERCION_SIZE (0) 692 + #define MPI_MANPAGE4_EXTFLAGS_128MB_COERCION_SIZE (1) 693 + 694 + #define MPI_MANPAGE4_EXTFLAGS_NO_MIX_SSD_SAS_SATA (0x0040) 695 + #define MPI_MANPAGE4_EXTFLAGS_MIX_SSD_AND_NON_SSD (0x0020) 696 + #define MPI_MANPAGE4_EXTFLAGS_DUAL_PORT_SUPPORT (0x0010) 703 697 #define MPI_MANPAGE4_EXTFLAGS_HIDE_NON_IR_METADATA (0x0008) 704 698 #define MPI_MANPAGE4_EXTFLAGS_SAS_CACHE_DISABLE (0x0004) 705 699 #define MPI_MANPAGE4_EXTFLAGS_SATA_CACHE_DISABLE (0x0002) ··· 1181 1159 1182 1160 /* IOC Page 6 Capabilities Flags */ 1183 1161 1162 + #define MPI_IOCPAGE6_CAP_FLAGS_SSD_SUPPORT (0x00000020) 1163 + #define MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT (0x00000010) 1184 1164 #define MPI_IOCPAGE6_CAP_FLAGS_DISABLE_SMART_POLLING (0x00000008) 1185 1165 1186 1166 #define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006) ··· 1451 1427 #define MPI_BIOSPAGE2_FORM_FC_WWN (0x04) 1452 1428 #define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05) 1453 1429 #define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06) 1430 + 1431 + typedef struct _CONFIG_PAGE_BIOS_4 1432 + { 1433 + CONFIG_PAGE_HEADER Header; /* 00h */ 1434 + U64 ReassignmentBaseWWID; /* 04h */ 1435 + } CONFIG_PAGE_BIOS_4, MPI_POINTER PTR_CONFIG_PAGE_BIOS_4, 1436 + BIOSPage4_t, MPI_POINTER pBIOSPage4_t; 1437 + 1438 + #define MPI_BIOSPAGE4_PAGEVERSION (0x00) 1454 1439 1455 1440 1456 1441 /**************************************************************************** ··· 2452 2419 #define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002) 2453 2420 #define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001) 2454 2421 2422 + 2423 + /* 2424 + * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 2425 + * one and check Header.PageLength or NumPhysDiskPaths at runtime. 2426 + */ 2427 + #ifndef MPI_RAID_PHYS_DISK1_PATH_MAX 2428 + #define MPI_RAID_PHYS_DISK1_PATH_MAX (1) 2429 + #endif 2430 + 2455 2431 typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1 2456 2432 { 2457 2433 CONFIG_PAGE_HEADER Header; /* 00h */ ··· 2468 2426 U8 PhysDiskNum; /* 05h */ 2469 2427 U16 Reserved2; /* 06h */ 2470 2428 U32 Reserved1; /* 08h */ 2471 - RAID_PHYS_DISK1_PATH Path[1]; /* 0Ch */ 2429 + RAID_PHYS_DISK1_PATH Path[MPI_RAID_PHYS_DISK1_PATH_MAX];/* 0Ch */ 2472 2430 } CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1, 2473 2431 RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t; 2474 2432 ··· 2886 2844 #define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01) 2887 2845 #define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02) 2888 2846 #define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03) 2847 + #define MPI_SAS_DEVICE0_ASTATUS_SATA_NEEDS_INITIALIZATION (0x04) 2889 2848 /* specific values for SATA Init failures */ 2890 2849 #define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10) 2891 2850 #define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11)
+1 -1
drivers/message/fusion/lsi/mpi_fc.h
··· 1 1 /* 2 - * Copyright (c) 2000-2004 LSI Corporation. 2 + * Copyright (c) 2000-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_fc.h
+60 -26
drivers/message/fusion/lsi/mpi_history.txt
··· 3 3 MPI Header File Change History 4 4 ============================== 5 5 6 - Copyright (c) 2000-2007 LSI Corporation. 6 + Copyright (c) 2000-2008 LSI Corporation. 7 7 8 8 --------------------------------------- 9 - Header Set Release Version: 01.05.16 10 - Header Set Release Date: 05-24-07 9 + Header Set Release Version: 01.05.19 10 + Header Set Release Date: 03-28-08 11 11 --------------------------------------- 12 12 13 13 Filename Current version Prior version 14 14 ---------- --------------- ------------- 15 - mpi.h 01.05.13 01.05.12 16 - mpi_ioc.h 01.05.14 01.05.13 17 - mpi_cnfg.h 01.05.15 01.05.14 15 + mpi.h 01.05.16 01.05.15 16 + mpi_ioc.h 01.05.16 01.05.15 17 + mpi_cnfg.h 01.05.18 01.05.17 18 18 mpi_init.h 01.05.09 01.05.09 19 19 mpi_targ.h 01.05.06 01.05.06 20 20 mpi_fc.h 01.05.01 01.05.01 21 21 mpi_lan.h 01.05.01 01.05.01 22 - mpi_raid.h 01.05.03 01.05.03 22 + mpi_raid.h 01.05.05 01.05.05 23 23 mpi_tool.h 01.05.03 01.05.03 24 24 mpi_inb.h 01.05.01 01.05.01 25 - mpi_sas.h 01.05.04 01.05.04 25 + mpi_sas.h 01.05.05 01.05.05 26 26 mpi_type.h 01.05.02 01.05.02 27 - mpi_history.txt 01.05.14 01.05.14 27 + mpi_history.txt 01.05.19 01.05.18 28 28 29 29 30 30 * Date Version Description ··· 96 96 * 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT. 97 97 * 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT. 98 98 * 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT. 99 + * 08-07-07 01.05.14 Bumped MPI_HEADER_VERSION_UNIT. 100 + * 01-15-08 01.05.15 Bumped MPI_HEADER_VERSION_UNIT. 101 + * 03-28-08 01.05.16 Bumped MPI_HEADER_VERSION_UNIT. 99 102 * -------------------------------------------------------------------------- 100 103 101 104 mpi_ioc.h ··· 130 127 * 08-08-01 01.02.01 Original release for v1.2 work. 131 128 * New format for FWVersion and ProductId in 132 129 * MSG_IOC_FACTS_REPLY and MPI_FW_HEADER. 133 - * 08-31-01 01.02.02 Added event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and 130 + * 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and 134 131 * related structure and defines. 135 132 * Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED. 136 133 * Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE. ··· 190 187 * 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED. 191 188 * Added MaxInitiators field to PortFacts reply. 192 189 * Added SAS Device Status Change ReasonCode for 193 - * asynchronous notification. 190 + * asynchronous notificaiton. 194 191 * Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event 195 192 * data structure. 196 193 * Added new ImageType values for FWDownload and FWUpload ··· 202 199 * added _MULTI_PORT_DOMAIN. 203 200 * 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request. 204 201 * Added Common Boot Block type to FWUpload Request. 202 + * 08-07-07 01.05.15 Added MPI_EVENT_SAS_INIT_RC_REMOVED define. 203 + * Added MPI_EVENT_IR2_RC_DUAL_PORT_ADDED and 204 + * MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED for IR2 event data. 205 + * Added SASAddress field to SAS Initiator Device Table 206 + * Overflow event data structure. 207 + * 03-28-08 01.05.16 Added two new ReasonCode values to SAS Device Status 208 + * Change Event data to indicate completion of internally 209 + * generated task management. 210 + * Added MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE define. 211 + * Added MPI_EVENT_SAS_INIT_RC_INACCESSIBLE define. 205 212 * -------------------------------------------------------------------------- 206 213 207 214 mpi_cnfg.h ··· 226 213 * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 227 214 * page and updated the page version. 228 215 * Added Information field and _INFO_PARAMS_NEGOTIATED 229 - * definition to SCSI_DEVICE_0 page. 216 + * definitionto SCSI_DEVICE_0 page. 230 217 * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the 231 218 * page version. 232 219 * Added BucketsRemaining to LAN_1 page, redefined the ··· 509 496 * Expander Page 0 Flags field. 510 497 * Fixed define for 511 498 * MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED. 499 + * 08-07-07 01.05.16 Added MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT 500 + * define. 501 + * Added BIOS Page 4 structure. 502 + * Added MPI_RAID_PHYS_DISK1_PATH_MAX define for RAID 503 + * Physcial Disk Page 1. 504 + * 01-15-07 01.05.17 Added additional bit defines for ExtFlags field of 505 + * Manufacturing Page 4. 506 + * Added Solid State Drives Supported bit to IOC Page 6 507 + * Capabilities Flags. 508 + * Added new value for AccessStatus field of SAS Device 509 + * Page 0 (_SATA_NEEDS_INITIALIZATION). 510 + * 03-28-08 01.05.18 Defined new bits in Manufacturing Page 4 ExtFlags field 511 + * to control coercion size and the mixing of SAS and SATA 512 + * SSD drives. 512 513 * -------------------------------------------------------------------------- 513 514 514 515 mpi_init.h ··· 688 661 * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. 689 662 * 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and 690 663 * associated defines. 664 + * 08-07-07 01.05.04 Added Disable Full Rebuild bit to the ActionDataWord 665 + * for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME. 666 + * 01-15-08 01.05.05 Added define for MPI_RAID_ACTION_SET_VOLUME_NAME. 691 667 * -------------------------------------------------------------------------- 692 668 693 669 mpi_tool.h ··· 724 694 * reply. 725 695 * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO 726 696 * Unit Control request. 697 + * 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER, 698 + * including adding IOCParameter and IOCParameter value 699 + * fields to SAS IO Unit Control Request. 700 + * Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define. 727 701 * -------------------------------------------------------------------------- 728 702 729 703 mpi_type.h ··· 743 709 744 710 mpi_history.txt Parts list history 745 711 746 - Filename 01.05.15 01.05.15 747 - ---------- -------- -------- 748 - mpi.h 01.05.12 01.05.13 749 - mpi_ioc.h 01.05.13 01.05.14 750 - mpi_cnfg.h 01.05.14 01.05.15 751 - mpi_init.h 01.05.09 01.05.09 752 - mpi_targ.h 01.05.06 01.05.06 753 - mpi_fc.h 01.05.01 01.05.01 754 - mpi_lan.h 01.05.01 01.05.01 755 - mpi_raid.h 01.05.03 01.05.03 756 - mpi_tool.h 01.05.03 01.05.03 757 - mpi_inb.h 01.05.01 01.05.01 758 - mpi_sas.h 01.05.04 01.05.04 759 - mpi_type.h 01.05.02 01.05.02 712 + Filename 01.05.19 01.05.18 01.05.17 01.05.16 01.05.15 713 + ---------- -------- -------- -------- -------- -------- 714 + mpi.h 01.05.16 01.05.15 01.05.14 01.05.13 01.05.12 715 + mpi_ioc.h 01.05.16 01.05.15 01.05.15 01.05.14 01.05.13 716 + mpi_cnfg.h 01.05.18 01.05.17 01.05.16 01.05.15 01.05.14 717 + mpi_init.h 01.05.09 01.05.09 01.05.09 01.05.09 01.05.09 718 + mpi_targ.h 01.05.06 01.05.06 01.05.06 01.05.06 01.05.06 719 + mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 720 + mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 721 + mpi_raid.h 01.05.05 01.05.05 01.05.04 01.05.03 01.05.03 722 + mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03 723 + mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01 724 + mpi_sas.h 01.05.05 01.05.05 01.05.04 01.05.04 01.05.04 725 + mpi_type.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02 760 726 761 727 Filename 01.05.14 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09 762 728 ---------- -------- -------- -------- -------- -------- --------
+1 -1
drivers/message/fusion/lsi/mpi_init.h
··· 1 1 /* 2 - * Copyright (c) 2000-2007 LSI Corporation. 2 + * Copyright (c) 2000-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_init.h
+20 -2
drivers/message/fusion/lsi/mpi_ioc.h
··· 1 1 /* 2 - * Copyright (c) 2000-2007 LSI Corporation. 2 + * Copyright (c) 2000-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_ioc.h 6 6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages 7 7 * Creation Date: August 11, 2000 8 8 * 9 - * mpi_ioc.h Version: 01.05.14 9 + * mpi_ioc.h Version: 01.05.16 10 10 * 11 11 * Version History 12 12 * --------------- ··· 113 113 * added _MULTI_PORT_DOMAIN. 114 114 * 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request. 115 115 * Added Common Boot Block type to FWUpload Request. 116 + * 08-07-07 01.05.15 Added MPI_EVENT_SAS_INIT_RC_REMOVED define. 117 + * Added MPI_EVENT_IR2_RC_DUAL_PORT_ADDED and 118 + * MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED for IR2 event data. 119 + * Added SASAddress field to SAS Initiator Device Table 120 + * Overflow event data structure. 121 + * 03-28-08 01.05.16 Added two new ReasonCode values to SAS Device Status 122 + * Change Event data to indicate completion of internally 123 + * generated task management. 124 + * Added MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE define. 125 + * Added MPI_EVENT_SAS_INIT_RC_INACCESSIBLE define. 116 126 * -------------------------------------------------------------------------- 117 127 */ 118 128 ··· 622 612 #define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) 623 613 #define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) 624 614 #define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D) 615 + #define MPI_EVENT_SAS_DEV_STAT_RC_CMPL_INTERNAL_DEV_RESET (0x0E) 616 + #define MPI_EVENT_SAS_DEV_STAT_RC_CMPL_TASK_ABORT_INTERNAL (0x0F) 625 617 626 618 627 619 /* SCSI Event data for Queue Full event */ ··· 720 708 #define MPI_EVENT_IR2_RC_PD_REMOVED (0x05) 721 709 #define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06) 722 710 #define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07) 711 + #define MPI_EVENT_IR2_RC_DUAL_PORT_ADDED (0x08) 712 + #define MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED (0x09) 723 713 724 714 /* defines for logical disk states */ 725 715 #define MPI_LD_STATE_OPTIMAL (0x00) ··· 881 867 #define MPI_EVENT_DSCVRY_ERR_DS_UNSUPPORTED_DEVICE (0x00000800) 882 868 #define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000) 883 869 #define MPI_EVENT_DSCVRY_ERR_DS_MULTI_PORT_DOMAIN (0x00002000) 870 + #define MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE (0x00004000) 884 871 885 872 /* SAS SMP Error Event data */ 886 873 ··· 917 902 918 903 /* defines for the ReasonCode field of the SAS Initiator Device Status Change event */ 919 904 #define MPI_EVENT_SAS_INIT_RC_ADDED (0x01) 905 + #define MPI_EVENT_SAS_INIT_RC_REMOVED (0x02) 906 + #define MPI_EVENT_SAS_INIT_RC_INACCESSIBLE (0x03) 920 907 921 908 /* SAS Initiator Device Table Overflow Event data */ 922 909 ··· 927 910 U8 MaxInit; /* 00h */ 928 911 U8 CurrentInit; /* 01h */ 929 912 U16 Reserved1; /* 02h */ 913 + U64 SASAddress; /* 04h */ 930 914 } EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, 931 915 MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, 932 916 MpiEventDataSasInitTableOverflow_t,
+1 -1
drivers/message/fusion/lsi/mpi_lan.h
··· 1 1 /* 2 - * Copyright (c) 2000-2004 LSI Corporation. 2 + * Copyright (c) 2000-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_lan.h
+1 -1
drivers/message/fusion/lsi/mpi_log_fc.h
··· 1 1 /* 2 - * Copyright (c) 2000-2001 LSI Corporation. All rights reserved. 2 + * Copyright (c) 2000-2008 LSI Corporation. All rights reserved. 3 3 * 4 4 * NAME: fc_log.h 5 5 * SUMMARY: MPI IocLogInfo definitions for the SYMFC9xx chips
+31 -6
drivers/message/fusion/lsi/mpi_log_sas.h
··· 1 1 /*************************************************************************** 2 2 * * 3 - * Copyright 2003 LSI Corporation. All rights reserved. * 3 + * Copyright (c) 2000-2008 LSI Corporation. All rights reserved. * 4 4 * * 5 5 * Description * 6 6 * ------------ * ··· 73 73 #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004) 74 74 #define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005) 75 75 76 + #define IOP_LOGINFO_CODE_LOG_TIMESTAMP_EVENT (0x00080000) 77 + 76 78 /****************************************************************************/ 77 79 /* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */ 78 80 /****************************************************************************/ ··· 94 92 #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C) 95 93 #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D) 96 94 #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E) 97 - #define PL_LOGINFO_SUB CODE_OPEN_FAIL_BAD_DEST (0x00000011) 95 + #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_BAD_DEST (0x00000011) 98 96 #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012) 99 97 #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013) 100 98 #define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014) ··· 161 159 162 160 #define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200) 163 161 #define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300) 164 - #define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) /* Bits 0-3 encode Transport Status Register (offset 0x08) */ 165 - /* Bit 0 is Status Bit 0: FrameXferErr */ 166 - /* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */ 167 - /* Bit 3 is Status Bit 18 WriteDataLengthGTDataLengthErr */ 162 + #define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) 163 + /* Bits 0-3 encode Transport Status Register (offset 0x08) */ 164 + /* Bit 0 is Status Bit 0: FrameXferErr */ 165 + /* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */ 166 + /* Bit 3 is Status Bit 18 WriteDataLenghtGTDataLengthErr */ 168 167 169 168 #define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500) 170 169 #define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600) ··· 180 177 #define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01) 181 178 #define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00) 182 179 #define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000) 180 + #define PL_LOGINFO_SUB_CODE_BREAK_ON_SATA_CONNECTION (0x00002000) 181 + /* not currently used in mainline */ 182 + #define PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK (0x00003000) 183 + #define PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK_AIP (0x00004000) 184 + #define PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD (0x00005000) 183 185 184 186 #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ 185 187 #define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ ··· 251 243 #define IR_LOGINFO_VOLUME_ACTIVATE_VOLUME_FAILED (0x00010014) 252 244 /* Activation failed trying to import the volume */ 253 245 #define IR_LOGINFO_VOLUME_ACTIVATING_IMPORT_VOLUME_FAILED (0x00010015) 246 + /* Activation failed trying to import the volume */ 247 + #define IR_LOGINFO_VOLUME_ACTIVATING_TOO_MANY_PHYS_DISKS (0x00010016) 254 248 255 249 /* Phys Disk failed, too many phys disks */ 256 250 #define IR_LOGINFO_PHYSDISK_CREATE_TOO_MANY_DISKS (0x00010020) ··· 294 284 #define IR_LOGINFO_COMPAT_ERROR_NON_64K_STRIPE_SIZE (0x0001003C) 295 285 /* Compatibility Error : IME size limited to < 2TB */ 296 286 #define IR_LOGINFO_COMPAT_ERROR_IME_VOL_NOT_CURRENTLY_SUPPORTED (0x0001003D) 287 + 288 + /* Device Firmware Update: DFU can only be started once */ 289 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_DFU_IN_PROGRESS (0x00010050) 290 + /* Device Firmware Update: Volume must be Optimal/Active/non-Quiesced */ 291 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_DEVICE_IN_INVALID_STATE (0x00010051) 292 + /* Device Firmware Update: DFU Timeout cannot be zero */ 293 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_INVALID_TIMEOUT (0x00010052) 294 + /* Device Firmware Update: CREATE TIMER FAILED */ 295 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_NO_TIMERS (0x00010053) 296 + /* Device Firmware Update: Failed to read SAS_IO_UNIT_PG_1 */ 297 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_READING_CFG_PAGE (0x00010054) 298 + /* Device Firmware Update: Invalid SAS_IO_UNIT_PG_1 value(s) */ 299 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_PORT_IO_TIMEOUTS_REQUIRED (0x00010055) 300 + /* Device Firmware Update: Unable to allocate memory for page */ 301 + #define IR_LOGINFO_DEV_FW_UPDATE_ERR_ALLOC_CFG_PAGE (0x00010056) 297 302 298 303 299 304 /****************************************************************************/
+9 -2
drivers/message/fusion/lsi/mpi_raid.h
··· 1 1 /* 2 - * Copyright (c) 2001-2007 LSI Corporation. 2 + * Copyright (c) 2001-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_raid.h 6 6 * Title: MPI RAID message and structures 7 7 * Creation Date: February 27, 2001 8 8 * 9 - * mpi_raid.h Version: 01.05.03 9 + * mpi_raid.h Version: 01.05.05 10 10 * 11 11 * Version History 12 12 * --------------- ··· 34 34 * _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE. 35 35 * 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and 36 36 * associated defines. 37 + * 08-07-07 01.05.04 Added Disable Full Rebuild bit to the ActionDataWord 38 + * for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME. 39 + * 01-15-08 01.05.05 Added define for MPI_RAID_ACTION_SET_VOLUME_NAME. 37 40 * -------------------------------------------------------------------------- 38 41 */ 39 42 ··· 96 93 #define MPI_RAID_ACTION_SET_RESYNC_RATE (0x13) 97 94 #define MPI_RAID_ACTION_SET_DATA_SCRUB_RATE (0x14) 98 95 #define MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE (0x15) 96 + #define MPI_RAID_ACTION_SET_VOLUME_NAME (0x16) 99 97 100 98 /* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */ 101 99 #define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC (0x00000001) ··· 108 104 109 105 #define MPI_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000) 110 106 #define MPI_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000002) 107 + 108 + /* ActionDataWord defines for use with MPI_RAID_ACTION_DISABLE_VOLUME action */ 109 + #define MPI_RAID_ACTION_ADATA_DISABLE_FULL_REBUILD (0x00000001) 111 110 112 111 /* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */ 113 112 #define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL (0x00000001)
+13 -5
drivers/message/fusion/lsi/mpi_sas.h
··· 1 1 /* 2 - * Copyright (c) 2004-2006 LSI Corporation. 2 + * Copyright (c) 2004-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_sas.h 6 6 * Title: MPI Serial Attached SCSI structures and definitions 7 7 * Creation Date: August 19, 2004 8 8 * 9 - * mpi_sas.h Version: 01.05.04 9 + * mpi_sas.h Version: 01.05.05 10 10 * 11 11 * Version History 12 12 * --------------- ··· 23 23 * reply. 24 24 * 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO 25 25 * Unit Control request. 26 + * 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER, 27 + * including adding IOCParameter and IOCParameter value 28 + * fields to SAS IO Unit Control Request. 29 + * Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define. 26 30 * -------------------------------------------------------------------------- 27 31 */ 28 32 ··· 64 60 * Values for the SAS DeviceInfo field used in SAS Device Status Change Event 65 61 * data and SAS IO Unit Configuration pages. 66 62 */ 63 + #define MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC (0xF0000000) 64 + 67 65 #define MPI_SAS_DEVICE_INFO_SEP (0x00004000) 68 66 #define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000) 69 67 #define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000) ··· 222 216 U8 ChainOffset; /* 02h */ 223 217 U8 Function; /* 03h */ 224 218 U16 DevHandle; /* 04h */ 225 - U8 Reserved3; /* 06h */ 219 + U8 IOCParameter; /* 06h */ 226 220 U8 MsgFlags; /* 07h */ 227 221 U32 MsgContext; /* 08h */ 228 222 U8 TargetID; /* 0Ch */ ··· 231 225 U8 PrimFlags; /* 0Fh */ 232 226 U32 Primitive; /* 10h */ 233 227 U64 SASAddress; /* 14h */ 234 - U32 Reserved4; /* 1Ch */ 228 + U32 IOCParameterValue; /* 1Ch */ 235 229 } MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST, 236 230 SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t; 237 231 ··· 247 241 #define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C) 248 242 #define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */ 249 243 #define MPI_SAS_OP_REMOVE_DEVICE (0x0D) 244 + #define MPI_SAS_OP_SET_IOC_PARAMETER (0x0E) 245 + #define MPI_SAS_OP_PRODUCT_SPECIFIC_MIN (0x80) 250 246 251 247 /* values for the PrimFlags field */ 252 248 #define MPI_SAS_PRIMFLAGS_SINGLE (0x08) ··· 264 256 U8 MsgLength; /* 02h */ 265 257 U8 Function; /* 03h */ 266 258 U16 DevHandle; /* 04h */ 267 - U8 Reserved3; /* 06h */ 259 + U8 IOCParameter; /* 06h */ 268 260 U8 MsgFlags; /* 07h */ 269 261 U32 MsgContext; /* 08h */ 270 262 U16 Reserved4; /* 0Ch */
+1 -1
drivers/message/fusion/lsi/mpi_targ.h
··· 1 1 /* 2 - * Copyright (c) 2000-2004 LSI Corporation. 2 + * Copyright (c) 2000-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_targ.h
+1 -1
drivers/message/fusion/lsi/mpi_tool.h
··· 1 1 /* 2 - * Copyright (c) 2001-2005 LSI Corporation. 2 + * Copyright (c) 2001-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_tool.h
+2 -2
drivers/message/fusion/lsi/mpi_type.h
··· 1 1 /* 2 - * Copyright (c) 2000-2004 LSI Corporation. 2 + * Copyright (c) 2000-2008 LSI Corporation. 3 3 * 4 4 * 5 5 * Name: mpi_type.h 6 6 * Title: MPI Basic type definitions 7 7 * Creation Date: June 6, 2000 8 8 * 9 - * mpi_type.h Version: 01.05.01 9 + * mpi_type.h Version: 01.05.02 10 10 * 11 11 * Version History 12 12 * ---------------
+74 -13
drivers/message/fusion/mptbase.c
··· 79 79 /* 80 80 * cmd line parameters 81 81 */ 82 - static int mpt_msi_enable = -1; 83 - module_param(mpt_msi_enable, int, 0); 84 - MODULE_PARM_DESC(mpt_msi_enable, " MSI Support Enable (default=0)"); 82 + 83 + static int mpt_msi_enable_spi; 84 + module_param(mpt_msi_enable_spi, int, 0); 85 + MODULE_PARM_DESC(mpt_msi_enable_spi, " Enable MSI Support for SPI \ 86 + controllers (default=0)"); 87 + 88 + static int mpt_msi_enable_fc; 89 + module_param(mpt_msi_enable_fc, int, 0); 90 + MODULE_PARM_DESC(mpt_msi_enable_fc, " Enable MSI Support for FC \ 91 + controllers (default=0)"); 92 + 93 + static int mpt_msi_enable_sas; 94 + module_param(mpt_msi_enable_sas, int, 1); 95 + MODULE_PARM_DESC(mpt_msi_enable_sas, " Enable MSI Support for SAS \ 96 + controllers (default=1)"); 97 + 85 98 86 99 static int mpt_channel_mapping; 87 100 module_param(mpt_channel_mapping, int, 0); ··· 104 91 static int mpt_set_debug_level(const char *val, struct kernel_param *kp); 105 92 module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int, 106 93 &mpt_debug_level, 0600); 107 - MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h - (default=0)"); 94 + MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h \ 95 + - (default=0)"); 96 + 97 + int mpt_fwfault_debug; 98 + EXPORT_SYMBOL(mpt_fwfault_debug); 99 + module_param_call(mpt_fwfault_debug, param_set_int, param_get_int, 100 + &mpt_fwfault_debug, 0600); 101 + MODULE_PARM_DESC(mpt_fwfault_debug, "Enable detection of Firmware fault" 102 + " and halt Firmware on fault - (default=0)"); 103 + 104 + 108 105 109 106 #ifdef MFCNT 110 107 static int mfcounter = 0; ··· 1774 1751 ioc->bus_type = SAS; 1775 1752 } 1776 1753 1777 - if (mpt_msi_enable == -1) { 1778 - /* Enable on SAS, disable on FC and SPI */ 1779 - if (ioc->bus_type == SAS) 1780 - ioc->msi_enable = 1; 1781 - else 1782 - ioc->msi_enable = 0; 1783 - } else 1784 - /* follow flag: 0 - disable; 1 - enable */ 1785 - ioc->msi_enable = mpt_msi_enable; 1786 1754 1755 + switch (ioc->bus_type) { 1756 + 1757 + case SAS: 1758 + ioc->msi_enable = mpt_msi_enable_sas; 1759 + break; 1760 + 1761 + case SPI: 1762 + ioc->msi_enable = mpt_msi_enable_spi; 1763 + break; 1764 + 1765 + case FC: 1766 + ioc->msi_enable = mpt_msi_enable_fc; 1767 + break; 1768 + 1769 + default: 1770 + ioc->msi_enable = 0; 1771 + break; 1772 + } 1787 1773 if (ioc->errata_flag_1064) 1788 1774 pci_disable_io_access(pdev); 1789 1775 ··· 6345 6313 *size = y; 6346 6314 } 6347 6315 6316 + 6317 + /** 6318 + * mpt_halt_firmware - Halts the firmware if it is operational and panic 6319 + * the kernel 6320 + * @ioc: Pointer to MPT_ADAPTER structure 6321 + * 6322 + **/ 6323 + void 6324 + mpt_halt_firmware(MPT_ADAPTER *ioc) 6325 + { 6326 + u32 ioc_raw_state; 6327 + 6328 + ioc_raw_state = mpt_GetIocState(ioc, 0); 6329 + 6330 + if ((ioc_raw_state & MPI_IOC_STATE_MASK) == MPI_IOC_STATE_FAULT) { 6331 + printk(MYIOC_s_ERR_FMT "IOC is in FAULT state (%04xh)!!!\n", 6332 + ioc->name, ioc_raw_state & MPI_DOORBELL_DATA_MASK); 6333 + panic("%s: IOC Fault (%04xh)!!!\n", ioc->name, 6334 + ioc_raw_state & MPI_DOORBELL_DATA_MASK); 6335 + } else { 6336 + CHIPREG_WRITE32(&ioc->chip->Doorbell, 0xC0FFEE00); 6337 + panic("%s: Firmware is halted due to command timeout\n", 6338 + ioc->name); 6339 + } 6340 + } 6341 + EXPORT_SYMBOL(mpt_halt_firmware); 6342 + 6348 6343 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 6349 6344 /* 6350 6345 * Reset Handling ··· 6404 6345 printk(MYIOC_s_INFO_FMT "HardResetHandler Entered!\n", ioc->name); 6405 6346 printk("MF count 0x%x !\n", ioc->mfcnt); 6406 6347 #endif 6348 + if (mpt_fwfault_debug) 6349 + mpt_halt_firmware(ioc); 6407 6350 6408 6351 /* Reset the adapter. Prevent more than 1 call to 6409 6352 * mpt_do_ioc_recovery at any instant in time.
+3
drivers/message/fusion/mptbase.h
··· 922 922 extern int mpt_findImVolumes(MPT_ADAPTER *ioc); 923 923 extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); 924 924 extern int mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk); 925 + extern void mpt_halt_firmware(MPT_ADAPTER *ioc); 926 + 925 927 926 928 /* 927 929 * Public data decl's... 928 930 */ 929 931 extern struct list_head ioc_list; 932 + extern int mpt_fwfault_debug; 930 933 931 934 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 932 935 #endif /* } __KERNEL__ */
+3
drivers/message/fusion/mptscsih.c
··· 1846 1846 if (hd->timeouts < -1) 1847 1847 hd->timeouts++; 1848 1848 1849 + if (mpt_fwfault_debug) 1850 + mpt_halt_firmware(ioc); 1851 + 1849 1852 /* Most important! Set TaskMsgContext to SCpnt's MsgContext! 1850 1853 * (the IO to be ABORT'd) 1851 1854 *
+1 -2
drivers/scsi/libiscsi_tcp.c
··· 177 177 struct iscsi_segment *segment, int recv, 178 178 unsigned copied) 179 179 { 180 - static unsigned char padbuf[ISCSI_PAD_LEN]; 181 180 struct scatterlist sg; 182 181 unsigned int pad; 183 182 ··· 232 233 debug_tcp("consume %d pad bytes\n", pad); 233 234 segment->total_size += pad; 234 235 segment->size = pad; 235 - segment->data = padbuf; 236 + segment->data = segment->padbuf; 236 237 return 0; 237 238 } 238 239 }
+38 -24
drivers/scsi/qla2xxx/qla_init.c
··· 1258 1258 { 1259 1259 int rval; 1260 1260 unsigned long flags = 0; 1261 - int cnt; 1261 + int cnt, que; 1262 1262 struct qla_hw_data *ha = vha->hw; 1263 - struct req_que *req = ha->req_q_map[0]; 1264 - struct rsp_que *rsp = ha->rsp_q_map[0]; 1263 + struct req_que *req; 1264 + struct rsp_que *rsp; 1265 + struct scsi_qla_host *vp; 1265 1266 struct mid_init_cb_24xx *mid_init_cb = 1266 1267 (struct mid_init_cb_24xx *) ha->init_cb; 1267 1268 1268 1269 spin_lock_irqsave(&ha->hardware_lock, flags); 1269 1270 1270 1271 /* Clear outstanding commands array. */ 1271 - for (cnt = 0; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) 1272 - req->outstanding_cmds[cnt] = NULL; 1272 + for (que = 0; que < ha->max_queues; que++) { 1273 + req = ha->req_q_map[que]; 1274 + if (!req) 1275 + continue; 1276 + for (cnt = 0; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) 1277 + req->outstanding_cmds[cnt] = NULL; 1273 1278 1274 - req->current_outstanding_cmd = 0; 1279 + req->current_outstanding_cmd = 0; 1280 + 1281 + /* Initialize firmware. */ 1282 + req->ring_ptr = req->ring; 1283 + req->ring_index = 0; 1284 + req->cnt = req->length; 1285 + } 1286 + 1287 + for (que = 0; que < ha->max_queues; que++) { 1288 + rsp = ha->rsp_q_map[que]; 1289 + if (!rsp) 1290 + continue; 1291 + rsp->ring_ptr = rsp->ring; 1292 + rsp->ring_index = 0; 1293 + 1294 + /* Initialize response queue entries */ 1295 + qla2x00_init_response_q_entries(rsp); 1296 + } 1275 1297 1276 1298 /* Clear RSCN queue. */ 1277 - vha->rscn_in_ptr = 0; 1278 - vha->rscn_out_ptr = 0; 1279 - 1280 - /* Initialize firmware. */ 1281 - req->ring_ptr = req->ring; 1282 - req->ring_index = 0; 1283 - req->cnt = req->length; 1284 - rsp->ring_ptr = rsp->ring; 1285 - rsp->ring_index = 0; 1286 - 1287 - /* Initialize response queue entries */ 1288 - qla2x00_init_response_q_entries(rsp); 1289 - 1299 + list_for_each_entry(vp, &ha->vp_list, list) { 1300 + vp->rscn_in_ptr = 0; 1301 + vp->rscn_out_ptr = 0; 1302 + } 1290 1303 ha->isp_ops->config_rings(vha); 1291 1304 1292 1305 spin_unlock_irqrestore(&ha->hardware_lock, flags); ··· 3225 3212 int rval = QLA_SUCCESS; 3226 3213 uint32_t wait_time; 3227 3214 struct qla_hw_data *ha = vha->hw; 3228 - struct req_que *req = ha->req_q_map[0]; 3229 - struct rsp_que *rsp = ha->rsp_q_map[0]; 3215 + struct req_que *req = ha->req_q_map[vha->req_ques[0]]; 3216 + struct rsp_que *rsp = req->rsp; 3230 3217 3231 3218 atomic_set(&vha->loop_state, LOOP_UPDATE); 3232 3219 clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags); ··· 3505 3492 } 3506 3493 req = ha->req_q_map[i]; 3507 3494 if (req) { 3495 + /* Clear outstanding commands array. */ 3508 3496 req->options &= ~BIT_0; 3509 3497 ret = qla25xx_init_req_que(base_vha, req, req->options); 3510 3498 if (ret != QLA_SUCCESS) ··· 3514 3500 req->id)); 3515 3501 else 3516 3502 DEBUG2_17(printk(KERN_WARNING 3517 - "%s Rsp que:%d inited\n", __func__, 3503 + "%s Req que:%d inited\n", __func__, 3518 3504 req->id)); 3519 3505 } 3520 3506 } ··· 4165 4151 uint16_t mb[MAILBOX_REGISTER_COUNT]; 4166 4152 struct qla_hw_data *ha = vha->hw; 4167 4153 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); 4168 - struct req_que *req = ha->req_q_map[0]; 4169 - struct rsp_que *rsp = ha->rsp_q_map[0]; 4154 + struct req_que *req = ha->req_q_map[vha->req_ques[0]]; 4155 + struct rsp_que *rsp = req->rsp; 4170 4156 4171 4157 if (!vha->vp_idx) 4172 4158 return -EINVAL;
+1
drivers/scsi/qla2xxx/qla_mid.c
··· 629 629 req->ring_index = 0; 630 630 req->cnt = req->length; 631 631 req->id = que_id; 632 + req->max_q_depth = ha->req_q_map[0]->max_q_depth; 632 633 mutex_unlock(&ha->vport_lock); 633 634 634 635 ret = qla25xx_init_req_que(base_vha, req, options);
+3 -4
drivers/scsi/qla2xxx/qla_os.c
··· 1158 1158 struct req_que *req; 1159 1159 1160 1160 spin_lock_irqsave(&ha->hardware_lock, flags); 1161 - for (que = 0; que < QLA_MAX_HOST_QUES; que++) { 1162 - req = ha->req_q_map[vha->req_ques[que]]; 1161 + for (que = 0; que < ha->max_queues; que++) { 1162 + req = ha->req_q_map[que]; 1163 1163 if (!req) 1164 1164 continue; 1165 1165 for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) { ··· 1193 1193 scsi_qla_host_t *vha = shost_priv(sdev->host); 1194 1194 struct qla_hw_data *ha = vha->hw; 1195 1195 struct fc_rport *rport = starget_to_rport(sdev->sdev_target); 1196 - struct req_que *req = ha->req_q_map[0]; 1196 + struct req_que *req = ha->req_q_map[vha->req_ques[0]]; 1197 1197 1198 1198 if (sdev->tagged_supported) 1199 1199 scsi_activate_tcq(sdev, req->max_q_depth); ··· 1998 1998 return 0; 1999 1999 2000 2000 probe_failed: 2001 - qla2x00_free_que(ha, req, rsp); 2002 2001 qla2x00_free_device(base_vha); 2003 2002 2004 2003 scsi_host_put(base_vha->host);
+4 -1
drivers/scsi/scsi.c
··· 1095 1095 * Description: Looks up the scsi_device with the specified @lun for a given 1096 1096 * @starget. The returned scsi_device does not have an additional 1097 1097 * reference. You must hold the host's host_lock over this call and 1098 - * any access to the returned scsi_device. 1098 + * any access to the returned scsi_device. A scsi_device in state 1099 + * SDEV_DEL is skipped. 1099 1100 * 1100 1101 * Note: The only reason why drivers should use this is because 1101 1102 * they need to access the device list in irq context. Otherwise you ··· 1108 1107 struct scsi_device *sdev; 1109 1108 1110 1109 list_for_each_entry(sdev, &starget->devices, same_target_siblings) { 1110 + if (sdev->sdev_state == SDEV_DEL) 1111 + continue; 1111 1112 if (sdev->lun ==lun) 1112 1113 return sdev; 1113 1114 }
+1
drivers/scsi/scsi_devinfo.c
··· 224 224 {"SGI", "TP9100", "*", BLIST_REPORTLUN2}, 225 225 {"SGI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH}, 226 226 {"IBM", "Universal Xport", "*", BLIST_NO_ULD_ATTACH}, 227 + {"SUN", "Universal Xport", "*", BLIST_NO_ULD_ATTACH}, 227 228 {"SMSC", "USB 2 HS-CF", NULL, BLIST_SPARSELUN | BLIST_INQUIRY_36}, 228 229 {"SONY", "CD-ROM CDU-8001", NULL, BLIST_BORKEN}, 229 230 {"SONY", "TSL", NULL, BLIST_FORCELUN}, /* DDS3 & DDS4 autoloaders */
+1
include/scsi/libiscsi_tcp.h
··· 39 39 unsigned int total_copied; 40 40 41 41 struct hash_desc *hash; 42 + unsigned char padbuf[ISCSI_PAD_LEN]; 42 43 unsigned char recv_digest[ISCSI_DIGEST_SIZE]; 43 44 unsigned char digest[ISCSI_DIGEST_SIZE]; 44 45 unsigned int digest_len;