On 19.05.2025 22:12, dm...@proton.me wrote: > --- a/xen/arch/arm/vpl011.c > +++ b/xen/arch/arm/vpl011.c > @@ -78,12 +78,11 @@ static void vpl011_write_data_xen(struct domain *d, > uint8_t data) > unsigned long flags; > struct vpl011 *vpl011 = &d->arch.vpl011; > struct vpl011_xen_backend *intf = vpl011->backend.xen; > - struct domain *input = console_get_domain(); > > VPL011_LOCK(d, flags); > > intf->out[intf->out_prod++] = data; > - if ( d == input ) > + if ( d->domain_id == console_get_domid() )
How do you know d isn't a domain different from the one that was the console "owner" prior to being destroyed? Original code guaranteed this up to ... > @@ -123,8 +122,6 @@ static void vpl011_write_data_xen(struct domain *d, > uint8_t data) > vpl011_update_interrupt_status(d); > > VPL011_UNLOCK(d, flags); > - > - console_put_domain(input); ... here. Jan