diff mbox

[xen-unstable-smoke,test] 85178: regressions - FAIL

Message ID 56D8428D.70908@huawei.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shannon Zhao March 3, 2016, 1:56 p.m. UTC
On 2016/3/3 21:38, Shannon Zhao wrote:
> 
> 
> On 2016/3/3 20:53, Jan Beulich wrote:
>>>>> On 03.03.16 at 12:18, <osstest-admin@xenproject.org> wrote:
>>>> flight 85178 xen-unstable-smoke real [real]
>>>> http://logs.test-lab.xenproject.org/osstest/logs/85178/ 
>>>>
>>>> Regressions :-(
>>>>
>>>> Tests which did not succeed and are blocking,
>>>> including tests which could not be run:
>>>>  test-armhf-armhf-xl           6 xen-boot                  fail REGR. vs. 85080
>> Unless this is a spurious failure, would one of you please look into
>> this? The complete lack of Xen messages in the log after the most
>> recent host install may suggest that a boot attempt failed very
>> early.
> Ah, sorry for this. I'm looking at this and have reproduced this.
> 
> It fails with below log:
> 
> (XEN) Xen call trace:
> (XEN)    [<0000000000204f08>] dt_irq_translate+0x14/0x58 (PC)
> (XEN)    [<0000000000205244>] dt_device_get_irq+0x2c/0x38 (LR)
> (XEN)    [<0000000000205244>] dt_device_get_irq+0x2c/0x38
> (XEN)    [<000000000024ab54>] platform_get_irq+0x14/0x44
> (XEN)    [<000000000028f088>] preinit_xen_time+0x8c/0x120
> (XEN)    [<000000000028ddc0>] start_xen+0x554/0xc8c
> (XEN)    [<000000000020061c>] arm64/head.o#paging+0x84/0xbc
> (XEN)
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Assertion 'dt_irq_xlate != NULL' failed at device_tree.c:1452
> 
With the attached patch, this problem disappeared.
Do I need to update the original patch or send a new one?

Thanks,
diff mbox

Patch

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;
+        }
+    }
+
     /* Check that this CPU supports the Generic Timer interface */
     if ( !cpu_has_gentimer )
         panic("CPU does not support the Generic Timer v1 interface");