Date: Tue, 15 Jul 2014 00:27:08 +0000 (UTC) From: Peter Grehan <grehan@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268639 - head/usr.sbin/bhyve Message-ID: <201407150027.s6F0R83v092213@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407150027.s6F0R83v092213>