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))