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

[SCSI] update additional sense codes and some opcode names

Following on from my post titled: "additional sense codes
need update" see the attachment against lk 2.6.17 .

ChangeLog:
- update additional sense codes table to agree with
SPC-4 revision 5a (14 June 2006)
- adjust some of the opcode names

Signed-off-by: Douglas Gilbert <dougg@torque.net>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by

Douglas Gilbert and committed by
James Bottomley
a507c6a2 c9fefeb2

+88 -38
+88 -38
drivers/scsi/constants.c
··· 5 5 * Additions for SCSI 3+ (SPC-3 T10/1416-D Rev 07 3 May 2002) 6 6 * by D. Gilbert and aeb (20020609) 7 7 * Additions for SPC-3 T10/1416-D Rev 21 22 Sept 2004, D. Gilbert 20041025 8 + * Update to SPC-4 T10/1713-D Rev 5a, 14 June 2006, D. Gilbert 20060702 8 9 */ 9 10 10 11 #include <linux/blkdev.h> ··· 37 36 /* 00-03 */ "Test Unit Ready", "Rezero Unit/Rewind", NULL, "Request Sense", 38 37 /* 04-07 */ "Format Unit/Medium", "Read Block Limits", NULL, 39 38 "Reasssign Blocks", 40 - /* 08-0d */ "Read (6)", NULL, "Write (6)", "Seek (6)", NULL, NULL, 39 + /* 08-0d */ "Read(6)", NULL, "Write(6)", "Seek(6)", NULL, NULL, 41 40 /* 0e-12 */ NULL, "Read Reverse", "Write Filemarks", "Space", "Inquiry", 42 - /* 13-16 */ "Verify (6)", "Recover Buffered Data", "Mode Select (6)", 43 - "Reserve (6)", 44 - /* 17-1a */ "Release (6)", "Copy", "Erase", "Mode Sense (6)", 41 + /* 13-16 */ "Verify(6)", "Recover Buffered Data", "Mode Select(6)", 42 + "Reserve(6)", 43 + /* 17-1a */ "Release(6)", "Copy", "Erase", "Mode Sense(6)", 45 44 /* 1b-1d */ "Start/Stop Unit", "Receive Diagnostic", "Send Diagnostic", 46 45 /* 1e-1f */ "Prevent/Allow Medium Removal", NULL, 47 46 /* 20-22 */ NULL, NULL, NULL, 48 47 /* 23-28 */ "Read Format Capacities", "Set Window", 49 - "Read Capacity (10)", NULL, NULL, "Read (10)", 50 - /* 29-2d */ "Read Generation", "Write (10)", "Seek (10)", "Erase (10)", 51 - "Read updated block", 52 - /* 2e-31 */ "Write Verify (10)", "Verify (10)", "Search High", "Search Equal", 48 + "Read Capacity(10)", NULL, NULL, "Read(10)", 49 + /* 29-2d */ "Read Generation", "Write(10)", "Seek(10)", "Erase(10)", 50 + "Read updated block", 51 + /* 2e-31 */ "Write Verify(10)", "Verify(10)", "Search High", "Search Equal", 53 52 /* 32-34 */ "Search Low", "Set Limits", "Prefetch/Read Position", 54 - /* 35-37 */ "Synchronize Cache (10)", "Lock/Unlock Cache (10)", 53 + /* 35-37 */ "Synchronize Cache(10)", "Lock/Unlock Cache(10)", 55 54 "Read Defect Data(10)", 56 55 /* 38-3c */ "Medium Scan", "Compare", "Copy Verify", "Write Buffer", 57 56 "Read Buffer", 58 - /* 3d-3f */ "Update Block", "Read Long (10)", "Write Long (10)", 59 - /* 40-41 */ "Change Definition", "Write Same (10)", 57 + /* 3d-3f */ "Update Block", "Read Long(10)", "Write Long(10)", 58 + /* 40-41 */ "Change Definition", "Write Same(10)", 60 59 /* 42-48 */ "Read sub-channel", "Read TOC/PMA/ATIP", "Read density support", 61 - "Play audio (10)", "Get configuration", "Play audio msf", 60 + "Play audio(10)", "Get configuration", "Play audio msf", 62 61 "Play audio track/index", 63 - /* 49-4f */ "Play track relative (10)", "Get event status notification", 62 + /* 49-4f */ "Play track relative(10)", "Get event status notification", 64 63 "Pause/resume", "Log Select", "Log Sense", "Stop play/scan", 65 64 NULL, 66 65 /* 50-55 */ "Xdwrite", "Xpwrite, Read disk info", "Xdread, Read track info", 67 - "Reserve track", "Send OPC info", "Mode Select (10)", 68 - /* 56-5b */ "Reserve (10)", "Release (10)", "Repair track", "Read master cue", 69 - "Mode Sense (10)", "Close track/session", 66 + "Reserve track", "Send OPC info", "Mode Select(10)", 67 + /* 56-5b */ "Reserve(10)", "Release(10)", "Repair track", "Read master cue", 68 + "Mode Sense(10)", "Close track/session", 70 69 /* 5c-5f */ "Read buffer capacity", "Send cue sheet", "Persistent reserve in", 71 70 "Persistent reserve out", 72 71 /* 60-67 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 73 72 /* 68-6f */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 74 73 /* 70-77 */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 75 74 /* 78-7f */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, "Variable length", 76 - /* 80-84 */ "Xdwrite (16)", "Rebuild (16)", "Regenerate (16)", "Extended copy", 75 + /* 80-84 */ "Xdwrite(16)", "Rebuild(16)", "Regenerate(16)", "Extended copy", 77 76 "Receive copy results", 78 - /* 85-89 */ "Memory Export In (16)", "Access control in", "Access control out", 79 - "Read (16)", "Memory Export Out (16)", 80 - /* 8a-8f */ "Write (16)", NULL, "Read attributes", "Write attributes", 81 - "Write and verify (16)", "Verify (16)", 82 - /* 90-94 */ "Pre-fetch (16)", "Synchronize cache (16)", 83 - "Lock/unlock cache (16)", "Write same (16)", NULL, 77 + /* 85-89 */ "ATA command pass through(16)", "Access control in", 78 + "Access control out", "Read(16)", "Memory Export Out(16)", 79 + /* 8a-8f */ "Write(16)", NULL, "Read attributes", "Write attributes", 80 + "Write and verify(16)", "Verify(16)", 81 + /* 90-94 */ "Pre-fetch(16)", "Synchronize cache(16)", 82 + "Lock/unlock cache(16)", "Write same(16)", NULL, 84 83 /* 95-99 */ NULL, NULL, NULL, NULL, NULL, 85 - /* 9a-9f */ NULL, NULL, NULL, NULL, "Service action in (16)", 86 - "Service action out (16)", 87 - /* a0-a5 */ "Report luns", "Blank", "Send event", "Maintenance in", 88 - "Maintenance out", "Move medium/play audio(12)", 84 + /* 9a-9f */ NULL, NULL, NULL, NULL, "Service action in(16)", 85 + "Service action out(16)", 86 + /* a0-a5 */ "Report luns", "ATA command pass through(12)/Blank", 87 + "Security protocol in", "Maintenance in", "Maintenance out", 88 + "Move medium/play audio(12)", 89 89 /* a6-a9 */ "Exchange medium", "Move medium attached", "Read(12)", 90 90 "Play track relative(12)", 91 91 /* aa-ae */ "Write(12)", NULL, "Erase(12), Get Performance", ··· 94 92 /* af-b1 */ "Verify(12)", "Search data high(12)", "Search data equal(12)", 95 93 /* b2-b4 */ "Search data low(12)", "Set limits(12)", 96 94 "Read element status attached", 97 - /* b5-b6 */ "Request volume element address", "Send volume tag, set streaming", 95 + /* b5-b6 */ "Security protocol out", "Send volume tag, set streaming", 98 96 /* b7-b9 */ "Read defect data(12)", "Read element status", "Read CD msf", 99 97 /* ba-bc */ "Redundancy group (in), Scan", 100 - "Redundancy group (out), Set cd-rom speed", "Spare in, Play cd", 101 - /* bd-bf */ "Spare out, Mechanism status", "Volume set in, Read cd", 102 - "Volume set out, Send DVD structure", 98 + "Redundancy group (out), Set cd-rom speed", "Spare (in), Play cd", 99 + /* bd-bf */ "Spare (out), Mechanism status", "Volume set (in), Read cd", 100 + "Volume set (out), Send DVD structure", 103 101 }; 104 102 105 103 struct value_name_pair { ··· 114 112 {0xc, "Report supported operation codes"}, 115 113 {0xd, "Report supported task management functions"}, 116 114 {0xe, "Report priority"}, 115 + {0xf, "Report timestamp"}, 117 116 }; 118 117 #define MAINT_IN_SZ ARRAY_SIZE(maint_in_arr) 119 118 ··· 123 120 {0xa, "Set target port groups"}, 124 121 {0xb, "Change aliases"}, 125 122 {0xe, "Set priority"}, 123 + {0xe, "Set timestamp"}, 126 124 }; 127 125 #define MAINT_OUT_SZ ARRAY_SIZE(maint_out_arr) 128 126 ··· 431 427 {0x001A, "Rewind operation in progress"}, 432 428 {0x001B, "Set capacity operation in progress"}, 433 429 {0x001C, "Verify operation in progress"}, 430 + {0x001D, "ATA pass through information available"}, 434 431 435 432 {0x0100, "No index/sector signal"}, 436 433 ··· 443 438 444 439 {0x0400, "Logical unit not ready, cause not reportable"}, 445 440 {0x0401, "Logical unit is in process of becoming ready"}, 446 - {0x0402, "Logical unit not ready, initializing cmd. required"}, 441 + {0x0402, "Logical unit not ready, initializing command required"}, 447 442 {0x0403, "Logical unit not ready, manual intervention required"}, 448 443 {0x0404, "Logical unit not ready, format in progress"}, 449 444 {0x0405, "Logical unit not ready, rebuild in progress"}, ··· 483 478 {0x0B00, "Warning"}, 484 479 {0x0B01, "Warning - specified temperature exceeded"}, 485 480 {0x0B02, "Warning - enclosure degraded"}, 481 + {0x0B03, "Warning - background self-test failed"}, 482 + {0x0B04, "Warning - background pre-scan detected medium error"}, 483 + {0x0B05, "Warning - background medium scan detected medium error"}, 486 484 487 485 {0x0C00, "Write error"}, 488 486 {0x0C01, "Write error - recovered with auto reallocation"}, ··· 501 493 {0x0C0B, "Auxiliary memory write error"}, 502 494 {0x0C0C, "Write error - unexpected unsolicited data"}, 503 495 {0x0C0D, "Write error - not enough unsolicited data"}, 496 + {0x0C0F, "Defects in error window"}, 504 497 505 498 {0x0D00, "Error detected by third party temporary initiator"}, 506 499 {0x0D01, "Third party device failure"}, ··· 513 504 {0x0E00, "Invalid information unit"}, 514 505 {0x0E01, "Information unit too short"}, 515 506 {0x0E02, "Information unit too long"}, 507 + {0x0E03, "Invalid field in command information unit"}, 516 508 517 509 {0x1000, "Id CRC or ECC error"}, 518 - {0x1001, "Data block guard check failed"}, 519 - {0x1002, "Data block application tag check failed"}, 520 - {0x1003, "Data block reference tag check failed"}, 510 + {0x1001, "Logical block guard check failed"}, 511 + {0x1002, "Logical block application tag check failed"}, 512 + {0x1003, "Logical block reference tag check failed"}, 521 513 522 514 {0x1100, "Unrecovered read error"}, 523 515 {0x1101, "Read retries exhausted"}, ··· 540 530 {0x1111, "Read error - loss of streaming"}, 541 531 {0x1112, "Auxiliary memory read error"}, 542 532 {0x1113, "Read error - failed retransmission request"}, 533 + {0x1114, "Read error - lba marked bad by application client"}, 543 534 544 535 {0x1200, "Address mark not found for id field"}, 545 536 ··· 621 610 {0x2100, "Logical block address out of range"}, 622 611 {0x2101, "Invalid element address"}, 623 612 {0x2102, "Invalid address for write"}, 613 + {0x2103, "Invalid write crossing layer jump"}, 624 614 625 615 {0x2200, "Illegal function (use 20 00, 24 00, or 26 00)"}, 626 616 627 617 {0x2400, "Invalid field in cdb"}, 628 618 {0x2401, "CDB decryption error"}, 619 + {0x2402, "Obsolete"}, 620 + {0x2403, "Obsolete"}, 629 621 {0x2404, "Security audit value frozen"}, 630 622 {0x2405, "Security working key frozen"}, 631 623 {0x2406, "Nonce not unique"}, ··· 651 637 {0x260C, "Invalid operation for copy source or destination"}, 652 638 {0x260D, "Copy segment granularity violation"}, 653 639 {0x260E, "Invalid parameter while port is enabled"}, 654 - {0x260F, "Invalid data-out buffer integrity"}, 640 + {0x260F, "Invalid data-out buffer integrity check value"}, 641 + {0x2610, "Data decryption key fail limit reached"}, 642 + {0x2611, "Incomplete key-associated data set"}, 643 + {0x2612, "Vendor specific key reference not found"}, 655 644 656 645 {0x2700, "Write protected"}, 657 646 {0x2701, "Hardware write protected"}, ··· 666 649 667 650 {0x2800, "Not ready to ready change, medium may have changed"}, 668 651 {0x2801, "Import or export element accessed"}, 652 + {0x2802, "Format-layer may have changed"}, 669 653 670 654 {0x2900, "Power on, reset, or bus device reset occurred"}, 671 655 {0x2901, "Power on occurred"}, ··· 687 669 {0x2A07, "Implicit asymmetric access state transition failed"}, 688 670 {0x2A08, "Priority changed"}, 689 671 {0x2A09, "Capacity data has changed"}, 672 + {0x2A10, "Timestamp changed"}, 673 + {0x2A11, "Data encryption parameters changed by another i_t nexus"}, 674 + {0x2A12, "Data encryption parameters changed by vendor specific " 675 + "event"}, 676 + {0x2A13, "Data encryption key instance counter has changed"}, 690 677 691 678 {0x2B00, "Copy cannot execute since host cannot disconnect"}, 692 679 ··· 713 690 {0x2E00, "Insufficient time for operation"}, 714 691 715 692 {0x2F00, "Commands cleared by another initiator"}, 693 + {0x2F01, "Commands cleared by power loss notification"}, 716 694 717 695 {0x3000, "Incompatible medium installed"}, 718 696 {0x3001, "Cannot read medium - unknown format"}, ··· 726 702 {0x3008, "Cannot write - application code mismatch"}, 727 703 {0x3009, "Current session not fixated for append"}, 728 704 {0x300A, "Cleaning request rejected"}, 729 - {0x300C, "WORM medium, overwrite attempted"}, 705 + {0x300C, "WORM medium - overwrite attempted"}, 706 + {0x300D, "WORM medium - integrity check"}, 730 707 {0x3010, "Medium not formatted"}, 731 708 732 709 {0x3100, "Medium format corrupted"}, ··· 815 790 {0x3F0F, "Echo buffer overwritten"}, 816 791 {0x3F10, "Medium loadable"}, 817 792 {0x3F11, "Medium auxiliary memory accessible"}, 793 + {0x3F12, "iSCSI IP address added"}, 794 + {0x3F13, "iSCSI IP address removed"}, 795 + {0x3F14, "iSCSI IP address changed"}, 818 796 /* 819 797 * {0x40NN, "Ram failure"}, 820 798 * {0x40NN, "Diagnostic failure on component nn"}, ··· 827 799 {0x4300, "Message error"}, 828 800 829 801 {0x4400, "Internal target failure"}, 802 + {0x4471, "ATA device failed set features"}, 830 803 831 804 {0x4500, "Select or reselect failure"}, 832 805 ··· 836 807 {0x4700, "Scsi parity error"}, 837 808 {0x4701, "Data phase CRC error detected"}, 838 809 {0x4702, "Scsi parity error detected during st data phase"}, 839 - {0x4703, "Information unit CRC error detected"}, 810 + {0x4703, "Information unit iuCRC error detected"}, 840 811 {0x4704, "Asynchronous information protection error detected"}, 841 812 {0x4705, "Protocol service CRC error"}, 813 + {0x4706, "Phy test function in progress"}, 842 814 {0x477f, "Some commands cleared by iSCSI Protocol event"}, 843 815 844 816 {0x4800, "Initiator detected error message received"}, ··· 874 844 {0x5300, "Media load or eject failed"}, 875 845 {0x5301, "Unload tape failure"}, 876 846 {0x5302, "Medium removal prevented"}, 847 + {0x5303, "Medium removal prevented by data transfer element"}, 848 + {0x5304, "Medium thread or unthread failure"}, 877 849 878 850 {0x5400, "Scsi to host system interface failure"}, 879 851 ··· 887 855 {0x5505, "Insufficient access control resources"}, 888 856 {0x5506, "Auxiliary memory out of space"}, 889 857 {0x5507, "Quota error"}, 858 + {0x5508, "Maximum number of supplemental decryption keys exceeded"}, 890 859 891 860 {0x5700, "Unable to recover table-of-contents"}, 892 861 ··· 1037 1004 {0x6708, "Assign failure occurred"}, 1038 1005 {0x6709, "Multiply assigned logical unit"}, 1039 1006 {0x670A, "Set target port groups command failed"}, 1007 + {0x670B, "ATA device feature not enabled"}, 1040 1008 1041 1009 {0x6800, "Logical unit not configured"}, 1042 1010 ··· 1064 1030 {0x6F03, "Read of scrambled sector without authentication"}, 1065 1031 {0x6F04, "Media region code is mismatched to logical unit region"}, 1066 1032 {0x6F05, "Drive region must be permanent/region reset count error"}, 1033 + {0x6F06, "Insufficient block count for binding nonce recording"}, 1034 + {0x6F07, "Conflict in binding nonce recording"}, 1067 1035 /* 1068 1036 * {0x70NN, "Decompression exception short algorithm id of nn"}, 1069 1037 */ ··· 1077 1041 {0x7203, "Session fixation error - incomplete track in session"}, 1078 1042 {0x7204, "Empty or partially written reserved track"}, 1079 1043 {0x7205, "No more track reservations allowed"}, 1044 + {0x7206, "RMZ extension is not allowed"}, 1045 + {0x7207, "No more test zone extensions are allowed"}, 1080 1046 1081 1047 {0x7300, "Cd control error"}, 1082 1048 {0x7301, "Power calibration area almost full"}, ··· 1087 1049 {0x7304, "Program memory area update failure"}, 1088 1050 {0x7305, "Program memory area is full"}, 1089 1051 {0x7306, "RMA/PMA is almost full"}, 1052 + {0x7310, "Current power calibration area almost full"}, 1053 + {0x7311, "Current power calibration area is full"}, 1054 + {0x7317, "RDZ is full"}, 1055 + 1056 + {0x7400, "Security error"}, 1057 + {0x7401, "Unable to decrypt data"}, 1058 + {0x7402, "Unencrypted data encountered while decrypting"}, 1059 + {0x7403, "Incorrect data encryption key"}, 1060 + {0x7404, "Cryptographic integrity validation failed"}, 1061 + {0x7405, "Error decrypting data"}, 1062 + {0x7471, "Logical unit access not authorized"}, 1063 + 1090 1064 {0, NULL} 1091 1065 }; 1092 1066