Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/distrib/utils/sysinst Fix regression by my dumb patch in PR/...
details: https://anonhg.NetBSD.org/src/rev/89241d9d9173
branches: trunk
changeset: 779402:89241d9d9173
user: tsutsui <tsutsui%NetBSD.org@localhost>
date: Sat May 26 05:09:59 2012 +0000
description:
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.
diffstat:
distrib/utils/sysinst/mbr.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diffs (26 lines):
diff -r c2f8865f6ddb -r 89241d9d9173 distrib/utils/sysinst/mbr.c
--- a/distrib/utils/sysinst/mbr.c Sat May 26 01:58:17 2012 +0000
+++ b/distrib/utils/sysinst/mbr.c Sat May 26 05:09:59 2012 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mbr.c,v 1.90 2012/04/07 03:08:33 tsutsui Exp $ */
+/* $NetBSD: mbr.c,v 1.91 2012/05/26 05:09:59 tsutsui Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -1271,6 +1271,7 @@
/* 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 @@
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))
Home |
Main Index |
Thread Index |
Old Index