qemu/hw
John Snow f31937aa8c fdc: rework pick_geometry
This one is the crazy one.

fd_revalidate currently uses pick_geometry to tell if the diskette
geometry has changed upon an eject/insert event, but it won't allow us
to insert a 1.44MB diskette into a 2.88MB drive. This is inflexible.

The new algorithm applies a new heuristic to guessing disk geometries
that allows us to switch diskette types as long as the physical size
matches before falling back to the old heuristic.

The old one is roughly:
 - If the size (sectors) and type matches, choose it.
 - Fall back to the first geometry that matched our type.

The new one is:
 - If the size (sectors) and type matches, choose it.
 - If the size (sectors) and physical size match, choose it.
 - Fall back to the first geometry that matched our type.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 1453495865-9649-11-git-send-email-jsnow@redhat.com
2016-01-25 14:35:24 -05:00
..
9pfs 9pfs: use error_report() instead of fprintf(stderr) 2016-01-22 15:12:17 +01:00
acpi trivial patches for 2016-01-11 2016-01-11 12:56:58 +00:00
alpha isa: Clean up error handling around isa_bus_new() 2016-01-13 11:58:59 +01:00
arm hw/arm/virt: Add always-on property to the virt board timer 2016-01-21 14:15:07 +00:00
audio Remove macros IO_READ_PROTO and IO_WRITE_PROTO 2015-10-19 09:03:53 +02:00
block fdc: rework pick_geometry 2016-01-25 14:35:24 -05:00
bt bt: avoid unintended sign extension 2015-12-04 09:39:55 +03:00
char Error reporting patches for 2016-01-13 2016-01-14 13:07:38 +00:00
core fdc: Add fallback option 2016-01-25 14:35:23 -05:00
cpu icc_bus: drop the unused files 2015-10-02 16:22:02 -03:00
cris cris: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
display Xen 2016/01/21 2016-01-21 17:21:08 +00:00
dma hw/dma/xilinx_axidma: remove dead code 2016-01-11 15:52:18 +00:00
gpio omap: Don't use hw_error() in device init() methods 2016-01-13 11:58:58 +01:00
i2c omap: Don't use hw_error() in device init() methods 2016-01-13 11:58:58 +01:00
i386 fdc: add drive type qapi enum 2016-01-25 14:35:23 -05:00
ide ide: Correct the CHS 'cyls_max' limit to be 65535 2016-01-25 14:34:40 -05:00
input qapi: Change munging of CamelCase enum values 2015-12-17 08:21:28 +01:00
intc arm_gic: Update ID registers based on revision 2016-01-21 14:15:08 +00:00
ipack pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
ipmi fpu: Replace int32 typedef with int32_t 2016-01-22 15:09:21 +00:00
isa isa: Clean up inappropriate hw_error() 2016-01-13 15:15:57 +01:00
lm32 ui/opengl: Reduce build required libraries for opengl 2015-11-03 10:13:42 +01:00
m68k hw: Don't use hw_error() for machine initialization errors 2016-01-13 11:58:58 +01:00
mem nvdimm: implement NVDIMM device abstract 2015-12-22 18:39:20 +02:00
microblaze ssi: Move ssi.h into a separate directory 2016-01-21 14:15:03 +00:00
mips mips: Clean up includes 2016-01-23 14:30:04 +00:00
misc fpu: Replace uint32 typedef with uint32_t 2016-01-22 15:09:21 +00:00
moxie moxie: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
net fpu: Replace uint8 typedef with uint8_t 2016-01-22 15:09:21 +00:00
nvram fw_cfg: replace ioport data read with generic method 2015-12-15 11:46:13 +01:00
openrisc * First batch of MAINTAINERS updates 2015-09-25 21:52:30 +01:00
pci fix bad indentation in pcie_cap_slot_write_config() 2015-11-06 15:42:38 +03:00
pci-bridge hw/pxb: introduce pxb-pcie expander for PCIe machines 2015-12-22 17:45:13 +02:00
pci-host isa: Clean up error handling around isa_bus_new() 2016-01-13 11:58:59 +01:00
pcmcia hw: do not pass NULL to memory_region_init from instance_init 2015-10-09 15:25:56 +02:00
ppc fpu: Replace uint32 typedef with uint32_t 2016-01-22 15:09:21 +00:00
s390x Error reporting patches for 2016-01-13 2016-01-14 13:07:38 +00:00
scsi SCSI device: fix to incomplete QOMify 2016-01-15 18:58:01 +01:00
sd ssi: Move ssi.h into a separate directory 2016-01-21 14:15:03 +00:00
sh4 SH PCI Host: convert to realize() 2016-01-11 11:39:28 +03:00
smbios Use error_fatal to simplify obvious fatal errors 2016-01-13 11:58:58 +01:00
sparc sparc: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
sparc64 target-sparc: Convert to VMStateDescription 2016-01-16 12:01:23 +00:00
ssi xilinx_spips: Separate the state struct into a header 2016-01-21 14:15:03 +00:00
timer arm_mptimer: Don't use hw_error() in realize() method 2016-01-13 11:58:58 +01:00
tpm qemu-char: delete send_all/recv_all helper methods 2016-01-15 18:58:01 +01:00
tricore tricore: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
unicore32 hw: Don't use hw_error() for machine initialization errors 2016-01-13 11:58:58 +01:00
usb error: Use error_prepend() where it makes obvious sense 2016-01-13 15:16:17 +01:00
vfio vfio/pci: Lazy PBA emulation 2016-01-19 11:33:42 -07:00
virtio VirtFS update: 2016-01-12 17:37:22 +00:00
watchdog i6300esb: remove muldiv64() 2015-09-25 14:52:17 +02:00
xen Xen PCI passthru: convert to realize() 2016-01-21 16:45:54 +00:00
xenpv xen: fix usage of xc_domain_create in domain builder 2015-11-13 17:38:06 +00:00
xtensa target-xtensa: xtfpga: attach FLASH to system IO 2015-10-21 21:28:33 +03:00
Makefile.objs Add a base IPMI interface 2015-12-22 18:39:19 +02:00