svn commit: r268639 - head/usr.sbin/bhyve

Peter Grehan grehan at FreeBSD.org
Tue Jul 15 00:27:08 UTC 2014


Author: grehan
Date: Tue Jul 15 00:27:08 2014
New Revision: 268639
URL: http://svnweb.freebsd.org/changeset/base/268639

Log:
  Use the blockif CHS routine to create fake CHS values,
  and then populate them in the identity page.
  
  This fixes a divide-by-zero error at probe time with NetBSD.
  
  MFC after:	1 week.

Modified:
  head/usr.sbin/bhyve/pci_ahci.c

Modified: head/usr.sbin/bhyve/pci_ahci.c
==============================================================================
--- head/usr.sbin/bhyve/pci_ahci.c	Tue Jul 15 00:25:54 2014	(r268638)
+++ head/usr.sbin/bhyve/pci_ahci.c	Tue Jul 15 00:27:08 2014	(r268639)
@@ -598,10 +598,16 @@ handle_identify(struct ahci_port *p, int
 	} else {
 		uint16_t buf[256];
 		uint64_t sectors;
+		uint16_t cyl;
+		uint8_t sech, heads;
 
 		sectors = blockif_size(p->bctx) / blockif_sectsz(p->bctx);
+		blockif_chs(p->bctx, &cyl, &heads, &sech);
 		memset(buf, 0, sizeof(buf));
 		buf[0] = 0x0040;
+		buf[1] = cyl;
+		buf[3] = heads;
+		buf[6] = sech;
 		/* TODO emulate different serial? */
 		ata_string((uint8_t *)(buf+10), "123456", 20);
 		ata_string((uint8_t *)(buf+23), "001", 8);


More information about the svn-src-head mailing list