From: christoffer.dall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v10 7/8] arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl
Date: Fri, 20 Jan 2017 20:54:58 +0100 [thread overview]
Message-ID: <20170120195458.GI13531@cbox> (raw)
In-Reply-To: <CAFEAcA-Ev4_949mRvagAa0wtMnUZBuQmMssWsMs3JPTBw_FviQ@mail.gmail.com>
On Fri, Dec 16, 2016 at 12:44:18PM +0000, Peter Maydell wrote:
> On 16 December 2016 at 12:07, Auger Eric <eric.auger@redhat.com> wrote:
> > Hi Vijaya,
> >
> > On 01/12/2016 08:09, vijay.kilari at gmail.com wrote:
> >> +void vgic_write_irq_line_level_info(struct kvm_vcpu *vcpu, u32 intid,
> >> + const u64 val)
> >> +{
> >> + int i;
> >> +
> >> + for (i = 0; i < 32; i++) {
> >> + struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i);
> >> +
> > same as above.
> >> + spin_lock(&irq->irq_lock);
> >> + if (val & (1U << i)) {
> >> + if (irq->config == VGIC_CONFIG_LEVEL) {
> >> + irq->line_level = true;
> >> + irq->pending = true;
> >> + vgic_queue_irq_unlock(vcpu->kvm, irq);
> >> + } else {
> >> + spin_unlock(&irq->irq_lock);
> >> + }
> >> + } else {
> >> + if (irq->config == VGIC_CONFIG_EDGE ||
> > can't we just ignore VGIC_CONFIG_EDGE case for which line_level is not
> > modeled?
> >> + (irq->config == VGIC_CONFIG_LEVEL &&
> >> + !irq->soft_pending))
> >> + irq->line_level = false;
> > To me the line level does not depend on the soft_pending bit. The
> > pending state depends on both.
>
> Without having looked at the details, it seems surprising to
> me that the implementation of "set line level to X" is not
> "set irq->line_level to X; figure out consequences and update
> other state as necessary"...
>
Indeed. Assuming you're ok with the API requiring config state to be
restored before the line level state, I think my suggestion in the
separate reply should work.
Of course, we need to clarify the ordering requirement in the API.
Thanks,
-Christoffer
next prev parent reply other threads:[~2017-01-20 19:54 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-01 7:09 [PATCH v10 0/8] arm/arm64: vgic: Implement API for vGICv3 live migration vijay.kilari at gmail.com
2016-12-01 7:09 ` [PATCH v10 1/8] arm/arm64: vgic: Implement support for userspace access vijay.kilari at gmail.com
2016-12-01 7:09 ` [PATCH v10 2/8] arm/arm64: vgic: Add distributor and redistributor access vijay.kilari at gmail.com
2016-12-01 7:09 ` [PATCH v10 3/8] arm/arm64: vgic: Introduce find_reg_by_id() vijay.kilari at gmail.com
2016-12-01 7:09 ` [PATCH v10 4/8] irqchip/gic-v3: Add missing system register definitions vijay.kilari at gmail.com
2016-12-01 7:09 ` [PATCH v10 5/8] arm/arm64: vgic: Introduce VENG0 and VENG1 fields to vmcr struct vijay.kilari at gmail.com
2016-12-01 7:09 ` [PATCH v10 6/8] arm/arm64: vgic: Implement VGICv3 CPU interface access vijay.kilari at gmail.com
2016-12-16 12:25 ` Auger Eric
2016-12-19 9:47 ` Vijay Kilari
2016-12-19 10:20 ` Auger Eric
2017-01-20 19:26 ` Christoffer Dall
2016-12-19 17:05 ` Auger Eric
2017-01-20 19:27 ` Christoffer Dall
2017-01-20 19:27 ` Christoffer Dall
2016-12-01 7:09 ` [PATCH v10 7/8] arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl vijay.kilari at gmail.com
2016-12-16 12:07 ` Auger Eric
2016-12-16 12:44 ` Peter Maydell
2017-01-20 19:54 ` Christoffer Dall [this message]
2017-01-20 19:53 ` Christoffer Dall
2017-01-23 10:16 ` Peter Maydell
2017-01-23 11:06 ` Christoffer Dall
2017-01-23 11:41 ` Peter Maydell
2017-01-23 13:42 ` Christoffer Dall
2016-12-01 7:09 ` [PATCH v10 8/8] arm/arm64: Documentation: Update arm-vgic-v3.txt vijay.kilari at gmail.com
2016-12-16 12:18 ` Auger Eric
2017-01-20 19:57 ` Christoffer Dall
2017-01-23 10:52 ` Vijay Kilari
2017-01-23 11:20 ` Christoffer Dall
2017-01-23 11:33 ` Vijay Kilari
2017-01-23 11:43 ` Christoffer Dall
2017-01-19 2:13 ` [PATCH v10 0/8] arm/arm64: vgic: Implement API for vGICv3 live migration Shannon Zhao
2017-01-20 13:51 ` Christoffer Dall
2017-01-20 19:59 ` Christoffer Dall
2017-01-23 10:24 ` Vijay Kilari
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=20170120195458.GI13531@cbox \
--to=christoffer.dall@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).