summaryrefslogtreecommitdiffstats
path: root/include/scsi/srp.h
diff options
context:
space:
mode:
authorBart Van Assche <bart.vanassche@sandisk.com>2015-05-18 07:27:14 -0400
committerDoug Ledford <dledford@redhat.com>2015-05-18 13:35:56 -0400
commit985aa49556a576416d3f960f8fc1c6513863e33e (patch)
treea634502c13bc4ce98c7e6f78774ebf2d5c5b624a /include/scsi/srp.h
parentbbac5ccff43cdcb5fc9346669ec67ea47fca3de0 (diff)
IB/srp: Add 64-bit LUN support
The SCSI standard defines 64-bit values for LUNs. Large arrays employing large or hierarchical LUN numbers become more and more common. So update the SRP initiator to use 64-bit LUN numbers. See also Hannes Reinecke, commit 9cb78c16f5da ("scsi: use 64-bit LUNs"), June 2014. The largest LUN number that has been tested is 0xd2003fff00000000. Checked the following structure sizes with gdb: * sizeof(struct srp_cmd) = 48 * sizeof(struct srp_tsk_mgmt) = 48 * sizeof(struct srp_aer_req) = 36 The ibmvscsi changes have been compile tested only (on a PPC system). Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Reviewed-by: Yann Droneaud <ydroneaud@opteya.com> Cc: Sebastian Parschauer <sebastian.riemer@profitbricks.com> Cc: Brian King <brking@linux.vnet.ibm.com> Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com> Cc: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/scsi/srp.h')
-rw-r--r--include/scsi/srp.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/scsi/srp.h b/include/scsi/srp.h
index 1ae84db4c9fb..5be834de491a 100644
--- a/include/scsi/srp.h
+++ b/include/scsi/srp.h
@@ -42,6 +42,7 @@
42 */ 42 */
43 43
44#include <linux/types.h> 44#include <linux/types.h>
45#include <scsi/scsi.h>
45 46
46enum { 47enum {
47 SRP_LOGIN_REQ = 0x00, 48 SRP_LOGIN_REQ = 0x00,
@@ -179,7 +180,7 @@ struct srp_tsk_mgmt {
179 u8 reserved1[6]; 180 u8 reserved1[6];
180 u64 tag; 181 u64 tag;
181 u8 reserved2[4]; 182 u8 reserved2[4];
182 __be64 lun __attribute__((packed)); 183 struct scsi_lun lun;
183 u8 reserved3[2]; 184 u8 reserved3[2];
184 u8 tsk_mgmt_func; 185 u8 tsk_mgmt_func;
185 u8 reserved4; 186 u8 reserved4;
@@ -200,7 +201,7 @@ struct srp_cmd {
200 u8 data_in_desc_cnt; 201 u8 data_in_desc_cnt;
201 u64 tag; 202 u64 tag;
202 u8 reserved2[4]; 203 u8 reserved2[4];
203 __be64 lun __attribute__((packed)); 204 struct scsi_lun lun;
204 u8 reserved3; 205 u8 reserved3;
205 u8 task_attr; 206 u8 task_attr;
206 u8 reserved4; 207 u8 reserved4;
@@ -265,7 +266,7 @@ struct srp_aer_req {
265 __be32 req_lim_delta; 266 __be32 req_lim_delta;
266 u64 tag; 267 u64 tag;
267 u32 reserved2; 268 u32 reserved2;
268 __be64 lun; 269 struct scsi_lun lun;
269 __be32 sense_data_len; 270 __be32 sense_data_len;
270 u32 reserved3; 271 u32 reserved3;
271 u8 sense_data[0]; 272 u8 sense_data[0];