Module Name:    src
Committed By:   riz
Date:           Tue Jun 12 19:19:21 UTC 2012

Modified Files:
        src/distrib/utils/sysinst [netbsd-6]: mbr.c

Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #317):
        distrib/utils/sysinst/mbr.c: revision 1.91
Fix regression by my dumb patch in PR/45990.
sysinst fails with "floating exception" after
changing MBR partition size in MBR editor menu
if the target disk doesn't have valid MBR partition
or has a valid partition 0 whose offset is not 1MB aligned
(like 63 sectors).
read_mbr() (which calls get_ptn_alignment()) is called
before set_bios_geom(), so bhead is not initialized there
and ptn_alignment could be zero.
To workaround, explicitly call get_ptn_alignment() again
in edit_mbr() to update ptn_alignemnt per BIOS geom values.


To generate a diff of this commit:
cvs rdiff -u -r1.89.2.1 -r1.89.2.2 src/distrib/utils/sysinst/mbr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/utils/sysinst/mbr.c
diff -u src/distrib/utils/sysinst/mbr.c:1.89.2.1 src/distrib/utils/sysinst/mbr.c:1.89.2.2
--- src/distrib/utils/sysinst/mbr.c:1.89.2.1	Thu May 17 18:57:08 2012
+++ src/distrib/utils/sysinst/mbr.c	Tue Jun 12 19:19:20 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: mbr.c,v 1.89.2.1 2012/05/17 18:57:08 sborrill Exp $ */
+/*	$NetBSD: mbr.c,v 1.89.2.2 2012/06/12 19:19:20 riz Exp $ */
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -1271,6 +1271,7 @@ edit_mbr(mbr_info_t *mbri)
 	/* Ask full/part */
 
 	part = &mbrs->mbr_parts[0];
+	get_ptn_alignment(part);	/* update ptn_alignment */
 	msg_display(MSG_fullpart, diskdev);
 	process_menu(MENU_fullpart, &usefull);
 
@@ -1477,7 +1478,7 @@ read_mbr(const char *disk, mbr_info_t *m
 
 		mbrp = &mbrs->mbr_parts[0];
 		if (ext_base == 0) {
-			get_ptn_alignment(mbrp);
+			get_ptn_alignment(mbrp);	/* get ptn_0_offset */
 		} else {
 			/* sanity check extended chain */
 			if (MBR_IS_EXTENDED(mbrp[0].mbrp_type))

Reply via email to