[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 05/12] fdc: Throw an assertion on misconfigured f
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH v4 05/12] fdc: Throw an assertion on misconfigured fd_formats table |
Date: |
Wed, 20 Jan 2016 01:51:27 -0500 |
pick_geometry is a convoluted function that makes it difficult to tell
at a glance what QEMU's current behavior for choosing a floppy drive
type is when it can't quite identify the diskette.
If drive type is NONE, it considers all drive types in the candidate
geometry table to be a match, and saves the first such one as
"first_match." If drive_type is not NONE, first_match is set to the first
candidate geometry in the table that matched our specific drive type.
This means:
- If drive type is NONE, the default is truly fd_formats[0], a 1.44MB
type, because first_match will always get set to the first item.
- If drive type is not NONE, pick_geometry gets fussier and attempts to
only pick a geometry if it matches our drive type. In this case,
first_match must always be set because all known drive types have
candidate geometries listed in the table.
- If drive type is not NONE and the fd_formats table lists no options for
our drive type, we choose fd_formats[1], an incomprehensibly bizarre
choice that can never happen anyway.
Correct this: If first_match is -1, it can ONLY mean we didn't edit our
fd_formats table correctly. Throw an assertion instead.
Signed-off-by: John Snow <address@hidden>
---
hw/block/fdc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index e72a906..370ece1 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -273,7 +273,9 @@ static void pick_geometry(FDrive *drv)
}
if (match == -1) {
if (first_match == -1) {
- match = 1;
+ error_setg(&error_abort, "No candidate geometries present in table
"
+ " for floppy drive type '%s'",
+ FloppyDriveType_lookup[drv->drive]);
} else {
match = first_match;
}
--
2.4.3
- Re: [Qemu-devel] [PATCH v4 03/12] fdc: add drive type qapi enum, (continued)
- [Qemu-devel] [PATCH v4 02/12] fdc: reduce number of pick_geometry arguments, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 07/12] fdc: Add fallback option, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 11/12] qtest/fdc: Support for 2.88MB drives, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 10/12] fdc: rework pick_geometry, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 12/12] fdc: change auto fallback drive for ISA FDC to 288, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 01/12] fdc: move pick_geometry, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 05/12] fdc: Throw an assertion on misconfigured fd_formats table,
John Snow <=
- [Qemu-devel] [PATCH v4 08/12] fdc: add drive type option, John Snow, 2016/01/20
- [Qemu-devel] [PATCH v4 09/12] fdc: add physical disk sizes, John Snow, 2016/01/20
- Re: [Qemu-devel] [Qemu-block] [PATCH v4 00/12] fdc: fix 2.88mb floppy diskette support, Denis V. Lunev, 2016/01/20