|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] dom0less: Allow arch_parse_dom0less_node() to be fallible
commit 37437464592cfebbb6b31d8169eae86cf3cdf498
Author: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
AuthorDate: Tue Jul 22 13:59:48 2025 +0200
Commit: Stefano Stabellini <stefano.stabellini@xxxxxxx>
CommitDate: Wed Jul 23 13:36:28 2025 -0700
dom0less: Allow arch_parse_dom0less_node() to be fallible
Let the function return an errno, so fallible bindings are not precluded.
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
---
xen/arch/arm/dom0less-build.c | 6 ++++--
xen/common/device-tree/dom0less-build.c | 3 ++-
xen/include/xen/dom0less-build.h | 6 +++---
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 3dea56dc76..c8d07213e2 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -272,8 +272,8 @@ int __init init_vuart(struct domain *d, struct kernel_info
*kinfo,
return rc;
}
-void __init arch_parse_dom0less_node(struct dt_device_node *node,
- struct boot_domain *bd)
+int __init arch_parse_dom0less_node(struct dt_device_node *node,
+ struct boot_domain *bd)
{
struct xen_domctl_createdomain *d_cfg = &bd->create_cfg;
unsigned int flags = bd->create_flags;
@@ -354,6 +354,8 @@ void __init arch_parse_dom0less_node(struct dt_device_node
*node,
if ( !val )
d_cfg->flags &= ~XEN_DOMCTL_CDF_trap_unmapped_accesses;
}
+
+ return 0;
}
int __init init_intc_phandle(struct kernel_info *kinfo, const char *name,
diff --git a/xen/common/device-tree/dom0less-build.c
b/xen/common/device-tree/dom0less-build.c
index 8caceb9f6b..ef4b095d97 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -960,7 +960,8 @@ void __init create_domUs(void)
panic("'llc-colors' found, but LLC coloring is disabled\n");
#endif
- arch_parse_dom0less_node(node, &ki.bd);
+ if ( (rc = arch_parse_dom0less_node(node, &ki.bd)) )
+ panic("error parsing arch-specific dom0less props (rc=%d)", rc);
/*
* The variable max_init_domid is initialized with zero, so here it's
diff --git a/xen/include/xen/dom0less-build.h b/xen/include/xen/dom0less-build.h
index 8f3f90ae2a..72ca8f5e6d 100644
--- a/xen/include/xen/dom0less-build.h
+++ b/xen/include/xen/dom0less-build.h
@@ -9,7 +9,7 @@ struct domain;
#ifdef CONFIG_DOM0LESS_BOOT
-struct xen_domctl_createdomain;
+struct boot_domain;
struct dt_device_node;
struct kernel_info;
@@ -45,8 +45,8 @@ void create_domUs(void);
bool is_dom0less_mode(void);
void set_xs_domain(struct domain *d);
-void arch_parse_dom0less_node(struct dt_device_node *node,
- struct boot_domain *bd);
+int arch_parse_dom0less_node(struct dt_device_node *node,
+ struct boot_domain *bd);
int init_vuart(struct domain *d, struct kernel_info *kinfo,
const struct dt_device_node *node);
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |