hw: Drop superfluous special checks for orphaned -drive
We've traditionally rejected orphans here and there, but not
systematically. For instance, the sun4m machines have an onboard SCSI
HBA (bus=0), and have always rejected bus>0. Other machines with an
onboard SCSI HBA don't.
Commit a66c9dc
made all orphans trigger a warning, and the previous
commit turned this into an error. The checks "here and there" are now
redundant. Drop them.
Note that the one in mips_jazz.c was wrong: it rejected bus > MAX_FD,
but MAX_FD is the number of floppy drives per bus.
Error messages change from
$ qemu-system-x86_64 -drive if=ide,bus=2
qemu-system-x86_64: Too many IDE buses defined (3 > 2)
$ qemu-system-mips64 -M magnum,accel=qtest -drive if=floppy,bus=2,id=fd1
qemu: too many floppy drives
$ qemu-system-sparc -M LX -drive if=scsi,bus=1
qemu: too many SCSI bus
to
$ qemu-system-x86_64 -drive if=ide,bus=2
qemu-system-x86_64: -drive if=ide,bus=2: machine type does not support if=ide,bus=2,unit=0
$ qemu-system-mips64 -M magnum,accel=qtest -drive if=floppy,bus=2,id=fd1
qemu-system-mips64: -drive if=floppy,bus=2,id=fd1: machine type does not support if=floppy,bus=2,unit=0
$ qemu-system-sparc -M LX -drive if=scsi,bus=1
qemu-system-sparc: -drive if=scsi,bus=1: machine type does not support if=scsi,bus=1,unit=0
Cc: John Snow <jsnow@redhat.com>
Cc: "Hervé Poussineau" <hpoussin@reactos.org>
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1487153147-11530-9-git-send-email-armbru@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
720b8dc052
commit
8f2d75e81d
@ -2840,23 +2840,6 @@ const VMStateDescription vmstate_ide_bus = {
|
|||||||
void ide_drive_get(DriveInfo **hd, int n)
|
void ide_drive_get(DriveInfo **hd, int n)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int highest_bus = drive_get_max_bus(IF_IDE) + 1;
|
|
||||||
int max_devs = drive_get_max_devs(IF_IDE);
|
|
||||||
int n_buses = max_devs ? (n / max_devs) : n;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: The number of actual buses available is not known.
|
|
||||||
* We compute this based on the size of the DriveInfo* array, n.
|
|
||||||
* If it is less than max_devs * <num_real_buses>,
|
|
||||||
* We will stop looking for drives prematurely instead of overfilling
|
|
||||||
* the array.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (highest_bus > n_buses) {
|
|
||||||
error_report("Too many IDE buses defined (%d > %d)",
|
|
||||||
highest_bus, n_buses);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
hd[i] = drive_get_by_index(IF_IDE, i);
|
hd[i] = drive_get_by_index(IF_IDE, i);
|
||||||
|
@ -291,10 +291,6 @@ static void mips_jazz_init(MachineState *machine,
|
|||||||
qdev_get_gpio_in(rc4030, 5), &esp_reset, &dma_enable);
|
qdev_get_gpio_in(rc4030, 5), &esp_reset, &dma_enable);
|
||||||
|
|
||||||
/* Floppy */
|
/* Floppy */
|
||||||
if (drive_get_max_bus(IF_FLOPPY) >= MAX_FD) {
|
|
||||||
fprintf(stderr, "qemu: too many floppy drives\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
for (n = 0; n < MAX_FD; n++) {
|
for (n = 0; n < MAX_FD; n++) {
|
||||||
fds[n] = drive_get(IF_FLOPPY, 0, n);
|
fds[n] = drive_get(IF_FLOPPY, 0, n);
|
||||||
}
|
}
|
||||||
|
@ -989,11 +989,6 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef,
|
|||||||
slavio_misc_init(hwdef->slavio_base, hwdef->aux1_base, hwdef->aux2_base,
|
slavio_misc_init(hwdef->slavio_base, hwdef->aux1_base, hwdef->aux2_base,
|
||||||
slavio_irq[30], fdc_tc);
|
slavio_irq[30], fdc_tc);
|
||||||
|
|
||||||
if (drive_get_max_bus(IF_SCSI) > 0) {
|
|
||||||
fprintf(stderr, "qemu: too many SCSI bus\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_init(hwdef->esp_base, 2,
|
esp_init(hwdef->esp_base, 2,
|
||||||
espdma_memory_read, espdma_memory_write,
|
espdma_memory_read, espdma_memory_write,
|
||||||
espdma, espdma_irq, &esp_reset, &dma_enable);
|
espdma, espdma_irq, &esp_reset, &dma_enable);
|
||||||
|
Loading…
Reference in New Issue
Block a user