On 07/08/2019 14:39, Steven Price wrote: > On 03/08/2019 18:34, Marc Zyngier wrote: >> On Sat, 3 Aug 2019 13:51:13 +0100 >> Marc Zyngier <maz@xxxxxxxxxx> wrote: >> >> [forgot that one] >> >>> On Fri, 2 Aug 2019 15:50:14 +0100 >>> Steven Price <steven.price@xxxxxxx> wrote: >> >> [...] >> >>>> +static int __init kvm_pvtime_init(void) >>>> +{ >>>> + kvm_register_device_ops(&pvtime_ops, KVM_DEV_TYPE_ARM_PV_TIME); >>>> + >>>> + return 0; >>>> +} >>>> + >>>> +late_initcall(kvm_pvtime_init); >> >> Why is it an initcall? So far, the only initcall we've used is the one >> that initializes KVM itself. Can't we just the device_ops just like we >> do for the vgic? > > So would you prefer a direct call from init_subsystems() in > virt/kvm/arm/arm.c? Yes. Consistency is important. > The benefit of initcall is just that it keeps the code self-contained. > In init_subsystems() I'd either need a #ifdef CONFIG_ARM64 or a dummy > function for arm. Having a dummy function for 32bit ARM is fine. Most of the code we add to the 32bit port is made of empty stubs anyway. Thanks, M. -- Jazz is not dead, it just smells funny...