[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] [Exynos] Fix to be error handled when 10ms delayed for cpu_on



Hello,

On 04/10/2016 04:04, JEUNGWOO, YOO wrote:
From: casionwoo <casionwoo@xxxxxxxxx>

The "from" should match the signed-off-by below.


Comment of origin code said "wait max 10 ms until cpu is on"
Origin code expects to print "CPU%d power enable failed", if cpu do not on 
until 10ms
But actual code do not reach to print even it wait 10 ms (actually it waits 
11ms not 10ms)
Because the comparing is like bellow
"if ( timeout-- == 0 )"
So I modified the code to wait 10ms and print the error statement
Let me simulate about origin code and modified code.

Origin code)

        timeout            delayed time           timeout
(before while)      (mdelay(1))         (timeout--)
          10                        1                           9
          9                                     2                               
8
          8                                     3                               
7
          7                                     4                               
6
          6                                     5                               
5
          5                                     6                               
4
          4                                     7                               
3
          3                                     8                               
2
          2                                     9                               
1
          1                                     10                              0
          0                                     11                              
-1

Modified code)

        timeout            delayed time           timeout
(before while)      (mdelay(1))         (--timeout)
          10                        1                           9
          9                                     2                               
8
          8                                     3                               
7
          7                                     4                               
6
          6                                     5                               
5
          5                                     6                               
4
          4                                     7                               
3
          3                                     8                               
2
          2                                     9                               
1
          1                                     10                              0

Signed-off-by: JEUNGWOO, YOO <casionwoo@xxxxxxxxx>
---
 xen/arch/arm/platforms/exynos5.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/platforms/exynos5.c b/xen/arch/arm/platforms/exynos5.c
index c43934f..9edd866 100644
--- a/xen/arch/arm/platforms/exynos5.c
+++ b/xen/arch/arm/platforms/exynos5.c
@@ -175,10 +175,10 @@ static int exynos5_cpu_power_up(void __iomem *power, int 
cpu)
         /* wait max 10 ms until cpu is on */
         while ( exynos_cpu_power_state(power, cpu) != S5P_CORE_LOCAL_PWR_EN )
         {
-            if ( timeout-- == 0 )
-                break;
-
             mdelay(1);
+
+            if ( --timeout == 0 )
+                break;

FWIW, this code has been taken from Linux (arch/arm/mach-exynos/platsmp.c). You may want to fix the code there too.

         }

         if ( timeout == 0 )


Regards,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.