summaryrefslogtreecommitdiffstats
path: root/sys/dev/softraid.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/softraid.c')
-rw-r--r--sys/dev/softraid.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c
index 78e06f86c3c..b204464b25c 100644
--- a/sys/dev/softraid.c
+++ b/sys/dev/softraid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: softraid.c,v 1.414 2020/09/05 13:05:06 krw Exp $ */
+/* $OpenBSD: softraid.c,v 1.415 2020/09/22 19:32:52 krw Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org>
@@ -2351,7 +2351,7 @@ sr_scsi_cmd(struct scsi_xfer *xs)
wu->swu_state = SR_WU_INPROGRESS;
wu->swu_xs = xs;
- switch (xs->cmd->opcode) {
+ switch (xs->cmd.opcode) {
case READ_COMMAND:
case READ_10:
case READ_16:
@@ -2359,7 +2359,7 @@ sr_scsi_cmd(struct scsi_xfer *xs)
case WRITE_10:
case WRITE_16:
DNPRINTF(SR_D_CMD, "%s: sr_scsi_cmd: READ/WRITE %02x\n",
- DEVNAME(sc), xs->cmd->opcode);
+ DEVNAME(sc), xs->cmd.opcode);
if (sd->sd_scsi_rw(wu))
goto stuffup;
break;
@@ -2395,7 +2395,7 @@ sr_scsi_cmd(struct scsi_xfer *xs)
case READ_CAPACITY:
case READ_CAPACITY_16:
DNPRINTF(SR_D_CMD, "%s: sr_scsi_cmd READ CAPACITY 0x%02x\n",
- DEVNAME(sc), xs->cmd->opcode);
+ DEVNAME(sc), xs->cmd.opcode);
if (sd->sd_scsi_read_cap(wu))
goto stuffup;
goto complete;
@@ -2409,7 +2409,7 @@ sr_scsi_cmd(struct scsi_xfer *xs)
default:
DNPRINTF(SR_D_CMD, "%s: unsupported scsi command %x\n",
- DEVNAME(sc), xs->cmd->opcode);
+ DEVNAME(sc), xs->cmd.opcode);
/* XXX might need to add generic function to handle others */
goto stuffup;
}
@@ -4011,7 +4011,7 @@ sr_raid_inquiry(struct sr_workunit *wu)
{
struct sr_discipline *sd = wu->swu_dis;
struct scsi_xfer *xs = wu->swu_xs;
- struct scsi_inquiry *cdb = (struct scsi_inquiry *)xs->cmd;
+ struct scsi_inquiry *cdb = (struct scsi_inquiry *)&xs->cmd;
struct scsi_inquiry_data inq;
DNPRINTF(SR_D_DIS, "%s: sr_raid_inquiry\n", DEVNAME(sd->sd_sc));
@@ -4056,7 +4056,7 @@ sr_raid_read_cap(struct sr_workunit *wu)
secsize = sd->sd_meta->ssdi.ssd_secsize;
addr = ((sd->sd_meta->ssdi.ssd_size * DEV_BSIZE) / secsize) - 1;
- if (xs->cmd->opcode == READ_CAPACITY) {
+ if (xs->cmd.opcode == READ_CAPACITY) {
bzero(&rcd, sizeof(rcd));
if (addr > 0xffffffffllu)
_lto4b(0xffffffff, rcd.addr);
@@ -4065,7 +4065,7 @@ sr_raid_read_cap(struct sr_workunit *wu)
_lto4b(secsize, rcd.length);
sr_copy_internal_data(xs, &rcd, sizeof(rcd));
rv = 0;
- } else if (xs->cmd->opcode == READ_CAPACITY_16) {
+ } else if (xs->cmd.opcode == READ_CAPACITY_16) {
bzero(&rcd16, sizeof(rcd16));
_lto8b(addr, rcd16.addr);
_lto4b(secsize, rcd16.length);
@@ -4124,7 +4124,7 @@ int
sr_raid_start_stop(struct sr_workunit *wu)
{
struct scsi_xfer *xs = wu->swu_xs;
- struct scsi_start_stop *ss = (struct scsi_start_stop *)xs->cmd;
+ struct scsi_start_stop *ss = (struct scsi_start_stop *)&xs->cmd;
DNPRINTF(SR_D_DIS, "%s: sr_raid_start_stop\n",
DEVNAME(wu->swu_dis->sd_sc));
@@ -4579,7 +4579,7 @@ sr_validate_io(struct sr_workunit *wu, daddr_t *blkno, char *func)
int rv = 1;
DNPRINTF(SR_D_DIS, "%s: %s 0x%02x\n", DEVNAME(sd->sd_sc), func,
- xs->cmd->opcode);
+ xs->cmd.opcode);
if (sd->sd_meta->ssd_data_blkno == 0)
panic("invalid data blkno");
@@ -4597,11 +4597,11 @@ sr_validate_io(struct sr_workunit *wu, daddr_t *blkno, char *func)
}
if (xs->cmdlen == 10)
- *blkno = _4btol(((struct scsi_rw_10 *)xs->cmd)->addr);
+ *blkno = _4btol(((struct scsi_rw_10 *)&xs->cmd)->addr);
else if (xs->cmdlen == 16)
- *blkno = _8btol(((struct scsi_rw_16 *)xs->cmd)->addr);
+ *blkno = _8btol(((struct scsi_rw_16 *)&xs->cmd)->addr);
else if (xs->cmdlen == 6)
- *blkno = _3btol(((struct scsi_rw *)xs->cmd)->addr);
+ *blkno = _3btol(((struct scsi_rw *)&xs->cmd)->addr);
else {
printf("%s: %s: illegal cmdlen for %s\n",
DEVNAME(sd->sd_sc), func, sd->sd_meta->ssd_devname);
@@ -4724,8 +4724,7 @@ sr_rebuild(struct sr_discipline *sd)
xs_r.datalen = sz << DEV_BSHIFT;
xs_r.data = buf;
xs_r.cmdlen = sizeof(*cr);
- xs_r.cmd = &xs_r.cmdstore;
- cr = (struct scsi_rw_16 *)xs_r.cmd;
+ cr = (struct scsi_rw_16 *)&xs_r.cmd;
cr->opcode = READ_16;
_lto4b(sz, cr->length);
_lto8b(lba, cr->addr);
@@ -4745,8 +4744,7 @@ sr_rebuild(struct sr_discipline *sd)
xs_w.datalen = sz << DEV_BSHIFT;
xs_w.data = buf;
xs_w.cmdlen = sizeof(*cw);
- xs_w.cmd = &xs_w.cmdstore;
- cw = (struct scsi_rw_16 *)xs_w.cmd;
+ cw = (struct scsi_rw_16 *)&xs_w.cmd;
cw->opcode = WRITE_16;
_lto4b(sz, cw->length);
_lto8b(lba, cw->addr);