On Wed, Dec 02, 2020 at 06:41:02PM +0000, David Brazdil wrote: > Make it possible to retrieve a copy of the psci_0_1_function_ids struct. > This is useful for KVM if it is configured to intercept host's PSCI SMCs. > > Signed-off-by: David Brazdil <dbrazdil@xxxxxxxxxx> Acked-by: Mark Rutland <mark.rutland@xxxxxxx> ... just to check, does KVM snapshot which function IDs are valid, or do we want to add that state here too? That can be a follow-up if necessary. Thanks, Mark. > --- > drivers/firmware/psci/psci.c | 12 +++++------- > include/linux/psci.h | 9 +++++++++ > 2 files changed, 14 insertions(+), 7 deletions(-) > > diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c > index 593fdd0e09a2..f5fc429cae3f 100644 > --- a/drivers/firmware/psci/psci.c > +++ b/drivers/firmware/psci/psci.c > @@ -58,15 +58,13 @@ typedef unsigned long (psci_fn)(unsigned long, unsigned long, > unsigned long, unsigned long); > static psci_fn *invoke_psci_fn; > > -struct psci_0_1_function_ids { > - u32 cpu_suspend; > - u32 cpu_on; > - u32 cpu_off; > - u32 migrate; > -}; > - > static struct psci_0_1_function_ids psci_0_1_function_ids; > > +struct psci_0_1_function_ids get_psci_0_1_function_ids(void) > +{ > + return psci_0_1_function_ids; > +} > + > #define PSCI_0_2_POWER_STATE_MASK \ > (PSCI_0_2_POWER_STATE_ID_MASK | \ > PSCI_0_2_POWER_STATE_TYPE_MASK | \ > diff --git a/include/linux/psci.h b/include/linux/psci.h > index 2a1bfb890e58..4ca0060a3fc4 100644 > --- a/include/linux/psci.h > +++ b/include/linux/psci.h > @@ -34,6 +34,15 @@ struct psci_operations { > > extern struct psci_operations psci_ops; > > +struct psci_0_1_function_ids { > + u32 cpu_suspend; > + u32 cpu_on; > + u32 cpu_off; > + u32 migrate; > +}; > + > +struct psci_0_1_function_ids get_psci_0_1_function_ids(void); > + > #if defined(CONFIG_ARM_PSCI_FW) > int __init psci_dt_init(void); > #else > -- > 2.29.2.454.gaff20da3a2-goog >