|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] arm/timer: fix panic when booting with DT
On Thu, 3 Mar 2016, Shannon Zhao wrote:
> From: Shannon Zhao <shannon.zhao@xxxxxxxxxx>
>
> While to support ACPI, patch "arm/acpi: Parse GTDT to initialize timer"
> refactors the functions preinit_xen_time and init_xen_time. But it
> wrongly moves the platform_get_irq from init_xen_time to
> preinit_dt_xen_time and this will cause booting failure.
>
> So move platform_get_irq back to init_xen_time to fix it.
>
> Signed-off-by: Shannon Zhao <shannon.zhao@xxxxxxxxxx>
Shannon,
thank you for fixing the issue so quickly, very appreciated!
> xen/arch/arm/time.c | 27 ++++++++++++++++-----------
> 1 file changed, 16 insertions(+), 11 deletions(-)
>
> diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
> index 5f8f974..66a4520 100644
> --- a/xen/arch/arm/time.c
> +++ b/xen/arch/arm/time.c
> @@ -119,7 +119,6 @@ static void __init preinit_dt_xen_time(void)
> };
> int res;
> u32 rate;
> - unsigned int i;
>
> timer = dt_find_matching_node(NULL, timer_ids);
> if ( !timer )
> @@ -133,16 +132,6 @@ static void __init preinit_dt_xen_time(void)
> cpu_khz = rate / 1000;
> timer_dt_clock_frequency = rate;
> }
> -
> - /* Retrieve all IRQs for the timer */
> - for ( i = TIMER_PHYS_SECURE_PPI; i < MAX_TIMER_PPI; i++ )
> - {
> - res = platform_get_irq(timer, i);
> -
> - if ( res < 0 )
> - panic("Timer: Unable to retrieve IRQ %u from the device tree",
> i);
> - timer_irq[i] = res;
> - }
> }
>
> void __init preinit_xen_time(void)
> @@ -168,6 +157,22 @@ void __init preinit_xen_time(void)
> /* Set up the timer on the boot CPU (late init function) */
> int __init init_xen_time(void)
> {
> + int res;
> + unsigned int i;
> +
> + if ( acpi_disabled )
> + {
> + /* Retrieve all IRQs for the timer */
> + for ( i = TIMER_PHYS_SECURE_PPI; i < MAX_TIMER_PPI; i++ )
> + {
> + res = platform_get_irq(timer, i);
> +
> + if ( res < 0 )
> + panic("Timer: Unable to retrieve IRQ %u from the device
> tree", i);
> + timer_irq[i] = res;
> + }
> + }
Could you please introduce a small little init_dt_xen_time function and
call that instead from here? Thanks!
> /* Check that this CPU supports the Generic Timer interface */
> if ( !cpu_has_gentimer )
> panic("CPU does not support the Generic Timer v1 interface");
> --
> 2.0.4
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |