On Wed, 16 Oct 2019, Paolo Bonzini wrote: > On 15/10/19 12:48, Jianyong Wu wrote: > > diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c > > index 07e57a49d1e8..3597f1f27b10 100644 > > --- a/drivers/clocksource/arm_arch_timer.c > > +++ b/drivers/clocksource/arm_arch_timer.c > > @@ -1634,3 +1634,8 @@ static int __init arch_timer_acpi_init(struct acpi_table_header *table) > > } > > TIMER_ACPI_DECLARE(arch_timer, ACPI_SIG_GTDT, arch_timer_acpi_init); > > #endif > > + > > +bool is_arm_arch_counter(void *cs) > > +{ > > + return (struct clocksource *)cs == &clocksource_counter; > > +} > > As Thomas pointed out, any reason to have a void * here? > > However, since he didn't like modifying the struct, here is an > alternative idea: > > 1) add a "struct clocksource*" argument to ktime_get_snapshot > > 2) return -ENODEV if the argument is not NULL and is not the current > clocksource > > 3) move the implementation of the hypercall to > drivers/clocksource/arm_arch_timer.c, so that it can call > ktime_get_snapshot(&systime_snapshot, &clocksource_counter); And then you implement a gazillion of those functions for every arch/subarch which has a similar requirement. Pointless exercise. Having the ID is trivial enough and the storage space is not really a concern. Thanks, tglx _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm