Subject: [PATCH v3 2/9] clocksource: arm_arch_timer: Extend arch_timer_kvm_info to get the virtual IRQ

From: [email-masked] (Christoffer Dall)
Date: Tue, 8 Mar 2016 19:27:13 -0800

On Tue, Mar 08, 2016 at 11:29:26AM +0000, Julien Grall wrote:
> Currently, the firmware table is parsed by the virtual timer code in
> order to retrieve the virtual timer interrupt. However, this is already
> done by the arch timer driver.
> 
> To avoid code duplication, extend arch_timer_kvm_info to get the virtual
> IRQ.
> 
> Note that the KVM code will be modified in a subsequent patch.
> 
> Signed-off-by: Julien Grall <[email-masked]>
> 
> ---
> Cc: Daniel Lezcano <[email-masked]>
> Cc: Thomas Gleixner <[email-masked]>
> Cc: Marc Zyngier <[email-masked]>
> 
>     Changes in v3:
>         - Move the KVM changes in a separate patch and rename the patch
>         - Move the initialization of the virtual_irq to
>         arch_timer_common_init
> ---
>  drivers/clocksource/arm_arch_timer.c | 2 ++
>  include/clocksource/arm_arch_timer.h | 1 +
>  2 files changed, 3 insertions(+)
> 
> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> index b7ab588..d8887f3 100644
> --- a/drivers/clocksource/arm_arch_timer.c
> +++ b/drivers/clocksource/arm_arch_timer.c
> @@ -701,6 +701,8 @@ static void __init arch_timer_common_init(void)
>  	arch_timer_banner(arch_timers_present);
>  	arch_counter_register(arch_timers_present);
>  	arch_timer_arch_init();
> +
> +	arch_timer_kvm_info.virtual_irq = arch_timer_ppi[VIRT_PPI];

why is this in common_init and not just in init?

>  }
>  
>  static void __init arch_timer_init(void)
> diff --git a/include/clocksource/arm_arch_timer.h b/include/clocksource/arm_arch_timer.h
> index 9101ed6b..9dd996a 100644
> --- a/include/clocksource/arm_arch_timer.h
> +++ b/include/clocksource/arm_arch_timer.h
> @@ -51,6 +51,7 @@ enum arch_timer_reg {
>  
>  struct arch_timer_kvm_info {
>  	struct timecounter timecounter;
> +	int virtual_irq;
>  };
>  
>  #ifdef CONFIG_ARM_ARCH_TIMER
> -- 
> 1.9.1
>