On 02.09.2025 00:10, Mykola Kvach wrote: > --- a/xen/common/domain.c > +++ b/xen/common/domain.c > @@ -1317,7 +1317,11 @@ int domain_shutdown(struct domain *d, u8 reason) > d->shutdown_code = reason; > reason = d->shutdown_code; > > +#if defined(CONFIG_SYSTEM_SUSPEND) && defined(CONFIG_ARM) > + if ( reason != SHUTDOWN_suspend && is_hardware_domain(d) ) > +#else > if ( is_hardware_domain(d) ) > +#endif > hwdom_shutdown(reason);
I still don't follow why Arm-specific code needs to live here. If this can't be properly abstracted, then at the very least I'd expect some code comment here, or at the very, very least something in the description. >From looking at hwdom_shutdown() I get the impression that it doesn't expect to be called with SHUTDOWN_suspend, yet then the question is why we make it into domain_shutdown() with that reason code. Jan