Re: [PATCH v5 4/6] psci: Add hvc call service for ptp_kvm.

From: Thomas Gleixner
Date: Wed Oct 16 2019 - 03:32:14 EST


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