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