From: Jerone Young <jyoung5@us.ibm.com>
To: kvm-ppc@vger.kernel.org
Subject: Re: [kvm-ppc-devel] [PATCH 3 of 4] [qemu ppc uic] Remember
Date: Fri, 28 Mar 2008 04:00:39 +0000 [thread overview]
Message-ID: <1206676839.6752.1.camel@thinkpadL> (raw)
On Thu, 2008-03-27 at 21:49 -0500, Hollis Blanchard wrote:
> 2 files changed, 9 insertions(+), 2 deletions(-)
> qemu/hw/i8254.c | 2 ++
> qemu/hw/ppc4xx_devs.c | 9 +++++++--
>
>
> # HG changeset patch
> # User Hollis Blanchard <hollisb@us.ibm.com>
> # Date 1206672261 18000
> # Branch merge
> # Node ID 5c61aade5a1cfeecc270f4c0c176709a3a611e87
> # Parent 86c8ce190142bc39927ffaf0cfd8773f04a35086
> [qemu ppc uic] Remember the state of level-triggered interrupts.
>
> This fixes the following race condition:
> 1. target handles an interrupt and begins to EOI
> 2. device raises an interrupt, setting UIC SR
> 3. target finishes EOI by clearing SR bit
>
> On hardware, a device with a level-triggered interrupt would instantly
> re-assert SR after step 3, so we need to do the same.
>
> Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
>
> diff --git a/qemu/hw/i8254.c b/qemu/hw/i8254.c
> --- a/qemu/hw/i8254.c
> +++ b/qemu/hw/i8254.c
> @@ -27,6 +27,8 @@
> #include "qemu-timer.h"
>
> #include "qemu-kvm.h"
> +
> +#undef KVM_CAP_PIT
Did you mean to keep this in your patch? This file is used by i386 which
does have KVM_CAP_PIT. Did you want to ifdef this ?
>
> //#define DEBUG_PIT
>
> diff --git a/qemu/hw/ppc4xx_devs.c b/qemu/hw/ppc4xx_devs.c
> --- a/qemu/hw/ppc4xx_devs.c
> +++ b/qemu/hw/ppc4xx_devs.c
> @@ -278,6 +278,7 @@ struct ppcuic_t {
> struct ppcuic_t {
> uint32_t dcr_base;
> int use_vectors;
> + uint32_t level; /* Remembers the state of level-triggered interrupts. */
> uint32_t uicsr; /* Status register */
> uint32_t uicer; /* Enable register */
> uint32_t uiccr; /* Critical register */
> @@ -385,10 +386,13 @@ static void ppcuic_set_irq (void *opaque
> uic->uicsr |= mask;
> } else {
> /* Level sensitive interrupt */
> - if (level = 1)
> + if (level = 1) {
> uic->uicsr |= mask;
> - else
> + uic->level |= mask;
> + } else {
> uic->uicsr &= ~mask;
> + uic->level &= ~mask;
> + }
> }
> #ifdef DEBUG_UIC
> if (loglevel & CPU_LOG_INT) {
> @@ -460,6 +464,7 @@ static void dcr_write_uic (void *opaque,
> switch (dcrn) {
> case DCR_UICSR:
> uic->uicsr &= ~val;
> + uic->uicsr |= uic->level;
> ppcuic_trigger_irq(uic);
> break;
> case DCR_UICSRS:
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> _______________________________________________
> kvm-ppc-devel mailing list
> kvm-ppc-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/kvm-ppc-devel
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-ppc-devel mailing list
kvm-ppc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-ppc-devel
next reply other threads:[~2008-03-28 4:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-28 4:00 Jerone Young [this message]
2008-03-28 4:24 ` [kvm-ppc-devel] [PATCH 3 of 4] [qemu ppc uic] Remember Hollis Blanchard
2008-03-28 4:34 ` Jerone Young
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1206676839.6752.1.camel@thinkpadL \
--to=jyoung5@us.ibm.com \
--cc=kvm-ppc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.