[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] arm/timer: fix panic when booting with DT
On Fri, 4 Mar 2016, Shannon Zhao wrote: > 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> > --- > v2: refactor the codes as a small function Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > xen/arch/arm/time.c | 30 +++++++++++++++++++----------- > 1 file changed, 19 insertions(+), 11 deletions(-) > > diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c > index 5f8f974..7dae28b 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) > @@ -165,9 +154,28 @@ void __init preinit_xen_time(void) > boot_count = READ_SYSREG64(CNTPCT_EL0); > } > > +static void __init init_dt_xen_time(void) > +{ > + int res; > + unsigned int i; > + > + /* 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; > + } > +} > + > /* Set up the timer on the boot CPU (late init function) */ > int __init init_xen_time(void) > { > + if ( acpi_disabled ) > + init_dt_xen_time(); > + > /* Check that this CPU supports the Generic Timer interface */ > if ( !cpu_has_gentimer ) > panic("CPU does not support the Generic Timer v1 interface"); > -- > 2.1.0 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |