svn commit: r200310 - in head/sys/boot/i386: gptboot zfsboot

John Baldwin jhb at FreeBSD.org
Wed Dec 9 13:09:32 PST 2009


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;


More information about the svn-src-head mailing list