diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-22 15:55:29 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-22 15:55:29 -0400 |
| commit | 424a6f6ef990b7e9f56f6627bfc6c46b493faeb4 (patch) | |
| tree | 0028356ed8003495fbbe1f716f359e3c8ebc35b6 /include/linux | |
| parent | 1ab142d499294b844ecc81e8004db4ce029b0b61 (diff) | |
| parent | cd8df932d894f3128c884e3ae1b2b484540513db (diff) | |
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
SCSI updates from James Bottomley:
"The update includes the usual assortment of driver updates (lpfc,
qla2xxx, qla4xxx, bfa, bnx2fc, bnx2i, isci, fcoe, hpsa) plus a huge
amount of infrastructure work in the SAS library and transport class
as well as an iSCSI update. There's also a new SCSI based virtio
driver."
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (177 commits)
[SCSI] qla4xxx: Update driver version to 5.02.00-k15
[SCSI] qla4xxx: trivial cleanup
[SCSI] qla4xxx: Fix sparse warning
[SCSI] qla4xxx: Add support for multiple session per host.
[SCSI] qla4xxx: Export CHAP index as sysfs attribute
[SCSI] scsi_transport: Export CHAP index as sysfs attribute
[SCSI] qla4xxx: Add support to display CHAP list and delete CHAP entry
[SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry
[SCSI] pm8001: fix endian issue with code optimization.
[SCSI] pm8001: Fix possible racing condition.
[SCSI] pm8001: Fix bogus interrupt state flag issue.
[SCSI] ipr: update PCI ID definitions for new adapters
[SCSI] qla2xxx: handle default case in qla2x00_request_firmware()
[SCSI] isci: improvements in driver unloading routine
[SCSI] isci: improve phy event warnings
[SCSI] isci: debug, provide state-enum-to-string conversions
[SCSI] scsi_transport_sas: 'enable' phys on reset
[SCSI] libsas: don't recover end devices attached to disabled phys
[SCSI] libsas: fixup target_port_protocols for expanders that don't report sata
[SCSI] libsas: set attached device type and target protocols for local phys
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/libata.h | 2 | ||||
| -rw-r--r-- | include/linux/virtio_ids.h | 1 | ||||
| -rw-r--r-- | include/linux/virtio_scsi.h | 114 |
3 files changed, 117 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index cafc09a64fe4..42378d637ffb 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -996,6 +996,7 @@ extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, | |||
| 996 | extern void ata_sas_port_destroy(struct ata_port *); | 996 | extern void ata_sas_port_destroy(struct ata_port *); |
| 997 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, | 997 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, |
| 998 | struct ata_port_info *, struct Scsi_Host *); | 998 | struct ata_port_info *, struct Scsi_Host *); |
| 999 | extern int ata_sas_async_port_init(struct ata_port *); | ||
| 999 | extern int ata_sas_port_init(struct ata_port *); | 1000 | extern int ata_sas_port_init(struct ata_port *); |
| 1000 | extern int ata_sas_port_start(struct ata_port *ap); | 1001 | extern int ata_sas_port_start(struct ata_port *ap); |
| 1001 | extern void ata_sas_port_stop(struct ata_port *ap); | 1002 | extern void ata_sas_port_stop(struct ata_port *ap); |
| @@ -1147,6 +1148,7 @@ static inline int ata_acpi_cbl_80wire(struct ata_port *ap, | |||
| 1147 | * EH - drivers/ata/libata-eh.c | 1148 | * EH - drivers/ata/libata-eh.c |
| 1148 | */ | 1149 | */ |
| 1149 | extern void ata_port_schedule_eh(struct ata_port *ap); | 1150 | extern void ata_port_schedule_eh(struct ata_port *ap); |
| 1151 | extern void ata_port_wait_eh(struct ata_port *ap); | ||
| 1150 | extern int ata_link_abort(struct ata_link *link); | 1152 | extern int ata_link_abort(struct ata_link *link); |
| 1151 | extern int ata_port_abort(struct ata_port *ap); | 1153 | extern int ata_port_abort(struct ata_port *ap); |
| 1152 | extern int ata_port_freeze(struct ata_port *ap); | 1154 | extern int ata_port_freeze(struct ata_port *ap); |
diff --git a/include/linux/virtio_ids.h b/include/linux/virtio_ids.h index 85bb0bb66ffc..c5d8455c68c0 100644 --- a/include/linux/virtio_ids.h +++ b/include/linux/virtio_ids.h | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #define VIRTIO_ID_CONSOLE 3 /* virtio console */ | 34 | #define VIRTIO_ID_CONSOLE 3 /* virtio console */ |
| 35 | #define VIRTIO_ID_RNG 4 /* virtio ring */ | 35 | #define VIRTIO_ID_RNG 4 /* virtio ring */ |
| 36 | #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ | 36 | #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ |
| 37 | #define VIRTIO_ID_SCSI 8 /* virtio scsi */ | ||
| 37 | #define VIRTIO_ID_9P 9 /* 9p virtio console */ | 38 | #define VIRTIO_ID_9P 9 /* 9p virtio console */ |
| 38 | 39 | ||
| 39 | #endif /* _LINUX_VIRTIO_IDS_H */ | 40 | #endif /* _LINUX_VIRTIO_IDS_H */ |
diff --git a/include/linux/virtio_scsi.h b/include/linux/virtio_scsi.h new file mode 100644 index 000000000000..8ddeafdc0546 --- /dev/null +++ b/include/linux/virtio_scsi.h | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_SCSI_H | ||
| 2 | #define _LINUX_VIRTIO_SCSI_H | ||
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | ||
| 4 | * compatible drivers/servers. */ | ||
| 5 | |||
| 6 | #define VIRTIO_SCSI_CDB_SIZE 32 | ||
| 7 | #define VIRTIO_SCSI_SENSE_SIZE 96 | ||
| 8 | |||
| 9 | /* SCSI command request, followed by data-out */ | ||
| 10 | struct virtio_scsi_cmd_req { | ||
| 11 | u8 lun[8]; /* Logical Unit Number */ | ||
| 12 | u64 tag; /* Command identifier */ | ||
| 13 | u8 task_attr; /* Task attribute */ | ||
| 14 | u8 prio; | ||
| 15 | u8 crn; | ||
| 16 | u8 cdb[VIRTIO_SCSI_CDB_SIZE]; | ||
| 17 | } __packed; | ||
| 18 | |||
| 19 | /* Response, followed by sense data and data-in */ | ||
| 20 | struct virtio_scsi_cmd_resp { | ||
| 21 | u32 sense_len; /* Sense data length */ | ||
| 22 | u32 resid; /* Residual bytes in data buffer */ | ||
| 23 | u16 status_qualifier; /* Status qualifier */ | ||
| 24 | u8 status; /* Command completion status */ | ||
| 25 | u8 response; /* Response values */ | ||
| 26 | u8 sense[VIRTIO_SCSI_SENSE_SIZE]; | ||
| 27 | } __packed; | ||
| 28 | |||
| 29 | /* Task Management Request */ | ||
| 30 | struct virtio_scsi_ctrl_tmf_req { | ||
| 31 | u32 type; | ||
| 32 | u32 subtype; | ||
| 33 | u8 lun[8]; | ||
| 34 | u64 tag; | ||
| 35 | } __packed; | ||
| 36 | |||
| 37 | struct virtio_scsi_ctrl_tmf_resp { | ||
| 38 | u8 response; | ||
| 39 | } __packed; | ||
| 40 | |||
| 41 | /* Asynchronous notification query/subscription */ | ||
| 42 | struct virtio_scsi_ctrl_an_req { | ||
| 43 | u32 type; | ||
| 44 | u8 lun[8]; | ||
| 45 | u32 event_requested; | ||
| 46 | } __packed; | ||
| 47 | |||
| 48 | struct virtio_scsi_ctrl_an_resp { | ||
| 49 | u32 event_actual; | ||
| 50 | u8 response; | ||
| 51 | } __packed; | ||
| 52 | |||
| 53 | struct virtio_scsi_event { | ||
| 54 | u32 event; | ||
| 55 | u8 lun[8]; | ||
| 56 | u32 reason; | ||
| 57 | } __packed; | ||
| 58 | |||
| 59 | struct virtio_scsi_config { | ||
| 60 | u32 num_queues; | ||
| 61 | u32 seg_max; | ||
| 62 | u32 max_sectors; | ||
| 63 | u32 cmd_per_lun; | ||
| 64 | u32 event_info_size; | ||
| 65 | u32 sense_size; | ||
| 66 | u32 cdb_size; | ||
| 67 | u16 max_channel; | ||
| 68 | u16 max_target; | ||
| 69 | u32 max_lun; | ||
| 70 | } __packed; | ||
| 71 | |||
| 72 | /* Response codes */ | ||
| 73 | #define VIRTIO_SCSI_S_OK 0 | ||
| 74 | #define VIRTIO_SCSI_S_OVERRUN 1 | ||
| 75 | #define VIRTIO_SCSI_S_ABORTED 2 | ||
| 76 | #define VIRTIO_SCSI_S_BAD_TARGET 3 | ||
| 77 | #define VIRTIO_SCSI_S_RESET 4 | ||
| 78 | #define VIRTIO_SCSI_S_BUSY 5 | ||
| 79 | #define VIRTIO_SCSI_S_TRANSPORT_FAILURE 6 | ||
| 80 | #define VIRTIO_SCSI_S_TARGET_FAILURE 7 | ||
| 81 | #define VIRTIO_SCSI_S_NEXUS_FAILURE 8 | ||
| 82 | #define VIRTIO_SCSI_S_FAILURE 9 | ||
| 83 | #define VIRTIO_SCSI_S_FUNCTION_SUCCEEDED 10 | ||
| 84 | #define VIRTIO_SCSI_S_FUNCTION_REJECTED 11 | ||
| 85 | #define VIRTIO_SCSI_S_INCORRECT_LUN 12 | ||
| 86 | |||
| 87 | /* Controlq type codes. */ | ||
| 88 | #define VIRTIO_SCSI_T_TMF 0 | ||
| 89 | #define VIRTIO_SCSI_T_AN_QUERY 1 | ||
| 90 | #define VIRTIO_SCSI_T_AN_SUBSCRIBE 2 | ||
| 91 | |||
| 92 | /* Valid TMF subtypes. */ | ||
| 93 | #define VIRTIO_SCSI_T_TMF_ABORT_TASK 0 | ||
| 94 | #define VIRTIO_SCSI_T_TMF_ABORT_TASK_SET 1 | ||
| 95 | #define VIRTIO_SCSI_T_TMF_CLEAR_ACA 2 | ||
| 96 | #define VIRTIO_SCSI_T_TMF_CLEAR_TASK_SET 3 | ||
| 97 | #define VIRTIO_SCSI_T_TMF_I_T_NEXUS_RESET 4 | ||
| 98 | #define VIRTIO_SCSI_T_TMF_LOGICAL_UNIT_RESET 5 | ||
| 99 | #define VIRTIO_SCSI_T_TMF_QUERY_TASK 6 | ||
| 100 | #define VIRTIO_SCSI_T_TMF_QUERY_TASK_SET 7 | ||
| 101 | |||
| 102 | /* Events. */ | ||
| 103 | #define VIRTIO_SCSI_T_EVENTS_MISSED 0x80000000 | ||
| 104 | #define VIRTIO_SCSI_T_NO_EVENT 0 | ||
| 105 | #define VIRTIO_SCSI_T_TRANSPORT_RESET 1 | ||
| 106 | #define VIRTIO_SCSI_T_ASYNC_NOTIFY 2 | ||
| 107 | |||
| 108 | #define VIRTIO_SCSI_S_SIMPLE 0 | ||
| 109 | #define VIRTIO_SCSI_S_ORDERED 1 | ||
| 110 | #define VIRTIO_SCSI_S_HEAD 2 | ||
| 111 | #define VIRTIO_SCSI_S_ACA 3 | ||
| 112 | |||
| 113 | |||
| 114 | #endif /* _LINUX_VIRTIO_SCSI_H */ | ||
