Sat Dec 3 10:53:10 2011 UTC ()
Don't try to set ld->sc_maxxfer below MAXPHYS.
At least genfs_io assumes 'ld->sc_maxxfer == MAXPHYS'.


(hannken)
diff -r1.3 -r1.4 src/sys/dev/pci/ld_virtio.c

cvs diff -r1.3 -r1.4 src/sys/dev/pci/ld_virtio.c (expand / switch to context diff)
--- src/sys/dev/pci/ld_virtio.c 2011/11/23 19:40:42 1.3
+++ src/sys/dev/pci/ld_virtio.c 2011/12/03 10:53:09 1.4
@@ -1,4 +1,4 @@
-/*	$NetBSD: ld_virtio.c,v 1.3 2011/11/23 19:40:42 hannken Exp $	*/
+/*	$NetBSD: ld_virtio.c,v 1.4 2011/12/03 10:53:09 hannken Exp $	*/
 
 /*
  * Copyright (c) 2010 Minoura Makoto.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ld_virtio.c,v 1.3 2011/11/23 19:40:42 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ld_virtio.c,v 1.4 2011/12/03 10:53:09 hannken Exp $");
 
 #include "rnd.h"
 
@@ -272,6 +272,7 @@
 					VIRTIO_BLK_CONFIG_BLK_SIZE);
 	}
 	maxxfersize = MAXPHYS;
+#if 0	/* At least genfs_io assumes maxxfer == MAXPHYS. */
 	if (features & VIRTIO_BLK_F_SEG_MAX) {
 		maxxfersize = virtio_read_device_config_4(vsc,
 					VIRTIO_BLK_CONFIG_SEG_MAX)
@@ -279,6 +280,7 @@
 		if (maxxfersize > MAXPHYS)
 			maxxfersize = MAXPHYS;
 	}
+#endif
 
 	if (virtio_alloc_vq(vsc, &sc->sc_vq[0], 0,
 			    maxxfersize, maxxfersize / NBPG + 2,