[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] qdev: Some ISA devices don't handle second instantiation gr
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] qdev: Some ISA devices don't handle second instantiation gracefully (was: isa-applesmc doesn't handle second instantiation gracefully) |
Date: |
Tue, 12 Oct 2010 15:00:13 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Markus Armbruster <address@hidden> writes:
> When I try -device isa-applesmc -device isa-applesmc, I get
>
> WARNING: Using AppleSMC with invalid key
> qemu: hardware error: register_ioport_read: invalid opaque
> [...]
>
> and a core dump.
>
> I know nothing about this device. Instantiating twice may well make no
> sense. But hw_error() is not a nice way to reject a command line
> option.
Actually, ib700 and isa-debugcon fail the same way.
They call register_ioport_write(), which aborts via hw_error() when the
port is already in use. This is okay for non-configurable parts of a
board emulation, but not okay for a qdev device, unless it has no_user
set.
Related: when isa_init_irq() finds the requested IRQ already in use, it
fails with exit(1). Maybe register_ioport_write() & friends should do
that as well.
Or maybe qdev device models should have an "at most one" flag.