On 2025-03-06 20:59, Stefano Stabellini wrote:
On Thu, 6 Mar 2025, Jason Andryuk wrote:
@@ -697,7 +703,7 @@ static int __init alloc_xenstore_evtchn(struct domain *d)
int rc;
alloc.dom = d->domain_id;
- alloc.remote_dom = hardware_domain->domain_id;
+ alloc.remote_dom = xs_domid;
This...
rc = evtchn_alloc_unbound(&alloc, 0);
if ( rc )
{
@@ -767,16 +769,10 @@ static int __init alloc_xenstore_params(struct
kernel_info *kinfo)
struct domain *d = kinfo->d;
int rc = 0;
- if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
- {
- ASSERT(hardware_domain);
- rc = alloc_xenstore_evtchn(d);
This patch looks correct. However, I don't understand why you didn't
keep the call to alloc_xenstore_evtchn in alloc_xenstore_params.
alloc_xenstore_evtchn() needs to be delayed so that xs_domid is available.
Regards,
Jason