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); Paolo _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm