Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Dec 2009 21:09:32 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r200310 - in head/sys/boot/i386: gptboot zfsboot
Message-ID:  <200912092109.nB9L9WPF037227@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Wed Dec  9 21:09:32 2009
New Revision: 200310
URL: http://svn.freebsd.org/changeset/base/200310

Log:
  Fix a confusing typo in the EDD packet structure used in gptboot and
  gptzfsboot.  I got the segment and offset fields reversed in the structure,
  but I also succeeded in crossing the assignments so the actual EDD packet
  ended up correct.
  
  MFC after:	1 week

Modified:
  head/sys/boot/i386/gptboot/gptboot.c
  head/sys/boot/i386/zfsboot/zfsboot.c

Modified: head/sys/boot/i386/gptboot/gptboot.c
==============================================================================
--- head/sys/boot/i386/gptboot/gptboot.c	Wed Dec  9 20:36:56 2009	(r200309)
+++ head/sys/boot/i386/gptboot/gptboot.c	Wed Dec  9 21:09:32 2009	(r200310)
@@ -642,8 +642,8 @@ bcmp(const void *b1, const void *b2, siz
 static struct {
 	uint16_t len;
 	uint16_t count;
-	uint16_t seg;
 	uint16_t off;
+	uint16_t seg;
 	uint64_t lba;
 } packet;
 
@@ -656,8 +656,8 @@ drvread(void *buf, daddr_t lba, unsigned
 	printf("%c\b", c = c << 8 | c >> 24);
     packet.len = 0x10;
     packet.count = nblk;
-    packet.seg = VTOPOFF(buf);
-    packet.off = VTOPSEG(buf);
+    packet.off = VTOPOFF(buf);
+    packet.seg = VTOPSEG(buf);
     packet.lba = lba;
     v86.ctl = V86_FLAGS;
     v86.addr = 0x13;

Modified: head/sys/boot/i386/zfsboot/zfsboot.c
==============================================================================
--- head/sys/boot/i386/zfsboot/zfsboot.c	Wed Dec  9 20:36:56 2009	(r200309)
+++ head/sys/boot/i386/zfsboot/zfsboot.c	Wed Dec  9 21:09:32 2009	(r200310)
@@ -1049,8 +1049,8 @@ putchar(int c)
 static struct {
 	uint16_t len;
 	uint16_t count;
-	uint16_t seg;
 	uint16_t off;
+	uint16_t seg;
 	uint64_t lba;
 } packet;
 #endif
@@ -1065,8 +1065,8 @@ drvread(struct dsk *dsk, void *buf, dadd
 	printf("%c\b", c = c << 8 | c >> 24);
     packet.len = 0x10;
     packet.count = nblk;
-    packet.seg = VTOPOFF(buf);
-    packet.off = VTOPSEG(buf);
+    packet.off = VTOPOFF(buf);
+    packet.seg = VTOPSEG(buf);
     packet.lba = lba + dsk->start;
     v86.ctl = V86_FLAGS;
     v86.addr = 0x13;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912092109.nB9L9WPF037227>