diff options
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/libsas.h | 1 | ||||
-rw-r--r-- | include/scsi/scsi.h | 8 | ||||
-rw-r--r-- | include/scsi/scsi_device.h | 2 | ||||
-rw-r--r-- | include/scsi/scsi_host.h | 7 | ||||
-rw-r--r-- | include/scsi/scsi_tcq.h | 6 | ||||
-rw-r--r-- | include/scsi/scsi_transport_fc.h | 3 |
6 files changed, 22 insertions, 5 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index d06e13be717b..3dec1949f69c 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -205,6 +205,7 @@ struct domain_device { | |||
205 | }; | 205 | }; |
206 | 206 | ||
207 | void *lldd_dev; | 207 | void *lldd_dev; |
208 | int gone; | ||
208 | }; | 209 | }; |
209 | 210 | ||
210 | struct sas_discovery_event { | 211 | struct sas_discovery_event { |
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index 8fcb6e0e9e72..216af8538cc9 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h | |||
@@ -32,6 +32,12 @@ struct scsi_cmnd; | |||
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | /* | 34 | /* |
35 | * DIX-capable adapters effectively support infinite chaining for the | ||
36 | * protection information scatterlist | ||
37 | */ | ||
38 | #define SCSI_MAX_PROT_SG_SEGMENTS 0xFFFF | ||
39 | |||
40 | /* | ||
35 | * Special value for scanning to specify scanning or rescanning of all | 41 | * Special value for scanning to specify scanning or rescanning of all |
36 | * possible channels, (target) ids, or luns on a given shost. | 42 | * possible channels, (target) ids, or luns on a given shost. |
37 | */ | 43 | */ |
@@ -67,6 +73,7 @@ struct scsi_cmnd; | |||
67 | #define SEND_DIAGNOSTIC 0x1d | 73 | #define SEND_DIAGNOSTIC 0x1d |
68 | #define ALLOW_MEDIUM_REMOVAL 0x1e | 74 | #define ALLOW_MEDIUM_REMOVAL 0x1e |
69 | 75 | ||
76 | #define READ_FORMAT_CAPACITIES 0x23 | ||
70 | #define SET_WINDOW 0x24 | 77 | #define SET_WINDOW 0x24 |
71 | #define READ_CAPACITY 0x25 | 78 | #define READ_CAPACITY 0x25 |
72 | #define READ_10 0x28 | 79 | #define READ_10 0x28 |
@@ -96,6 +103,7 @@ struct scsi_cmnd; | |||
96 | #define WRITE_SAME 0x41 | 103 | #define WRITE_SAME 0x41 |
97 | #define UNMAP 0x42 | 104 | #define UNMAP 0x42 |
98 | #define READ_TOC 0x43 | 105 | #define READ_TOC 0x43 |
106 | #define READ_HEADER 0x44 | ||
99 | #define LOG_SELECT 0x4c | 107 | #define LOG_SELECT 0x4c |
100 | #define LOG_SENSE 0x4d | 108 | #define LOG_SENSE 0x4d |
101 | #define XDWRITEREAD_10 0x53 | 109 | #define XDWRITEREAD_10 0x53 |
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 50cb34ffef11..85867dcde335 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -148,6 +148,8 @@ struct scsi_device { | |||
148 | unsigned retry_hwerror:1; /* Retry HARDWARE_ERROR */ | 148 | unsigned retry_hwerror:1; /* Retry HARDWARE_ERROR */ |
149 | unsigned last_sector_bug:1; /* do not use multisector accesses on | 149 | unsigned last_sector_bug:1; /* do not use multisector accesses on |
150 | SD_LAST_BUGGY_SECTORS */ | 150 | SD_LAST_BUGGY_SECTORS */ |
151 | unsigned no_read_disc_info:1; /* Avoid READ_DISC_INFO cmds */ | ||
152 | unsigned no_read_capacity_16:1; /* Avoid READ_CAPACITY_16 cmds */ | ||
151 | unsigned is_visible:1; /* is the device visible in sysfs */ | 153 | unsigned is_visible:1; /* is the device visible in sysfs */ |
152 | 154 | ||
153 | DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */ | 155 | DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */ |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index b7bdecb7b76e..d0a6a845f204 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -388,6 +388,7 @@ struct scsi_host_template { | |||
388 | * of scatter-gather. | 388 | * of scatter-gather. |
389 | */ | 389 | */ |
390 | unsigned short sg_tablesize; | 390 | unsigned short sg_tablesize; |
391 | unsigned short sg_prot_tablesize; | ||
391 | 392 | ||
392 | /* | 393 | /* |
393 | * Set this if the host adapter has limitations beside segment count. | 394 | * Set this if the host adapter has limitations beside segment count. |
@@ -599,6 +600,7 @@ struct Scsi_Host { | |||
599 | int can_queue; | 600 | int can_queue; |
600 | short cmd_per_lun; | 601 | short cmd_per_lun; |
601 | short unsigned int sg_tablesize; | 602 | short unsigned int sg_tablesize; |
603 | short unsigned int sg_prot_tablesize; | ||
602 | short unsigned int max_sectors; | 604 | short unsigned int max_sectors; |
603 | unsigned long dma_boundary; | 605 | unsigned long dma_boundary; |
604 | /* | 606 | /* |
@@ -823,6 +825,11 @@ static inline unsigned int scsi_host_get_prot(struct Scsi_Host *shost) | |||
823 | return shost->prot_capabilities; | 825 | return shost->prot_capabilities; |
824 | } | 826 | } |
825 | 827 | ||
828 | static inline int scsi_host_prot_dma(struct Scsi_Host *shost) | ||
829 | { | ||
830 | return shost->prot_capabilities >= SHOST_DIX_TYPE0_PROTECTION; | ||
831 | } | ||
832 | |||
826 | static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type) | 833 | static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type) |
827 | { | 834 | { |
828 | static unsigned char cap[] = { 0, | 835 | static unsigned char cap[] = { 0, |
diff --git a/include/scsi/scsi_tcq.h b/include/scsi/scsi_tcq.h index 17231385cb37..d6e7994aa634 100644 --- a/include/scsi/scsi_tcq.h +++ b/include/scsi/scsi_tcq.h | |||
@@ -97,13 +97,9 @@ static inline void scsi_deactivate_tcq(struct scsi_device *sdev, int depth) | |||
97 | static inline int scsi_populate_tag_msg(struct scsi_cmnd *cmd, char *msg) | 97 | static inline int scsi_populate_tag_msg(struct scsi_cmnd *cmd, char *msg) |
98 | { | 98 | { |
99 | struct request *req = cmd->request; | 99 | struct request *req = cmd->request; |
100 | struct scsi_device *sdev = cmd->device; | ||
101 | 100 | ||
102 | if (blk_rq_tagged(req)) { | 101 | if (blk_rq_tagged(req)) { |
103 | if (sdev->ordered_tags && req->cmd_flags & REQ_HARDBARRIER) | 102 | *msg++ = MSG_SIMPLE_TAG; |
104 | *msg++ = MSG_ORDERED_TAG; | ||
105 | else | ||
106 | *msg++ = MSG_SIMPLE_TAG; | ||
107 | *msg++ = req->tag; | 103 | *msg++ = req->tag; |
108 | return 2; | 104 | return 2; |
109 | } | 105 | } |
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index 87d81b3ce564..59816fe31e68 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
@@ -496,6 +496,7 @@ struct fc_host_attrs { | |||
496 | u64 fabric_name; | 496 | u64 fabric_name; |
497 | char symbolic_name[FC_SYMBOLIC_NAME_SIZE]; | 497 | char symbolic_name[FC_SYMBOLIC_NAME_SIZE]; |
498 | char system_hostname[FC_SYMBOLIC_NAME_SIZE]; | 498 | char system_hostname[FC_SYMBOLIC_NAME_SIZE]; |
499 | u32 dev_loss_tmo; | ||
499 | 500 | ||
500 | /* Private (Transport-managed) Attributes */ | 501 | /* Private (Transport-managed) Attributes */ |
501 | enum fc_tgtid_binding_type tgtid_bind_type; | 502 | enum fc_tgtid_binding_type tgtid_bind_type; |
@@ -580,6 +581,8 @@ struct fc_host_attrs { | |||
580 | (((struct fc_host_attrs *)(x)->shost_data)->devloss_work_q_name) | 581 | (((struct fc_host_attrs *)(x)->shost_data)->devloss_work_q_name) |
581 | #define fc_host_devloss_work_q(x) \ | 582 | #define fc_host_devloss_work_q(x) \ |
582 | (((struct fc_host_attrs *)(x)->shost_data)->devloss_work_q) | 583 | (((struct fc_host_attrs *)(x)->shost_data)->devloss_work_q) |
584 | #define fc_host_dev_loss_tmo(x) \ | ||
585 | (((struct fc_host_attrs *)(x)->shost_data)->dev_loss_tmo) | ||
583 | 586 | ||
584 | 587 | ||
585 | struct fc_bsg_buffer { | 588 | struct fc_bsg_buffer { |