d9e469
From b8bb2ed4a751516d32373e478e5c9ea9f16b524d Mon Sep 17 00:00:00 2001
d9e469
From: Mauro Carvalho Chehab <m.chehab@samsung.com>
d9e469
Date: Thu, 15 Aug 2013 17:13:43 -0300
d9e469
Subject: [PATCH 17/32] ras-mc-ctl: Fix the DIMM layout display
d9e469
d9e469
The items weren't being presented at the right order. Fix it.
d9e469
d9e469
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d9e469
---
d9e469
 util/ras-mc-ctl.in |   26 ++++++++++++++++++++------
d9e469
 1 files changed, 20 insertions(+), 6 deletions(-)
d9e469
d9e469
diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in
d9e469
index a7137be..196a643 100755
d9e469
--- a/util/ras-mc-ctl.in
d9e469
+++ b/util/ras-mc-ctl.in
d9e469
@@ -673,15 +673,15 @@ sub register_dimm_labels
d9e469
     return 1;
d9e469
 }
d9e469
 
d9e469
-sub dimm_display_layer($@);
d9e469
+sub dimm_display_layer_rev($@);
d9e469
 
d9e469
-sub dimm_display_layer($@)
d9e469
+sub dimm_display_layer_rev($@)
d9e469
 {
d9e469
     my $layer = shift;
d9e469
     my @pos = @_;
d9e469
 
d9e469
-    $layer--;
d9e469
-    if ($layer < 0) {
d9e469
+    $layer++;
d9e469
+    if ($layer >= scalar(@pos) - 1) {
d9e469
         my $str_loc = join(':', @pos);
d9e469
         my $size = $dimm_size{$str_loc};
d9e469
         if (!$size) {
d9e469
@@ -695,12 +695,26 @@ sub dimm_display_layer($@)
d9e469
     my $s;
d9e469
     for (my $i = 0; $i <= $max_pos[$layer]; $i++) {
d9e469
         $pos[$layer] = $i;
d9e469
-        $s .= dimm_display_layer($layer, @pos);
d9e469
+        $s .= dimm_display_layer_rev($layer, @pos);
d9e469
     }
d9e469
 
d9e469
     return $s;
d9e469
 }
d9e469
 
d9e469
+sub dimm_display_layer(@)
d9e469
+{
d9e469
+    my @pos = @_;
d9e469
+
d9e469
+    my $s;
d9e469
+    for (my $i = 0; $i <= $max_pos[0]; $i++) {
d9e469
+        $pos[0] = $i;
d9e469
+        $s .= dimm_display_layer_rev(0, @pos);
d9e469
+    }
d9e469
+
d9e469
+    return $s;
d9e469
+}
d9e469
+
d9e469
+
d9e469
 sub dimm_display_layer_header($$)
d9e469
 {
d9e469
     my $n_items = 1;
d9e469
@@ -753,7 +767,7 @@ sub dimm_display_mem()
d9e469
         my $p1 = length($s) - 1;
d9e469
 
d9e469
         $pos[scalar(@pos) - 1] = $d;
d9e469
-        $s .= dimm_display_layer(scalar(@pos) - 1, @pos);
d9e469
+        $s .= dimm_display_layer(@pos);
d9e469
         $len += length($s);
d9e469
 
d9e469
         $sep = "-" x $p1;
d9e469
-- 
d9e469
1.7.1
d9e469