From: Jan Beulich Date: Mon, 17 May 2021 13:42:32 +0000 (+0200) Subject: Argo/XSM: add SILO hooks X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~517 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=599bca58849effbac4ef03a5986d20e38e26a854;p=xen.git 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 --- 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)