On Fri, 2024-03-22 at 16:02 +0000, Marc Zyngier wrote: > On Tue, 19 Mar 2024 12:59:06 +0000, > David Woodhouse <dwmw2@xxxxxxxxxxxxx> wrote: > > [...] > > > +static void __init psci_init_system_off2(void) > > +{ > > + int ret; > > + > > + ret = psci_features(PSCI_FN_NATIVE(1_3, SYSTEM_OFF2)); > > + > > + if (ret != PSCI_RET_NOT_SUPPORTED) > > + psci_system_off2_supported = true; > > It'd be worth considering the (slightly broken) case where SYSTEM_OFF2 > is supported, but HIBERNATE_OFF is not set in the response, as the > spec doesn't say that this bit is mandatory (it seems legal to > implement SYSTEM_OFF2 without any hibernate type, making it similar to > SYSTEM_OFF). Such is not my understanding. If SYSTEM_OFF2 is supported, then HIBERNATE_OFF *is* mandatory. The next update to the spec is turning the PSCI_FEATURES response into a *bitmap* of the available features, and I believe it will mandate that bit zero is set. And if for whatever reason that SYSTEM_OFF2/HIBERNATE_OFF call *doesn't* work, Linux will end up doing a 'real' poweroff, first through EFI and then finally as a last resort with a PSCI SYSTEM_OFF. So it would be OK to have false positives in the detection.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature