From: Viktor Mitin <viktor.mitin.19@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Viktor Mitin <viktor_mitin@epam.com>,
Julien Grall <julien.grall@arm.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
Viktor Mitin <viktor.mitin.19@gmail.com>
Subject: [Xen-devel] [PATCH v8 1/2] xen/arm: extend fdt_property_interrupts to support DomU
Date: Wed, 7 Aug 2019 15:57:24 +0300 [thread overview]
Message-ID: <20190807125725.31683-2-viktor.mitin.19@gmail.com> (raw)
In-Reply-To: <20190807125725.31683-1-viktor.mitin.19@gmail.com>
The domain and fdt can be found in the structure kinfo.
Rather than adding a an extra argument for the domain, pass directly kinfo.
This also requires to adapt fdt_property_interrupts() prototype.
A follow-up patch will need to create the interrupts for either Dom0 or DomU.
Suggested-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Viktor Mitin <viktor_mitin@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
---
v7: removed extra space after sizeof in fdt_property_interrupts()
v8: updated commit message
---
xen/arch/arm/domain_build.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 4c8404155a..26cd0ae12c 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -621,17 +621,20 @@ static void __init set_interrupt(gic_interrupt_t interrupt,
* "interrupts": contains the list of interrupts
* "interrupt-parent": link to the GIC
*/
-static int __init fdt_property_interrupts(void *fdt, gic_interrupt_t *intr,
+static int __init fdt_property_interrupts(const struct kernel_info *kinfo,
+ gic_interrupt_t *intr,
unsigned num_irq)
{
int res;
+ uint32_t phandle = is_hardware_domain(kinfo->d) ?
+ dt_interrupt_controller->phandle : GUEST_PHANDLE_GIC;
- res = fdt_property(fdt, "interrupts", intr, sizeof (intr[0]) * num_irq);
+ res = fdt_property(kinfo->fdt, "interrupts",
+ intr, sizeof(intr[0]) * num_irq);
if ( res )
return res;
- res = fdt_property_cell(fdt, "interrupt-parent",
- dt_interrupt_controller->phandle);
+ res = fdt_property_cell(kinfo->fdt, "interrupt-parent", phandle);
return res;
}
@@ -733,7 +736,7 @@ static int __init make_hypervisor_node(struct domain *d,
* TODO: Handle properly the cpumask;
*/
set_interrupt(intr, d->arch.evtchn_irq, 0xf, DT_IRQ_TYPE_LEVEL_LOW);
- res = fdt_property_interrupts(fdt, &intr, 1);
+ res = fdt_property_interrupts(kinfo, &intr, 1);
if ( res )
return res;
@@ -960,8 +963,9 @@ static int __init make_gic_node(const struct domain *d, void *fdt,
return res;
}
-static int __init make_timer_node(const struct domain *d, void *fdt)
+static int __init make_timer_node(const struct kernel_info *kinfo)
{
+ void *fdt = kinfo->fdt;
static const struct dt_device_match timer_ids[] __initconst =
{
DT_MATCH_COMPATIBLE("arm,armv7-timer"),
@@ -1016,7 +1020,7 @@ static int __init make_timer_node(const struct domain *d, void *fdt)
dt_dprintk(" Virt interrupt %u\n", irq);
set_interrupt(intrs[2], irq, 0xf, DT_IRQ_TYPE_LEVEL_LOW);
- res = fdt_property_interrupts(fdt, intrs, 3);
+ res = fdt_property_interrupts(kinfo, intrs, 3);
if ( res )
return res;
@@ -1377,7 +1381,7 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
if ( device_get_class(node) == DEVICE_GIC )
return make_gic_node(d, kinfo->fdt, node);
if ( dt_match_node(timer_matches, node) )
- return make_timer_node(d, kinfo->fdt);
+ return make_timer_node(kinfo);
/* Skip nodes used by Xen */
if ( dt_device_used_by(node) == DOMID_XEN )
--
2.17.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-08-07 12:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-07 12:57 [Xen-devel] [PATCH v8 0/2] xen/arm: Consolidate make_timer_node and make_timer_domU_node Viktor Mitin
2019-08-07 12:57 ` Viktor Mitin [this message]
2019-08-07 12:57 ` [Xen-devel] [PATCH v8 2/2] xen/arm: consolidate " Viktor Mitin
2019-08-07 13:02 ` [Xen-devel] [PATCH v8 0/2] xen/arm: Consolidate " Julien Grall
2019-08-14 10:14 ` Julien Grall
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=20190807125725.31683-2-viktor.mitin.19@gmail.com \
--to=viktor.mitin.19@gmail.com \
--cc=Volodymyr_Babchuk@epam.com \
--cc=julien.grall@arm.com \
--cc=sstabellini@kernel.org \
--cc=viktor_mitin@epam.com \
--cc=xen-devel@lists.xenproject.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).