qemu/hw/ide
Stefan Hajnoczi aad64f3193 ide: refuse WIN_READ_NATIVE_MAX on empty device
What is the highest addressable sector on an empty CD-ROM?  Nothing is
addressable so produce an error.

This patch prevents a divide-by-zero in ide_set_sector() since
s->sectors and s->heads would be 0.  Not to mention that a sector=-1
argument would be nonsense.

Note that WIN_READ_NATIVE_MAX can be triggered using hdparm -N 1024
/dev/cdrom.  The LBA bit will be set to 1 though, so the only easy way
to go down the ide_set_sector() CHS code path which divides by zero is
to comment out the s->select & 0x40 case for testing.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
2013-04-15 10:18:05 +02:00
..
ahci.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
ahci.h
atapi.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
cmd646.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
core.c ide: refuse WIN_READ_NATIVE_MAX on empty device 2013-04-15 10:18:05 +02:00
ich.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
internal.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
isa.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
macio.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
Makefile.objs hw: make all of hw/ide/ configurable via default-configs/ 2013-04-08 18:13:12 +02:00
microdrive.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
mmio.c ide/mmio: QOM'ify MMIO IDE for R2D 2013-02-01 00:13:41 +01:00
pci.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
pci.h
piix.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
qdev.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
via.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00