Module Name: src
Committed By: martin
Date: Sat Mar 25 09:21:21 UTC 2017
Modified Files:
src/sys/arch/sparc/stand/common: promdev.c
src/sys/arch/sparc/stand/ofwboot: ofdev.c
src/sys/dev/ofw: ofdisk.c
Log Message:
Virtio block devices may have a "scsi" device_type instead of "block",
so accept both.
To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/sparc/stand/common/promdev.c
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/sparc/stand/ofwboot/ofdev.c
cvs rdiff -u -r1.51 -r1.52 src/sys/dev/ofw/ofdisk.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/sparc/stand/common/promdev.c
diff -u src/sys/arch/sparc/stand/common/promdev.c:1.27 src/sys/arch/sparc/stand/common/promdev.c:1.28
--- src/sys/arch/sparc/stand/common/promdev.c:1.27 Mon Dec 30 08:43:28 2013
+++ src/sys/arch/sparc/stand/common/promdev.c Sat Mar 25 09:21:21 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: promdev.c,v 1.27 2013/12/30 08:43:28 martin Exp $ */
+/* $NetBSD: promdev.c,v 1.28 2017/03/25 09:21:21 martin Exp $ */
/*
* Copyright (c) 1993 Paul Kranenburg
@@ -562,6 +562,8 @@ getdevtype(int fd, char *name)
cp = mygetpropstring(node, "device_type");
if (strcmp(cp, "block") == 0)
return (DT_BLOCK);
+ if (strcmp(cp, "scsi") == 0)
+ return (DT_BLOCK);
else if (strcmp(cp, "network") == 0)
return (DT_NET);
else if (strcmp(cp, "byte") == 0)
Index: src/sys/arch/sparc/stand/ofwboot/ofdev.c
diff -u src/sys/arch/sparc/stand/ofwboot/ofdev.c:1.35 src/sys/arch/sparc/stand/ofwboot/ofdev.c:1.36
--- src/sys/arch/sparc/stand/ofwboot/ofdev.c:1.35 Thu Feb 20 15:11:36 2014
+++ src/sys/arch/sparc/stand/ofwboot/ofdev.c Sat Mar 25 09:21:21 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ofdev.c,v 1.35 2014/02/20 15:11:36 joerg Exp $ */
+/* $NetBSD: ofdev.c,v 1.36 2017/03/25 09:21:21 martin Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -94,7 +94,8 @@ filename(char *str, char *ppart)
* if not, lp is the delimiter between device and
* path. if the last component was a block device.
*/
- if (!strcmp(devtype, "block")) {
+ if (strcmp(devtype, "block") == 0
+ || strcmp(devtype, "scsi") == 0) {
/* search for arguments */
DPRINTF(("filename: hunting for arguments "
"in %s\n", lp));
@@ -410,7 +411,7 @@ devopen(struct open_file *of, const char
if (_prom_getprop(handle, "device_type", b.buf, sizeof b.buf) < 0)
return ENXIO;
DPRINTF(("devopen: %s is a %s device\n", fname, b.buf));
- if (!strcmp(b.buf, "block")) {
+ if (strcmp(b.buf, "block") == 0 || strcmp(b.buf, "scsi") == 0) {
pp = strrchr(fname, ':');
if (pp && pp[1] >= 'a' && pp[1] <= 'f' && pp[2] == 0) {
savedpart = pp[1];
@@ -459,7 +460,7 @@ open_again:
DPRINTF(("devopen: %s is now open\n", fname));
memset(&ofdev, 0, sizeof ofdev);
ofdev.handle = handle;
- if (!strcmp(b.buf, "block")) {
+ if (strcmp(b.buf, "block") == 0 || strcmp(b.buf, "scsi") == 0) {
ofdev.type = OFDEV_DISK;
ofdev.bsize = DEV_BSIZE;
/* First try to find a disklabel without MBR partitions */
Index: src/sys/dev/ofw/ofdisk.c
diff -u src/sys/dev/ofw/ofdisk.c:1.51 src/sys/dev/ofw/ofdisk.c:1.52
--- src/sys/dev/ofw/ofdisk.c:1.51 Sun Apr 26 15:15:20 2015
+++ src/sys/dev/ofw/ofdisk.c Sat Mar 25 09:21:21 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ofdisk.c,v 1.51 2015/04/26 15:15:20 mlelstv Exp $ */
+/* $NetBSD: ofdisk.c,v 1.52 2017/03/25 09:21:21 martin Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ofdisk.c,v 1.51 2015/04/26 15:15:20 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ofdisk.c,v 1.52 2017/03/25 09:21:21 martin Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -131,7 +131,7 @@ ofdisk_match(device_t parent, cfdata_t m
if (l >= sizeof type)
return 0;
type[l] = 0;
- return !strcmp(type, "block");
+ return strcmp(type, "block") == 0 || strcmp(type, "scsi") == 0;
}
static void