From: Andrew Jones <drjones@redhat.com> To: Eric Auger <eric.auger@redhat.com> Cc: thuth@redhat.com, kvm@vger.kernel.org, maz@kernel.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org, andre.przywara@arm.com, kvmarm@lists.cs.columbia.edu, eric.auger.pro@gmail.com Subject: Re: [kvm-unit-tests PATCH v2 09/16] arm/arm64: ITS: Enable/Disable LPIs at re-distributor level Date: Mon, 13 Jan 2020 18:44:57 +0100 Message-ID: <20200113174457.gg35yyeaftbadqki@kamzik.brq.redhat.com> (raw) In-Reply-To: <20200110145412.14937-10-eric.auger@redhat.com> On Fri, Jan 10, 2020 at 03:54:05PM +0100, Eric Auger wrote: > This helper function enables or disables the signaling of LPIs > at redistributor level. > > Signed-off-by: Eric Auger <eric.auger@redhat.com> > --- > lib/arm/asm/gic-v3-its.h | 1 + > lib/arm/gic-v3-its.c | 18 ++++++++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/lib/arm/asm/gic-v3-its.h b/lib/arm/asm/gic-v3-its.h > index 93814f7..d2db292 100644 > --- a/lib/arm/asm/gic-v3-its.h > +++ b/lib/arm/asm/gic-v3-its.h > @@ -99,6 +99,7 @@ extern struct its_baser *its_lookup_baser(int type); > extern void set_lpi_config(int n, u8 val); > extern u8 get_lpi_config(int n); > extern void set_pending_table_bit(int rdist, int n, bool set); > +extern void gicv3_rdist_ctrl_lpi(u32 redist, bool set); > > #endif /* !__ASSEMBLY__ */ > #endif /* _ASMARM_GIC_V3_ITS_H_ */ > diff --git a/lib/arm/gic-v3-its.c b/lib/arm/gic-v3-its.c > index 3037c84..c7c6f80 100644 > --- a/lib/arm/gic-v3-its.c > +++ b/lib/arm/gic-v3-its.c > @@ -199,3 +199,21 @@ void init_cmd_queue(void) > its_data.cmd_write = its_data.cmd_base; > writeq(0, its_data.base + GITS_CWRITER); > } > + > +void gicv3_rdist_ctrl_lpi(u32 redist, bool set) > +{ > + void *ptr; > + u64 val; > + > + if (redist >= nr_cpus) > + report_abort("%s redist=%d >= cpu_count=%d\n", > + __func__, redist, nr_cpus); I'd use {} here because of the multiline call. But, we don't use the report API in common code. Well, apparently s390 has report calls in lib/s390x/interrupt.c, but I don't really agree with that. IMO, common code failures should always be unexpected and just assert/assert_msg. > + > + ptr = gicv3_data.redist_base[redist]; > + val = readl(ptr + GICR_CTLR); > + if (set) > + val |= GICR_CTLR_ENABLE_LPIS; > + else > + val &= ~GICR_CTLR_ENABLE_LPIS; > + writel(val, ptr + GICR_CTLR); > +} > -- > 2.20.1 > Also, you can squash this patch into whatever is going to make use of this new helper. Thanks, drew _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
next prev parent reply index Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-10 14:53 [kvm-unit-tests PATCH v2 00/16] arm/arm64: Add ITS tests Eric Auger 2020-01-10 14:53 ` [kvm-unit-tests PATCH v2 01/16] libcflat: Add other size defines Eric Auger 2020-01-10 14:53 ` [kvm-unit-tests PATCH v2 02/16] arm: gic: Provide per-IRQ helper functions Eric Auger 2020-01-10 14:53 ` [kvm-unit-tests PATCH v2 03/16] arm/arm64: gic: Introduce setup_irq() helper Eric Auger 2020-01-13 16:53 ` Andrew Jones 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 04/16] arm/arm64: gicv3: Add some re-distributor defines Eric Auger 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 05/16] arm/arm64: ITS: Introspection tests Eric Auger 2020-01-13 17:11 ` Andrew Jones 2020-01-13 17:33 ` Andrew Jones 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 06/16] arm/arm64: ITS: Test BASER Eric Auger 2020-01-13 17:21 ` Andrew Jones 2020-01-15 17:16 ` Auger Eric 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 07/16] arm/arm64: ITS: Set the LPI config and pending tables Eric Auger 2020-01-13 17:31 ` Andrew Jones 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 08/16] arm/arm64: ITS: Init the command queue Eric Auger 2020-01-13 17:37 ` Andrew Jones 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 09/16] arm/arm64: ITS: Enable/Disable LPIs at re-distributor level Eric Auger 2020-01-13 17:44 ` Andrew Jones [this message] 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 10/16] arm/arm64: ITS: its_enable_defaults Eric Auger 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 11/16] arm/arm64: ITS: Device and collection Initialization Eric Auger 2020-01-13 17:48 ` Andrew Jones 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 12/16] arm/arm64: ITS: commands Eric Auger 2020-01-13 18:00 ` Andrew Jones 2020-01-15 17:13 ` Auger Eric 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 13/16] arm/arm64: ITS: INT functional tests Eric Auger 2020-01-13 18:17 ` Andrew Jones 2020-01-15 17:11 ` Auger Eric 2020-01-16 8:06 ` Andrew Jones 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 14/16] arm/run: Allow Migration tests Eric Auger 2020-01-13 18:40 ` Andrew Jones 2020-01-15 17:04 ` Auger Eric 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 15/16] arm/arm64: ITS: migration tests Eric Auger 2020-01-10 14:54 ` [kvm-unit-tests PATCH v2 16/16] arm/arm64: ITS: pending table migration test Eric Auger 2020-01-13 18:45 ` Andrew Jones 2020-01-15 17:06 ` Auger Eric
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=20200113174457.gg35yyeaftbadqki@kamzik.brq.redhat.com \ --to=drjones@redhat.com \ --cc=andre.przywara@arm.com \ --cc=eric.auger.pro@gmail.com \ --cc=eric.auger@redhat.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=maz@kernel.org \ --cc=qemu-arm@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=thuth@redhat.com \ /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
KVM ARM Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/kvmarm/0 kvmarm/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 kvmarm kvmarm/ https://lore.kernel.org/kvmarm \ kvmarm@lists.cs.columbia.edu public-inbox-index kvmarm Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/edu.columbia.cs.lists.kvmarm AGPL code for this site: git clone https://public-inbox.org/public-inbox.git