[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [STABLE][PATCH] isa-bus: Remove bogus IRQ sharing check
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-devel] [STABLE][PATCH] isa-bus: Remove bogus IRQ sharing check |
Date: |
Sun, 20 Feb 2011 01:45:02 +0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.16) Gecko/20101227 Icedove/3.0.11 |
19.02.2011 20:56, Jan Kiszka wrote:
> From: Jan Kiszka <address@hidden>
>
> Nothing prevented IRQ sharing on the ISA bus in principle. Not all
> boards supported this, neither each and every card nor driver and OS.
> Still, there existed valid IRQ sharing scenarios, (at least) two of them
> can also be found in QEMU: >2 PC UARTs and the PREP IDE buses.
>
> So remove this artificial restriction from our ISA model and reenable
> both PREP IDE buses.
In qemu-kvm at least (I don't remember how different the relevant code
has been between qemu and qemu-kvm at that time) this restriction exists
since 0.12 version. Before that it was at least possible to have >2 UARTS.
Do you aware of this? I don't know this code at all, so.. just asking :)
I'd love to get this fixed for real instead of a hackish way we did this
in the debian package, and it does not look like the change is problematic,
but are you sure it should go to stable?
FWIW, I applied this patch to qemu-kvm 0.14 branch (had to hand-apply
it to hw/pc.c, obvious s/isa_reserve_irq/isa_get_irq) and run some quick
tests, it appears to work correctly here with multiple serial ports
and e.g. serial console on ttyS4.
(Without the patch (and this is a separate bug), qemu-kvm prints:
qemu: hardware error: isa irq 4 already assigned
CPU #0:
_
when asked to create 3 serial ports, and stays there till killed).
Thanks!
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
>
> hw/hpet.c | 1 -
> hw/ide/piix.c | 2 +-
> hw/ide/via.c | 2 +-
> hw/isa-bus.c | 16 +++-------------
> hw/isa.h | 2 +-
> hw/mips_fulong2e.c | 2 +-
> hw/mips_malta.c | 4 ++--
> hw/pc.c | 2 +-
> hw/pc_piix.c | 4 ++--
> hw/ppc_prep.c | 2 +-
> 10 files changed, 13 insertions(+), 24 deletions(-)
>
> diff --git a/hw/hpet.c b/hw/hpet.c
> index 82a9a21..91ebb75 100644
[...]
/mjt