From 599bca58849effbac4ef03a5986d20e38e26a854 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 17 May 2021 15:42:32 +0200 Subject: [PATCH] Argo/XSM: add SILO hooks In SILO mode restrictions for inter-domain communication should apply here along the lines of those for evtchn and gnttab. Signed-off-by: Jan Beulich Reviewed-by: Daniel P. Smith --- xen/xsm/silo.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/xen/xsm/silo.c b/xen/xsm/silo.c index 4850756a3d..fc2ca5cd2d 100644 --- a/xen/xsm/silo.c +++ b/xen/xsm/silo.c @@ -81,12 +81,35 @@ static int silo_grant_copy(struct domain *d1, struct domain *d2) return -EPERM; } +#ifdef CONFIG_ARGO + +static int silo_argo_register_single_source(const struct domain *d1, + const struct domain *d2) +{ + if ( silo_mode_dom_check(d1, d2) ) + return xsm_argo_register_single_source(d1, d2); + return -EPERM; +} + +static int silo_argo_send(const struct domain *d1, const struct domain *d2) +{ + if ( silo_mode_dom_check(d1, d2) ) + return xsm_argo_send(d1, d2); + return -EPERM; +} + +#endif + static struct xsm_operations silo_xsm_ops = { .evtchn_unbound = silo_evtchn_unbound, .evtchn_interdomain = silo_evtchn_interdomain, .grant_mapref = silo_grant_mapref, .grant_transfer = silo_grant_transfer, .grant_copy = silo_grant_copy, +#ifdef CONFIG_ARGO + .argo_register_single_source = silo_argo_register_single_source, + .argo_send = silo_argo_send, +#endif }; void __init silo_init(void) -- 2.30.2