aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/ctl/ctl_tpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cam/ctl/ctl_tpc.c')
-rw-r--r--sys/cam/ctl/ctl_tpc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/cam/ctl/ctl_tpc.c b/sys/cam/ctl/ctl_tpc.c
index 4d41005d2e61..7a973cbbaec1 100644
--- a/sys/cam/ctl/ctl_tpc.c
+++ b/sys/cam/ctl/ctl_tpc.c
@@ -1811,6 +1811,7 @@ tpc_create_token(struct ctl_lun *lun, struct ctl_port *port, off_t len,
{
static int id = 0;
struct scsi_vpd_id_descriptor *idd = NULL;
+ struct scsi_ec_cscd_id *cscd;
int targid_len;
scsi_ulto4b(ROD_TYPE_AUR, token->type);
@@ -1824,8 +1825,12 @@ tpc_create_token(struct ctl_lun *lun, struct ctl_port *port, off_t len,
idd = scsi_get_devid_desc((struct scsi_vpd_id_descriptor *)
lun->lun_devid->data, lun->lun_devid->len,
scsi_devid_is_lun_eui64);
- if (idd != NULL)
- memcpy(&token->body[8], idd, 4 + idd->length);
+ if (idd != NULL) {
+ cscd = (struct scsi_ec_cscd_id *)&token->body[8];
+ cscd->type_code = EC_CSCD_ID;
+ cscd->luidt_pdt = T_DIRECT;
+ memcpy(&cscd->codeset, idd, 4 + idd->length);
+ }
scsi_u64to8b(0, &token->body[40]);
scsi_u64to8b(len, &token->body[48]);
if (port->target_devid) {