[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQ
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register |
Date: |
Wed, 05 Sep 2012 17:43:48 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2012-09-05 06:33, Matthew Ogilvie wrote:
> According to later discussion, the main issue is actually the input
> IRQ behavior on a high to low transition; hence the following fixes
> both the test program and the Microport UNIX problem:
>
> diff --git a/hw/i8259.c b/hw/i8259.c
> index 6587666..c011787 100644
> --- a/hw/i8259.c
> +++ b/hw/i8259.c
> @@ -143,22 +143,23 @@ static void pic_set_irq(void *opaque, int irq, int
> level)
> if (s->elcr & mask) {
> /* level triggered */
> if (level) {
> s->irr |= mask;
> s->last_irr |= mask;
> } else {
> s->irr &= ~mask;
> s->last_irr &= ~mask;
> }
> } else {
> /* edge triggered */
> if (level) {
> if ((s->last_irr & mask) == 0) {
> s->irr |= mask;
> }
> s->last_irr |= mask;
> } else {
> + s->irr &= ~mask;
> s->last_irr &= ~mask;
> }
> }
> pic_update_irq(s);
> }
>
>
> Perhaps it would be worth it to swap around the "if"s a little bit
> to avoid the (!level) duplication, and clarify that the only difference
> is in the low to high transition?
Yes, refactoring would be welcome. But I would suggest to do this in two
patches, leaving the above change (+ changelog that explains the reason)
in its current clarity.
Hurray, no vmstate subsections needed! :)
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, (continued)
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Maciej W. Rozycki, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Paolo Bonzini, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Jan Kiszka, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Maciej W. Rozycki, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Jan Kiszka, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Maciej W. Rozycki, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Jan Kiszka, 2012/09/04
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register, Matthew Ogilvie, 2012/09/05
- Re: [Qemu-devel] [PATCH v4 5/5] i8259: fix dynamically masking slave IRQs with IMR register,
Jan Kiszka <=