Module Name: src
Committed By: palle
Date: Sun Jun 9 19:13:54 UTC 2024
Modified Files:
src/sys/arch/sparc64/dev: vdsk.c
Log Message:
sun4v: fix vdsk so an iso image exported by the ldom virtual disk service is
correctly detected as a cd device + some whitespace fixes
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/sparc64/dev/vdsk.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/sparc64/dev/vdsk.c
diff -u src/sys/arch/sparc64/dev/vdsk.c:1.11 src/sys/arch/sparc64/dev/vdsk.c:1.12
--- src/sys/arch/sparc64/dev/vdsk.c:1.11 Tue Dec 12 21:34:34 2023
+++ src/sys/arch/sparc64/dev/vdsk.c Sun Jun 9 19:13:54 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: vdsk.c,v 1.11 2023/12/12 21:34:34 andvar Exp $ */
+/* $NetBSD: vdsk.c,v 1.12 2024/06/09 19:13:54 palle Exp $ */
/* $OpenBSD: vdsk.c,v 1.46 2015/01/25 21:42:13 kettenis Exp $ */
/*
* Copyright (c) 2009, 2011 Mark Kettenis
@@ -788,7 +788,6 @@ vdsk_rx_vio_dring_data(struct vdsk_softc
void
vdsk_ldc_reset(struct ldc_conn *lc)
{
-
struct vdsk_softc *sc = lc->lc_sc;
sc->sc_vio_state = 0;
@@ -797,7 +796,6 @@ vdsk_ldc_reset(struct ldc_conn *lc)
void
vdsk_ldc_start(struct ldc_conn *lc)
{
-
struct vdsk_softc *sc = lc->lc_sc;
vdsk_send_ver_info(sc, VDSK_MAJOR, VDSK_MINOR);
@@ -806,7 +804,6 @@ vdsk_ldc_start(struct ldc_conn *lc)
void
vdsk_sendmsg(struct vdsk_softc *sc, void *msg, size_t len)
{
-
struct ldc_conn *lc = &sc->sc_lc;
int err;
@@ -818,7 +815,6 @@ vdsk_sendmsg(struct vdsk_softc *sc, void
void
vdsk_send_ver_info(struct vdsk_softc *sc, uint16_t major, uint16_t minor)
{
-
struct vio_ver_info vi;
/* Allocate new session ID. */
@@ -1255,14 +1251,12 @@ vdsk_complete_cmd(struct vdsk_softc *sc,
void
vdsk_scsi_inq(struct vdsk_softc *sc, struct scsipi_xfer *xs)
{
-
vdsk_scsi_inquiry(sc, xs);
}
void
vdsk_scsi_inquiry(struct vdsk_softc *sc, struct scsipi_xfer *xs)
{
-
struct scsipi_inquiry_data inq;
char buf[5];
@@ -1272,20 +1266,21 @@ vdsk_scsi_inquiry(struct vdsk_softc *sc,
case VD_MEDIA_TYPE_CD:
case VD_MEDIA_TYPE_DVD:
inq.device = T_CDROM;
+ inq.dev_qual2 = SID_REMOVABLE;
+ bcopy("Virtual CDROM ", inq.product, sizeof(inq.product));
break;
-
case VD_MEDIA_TYPE_FIXED:
- default:
inq.device = T_DIRECT;
+ bcopy("Virtual Disk ", inq.product, sizeof(inq.product));
break;
+ default:
+ panic("Unhandled media type %d\n", sc->sc_vd_mtype);
}
-
inq.version = 0x05; /* SPC-3 */
inq.response_format = 2;
inq.additional_length = 32;
inq.flags3 |= SID_CmdQue;
bcopy("SUN ", inq.vendor, sizeof(inq.vendor));
- bcopy("Virtual Disk ", inq.product, sizeof(inq.product));
snprintf(buf, sizeof(buf), "%u.%u ", sc->sc_major, sc->sc_minor);
bcopy(buf, inq.revision, sizeof(inq.revision));
@@ -1297,7 +1292,6 @@ vdsk_scsi_inquiry(struct vdsk_softc *sc,
void
vdsk_scsi_capacity(struct vdsk_softc *sc, struct scsipi_xfer *xs)
{
-
struct scsipi_read_capacity_10_data rcd;
uint64_t capacity;
@@ -1321,7 +1315,6 @@ vdsk_scsi_capacity(struct vdsk_softc *sc
void
vdsk_scsi_capacity16(struct vdsk_softc *sc, struct scsipi_xfer *xs)
{
-
struct scsipi_read_capacity_16_data rcd;
uint64_t capacity;
@@ -1349,7 +1342,6 @@ vdsk_scsi_report_luns(struct vdsk_softc
void
vdsk_scsi_done(struct scsipi_xfer *xs, int error)
{
-
xs->error = error;
scsipi_done(xs);