From: Rusty Russell <rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
To: dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org
Cc: kvm-devel
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
virtualization
<virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
Subject: Re: [PATCH 2/3] virtio ring implementation
Date: Tue, 25 Sep 2007 23:32:36 +1000 [thread overview]
Message-ID: <1190727156.27805.332.camel@localhost.localdomain> (raw)
In-Reply-To: <46F7BF41.9060705-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
On Mon, 2007-09-24 at 15:44 +0200, Dor Laor wrote:
> Rusty Russell wrote:
> > +irqreturn_t vring_interrupt(int irq, void *_vq)
> > +{
> > + struct vring_virtqueue *vq = to_vvq(_vq);
> > +
> > + pr_debug("virtqueue interrupt for %p\n", vq);
> > +
> > + if (unlikely(vq->broken))
> > + return IRQ_HANDLED;
> > +
> > + if (more_used(vq)) {
> > + pr_debug("virtqueue callback for %p (%p)\n",
> > + vq, vq->vq.callback);
> > + if (!vq->vq.callback)
> > + return IRQ_NONE;
> > + if (!vq->vq.callback(&vq->vq))
> > + vq->vring.avail->flags |=
> > VRING_AVAIL_F_NO_INTERRUPT;
> > + } else
> > + pr_debug("virtqueue %p no more used\n", vq);
> > +
> > + return IRQ_HANDLED;
> > +}
> > +
> >
> Seems like there is a problem with shared irq line, the interrupt
> handler always returns IRQ_HANDLED (except for the trivial case
> were the callback is null).
To reply for a second time, this time with thought. Sorry.
Yes, this code is wrong. It should be:
irqreturn_t vring_interrupt(int irq, void *_vq)
{
struct vring_virtqueue *vq = to_vvq(_vq);
if (!more_used(vq)) {
pr_debug("virtqueue interrupt with no work for %p\n", vq);
return IRQ_NONE;
}
if (unlikely(vq->broken))
return IRQ_HANDLED;
pr_debug("virtqueue callback for %p (%p)\n", vq, vq->vq.callback);
if (vq->vq.callback && !vq->vq.callback(&vq->vq))
vq->vring.avail->flags |= VRING_AVAIL_F_NO_INTERRUPT;
return IRQ_HANDLED;
}
Cheers,
Rusty.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
next prev parent reply other threads:[~2007-09-25 13:32 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-24 9:13 [PATCH 0/3] virtio implementation (draft VI) Rusty Russell
[not found] ` <1190625194.27805.199.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24 9:14 ` [PATCH 1/3] virtio interface Rusty Russell
[not found] ` <1190625256.27805.201.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24 9:15 ` [PATCH 2/3] virtio ring implementation Rusty Russell
[not found] ` <1190625307.27805.203.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24 9:16 ` [PATCH 3/3] virtio module alias support Rusty Russell
[not found] ` <1190625394.27805.206.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24 16:02 ` Greg KH
[not found] ` <20070924160221.GB5846-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2007-09-25 0:50 ` Rusty Russell
[not found] ` <1190681405.27805.243.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25 1:57 ` Greg KH
[not found] ` <20070925015747.GA16011-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2007-09-25 2:11 ` Rusty Russell
[not found] ` <1190686275.27805.255.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25 3:10 ` Greg KH
2007-09-24 13:44 ` [PATCH 2/3] virtio ring implementation Dor Laor
[not found] ` <46F7BF41.9060705-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-24 23:43 ` Rusty Russell
2007-09-25 13:32 ` Rusty Russell [this message]
[not found] ` <1190727156.27805.332.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25 17:15 ` Dor Laor
[not found] ` <46F94243.2000602-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-25 23:37 ` Rusty Russell
[not found] ` <1190763475.2227.20.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-26 9:08 ` Dor Laor
2007-09-24 22:18 ` [PATCH 1/3] virtio interface Arnd Bergmann
[not found] ` <200709250018.12705.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-24 23:37 ` Rusty Russell
[not found] ` <1190677058.27805.225.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25 6:36 ` Arnd Bergmann
[not found] ` <200709250836.29451.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-25 10:54 ` Rusty Russell
2007-09-25 8:18 ` Cornelia Huck
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=1190727156.27805.332.camel@localhost.localdomain \
--to=rusty-8n+1lvoiyb80n/f98k4iww@public.gmane.org \
--cc=dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox