If you cat /sys/class/infiniband/<hca>/ports/1/phys_state,
you will see it returns "5: <unknown>".
This is because the backport patch core_z0010_sysfs_race.patch
changed "return sprintf(...);" to "ret = sprintf(...);"
without adding "break;". Thus, the last sprintf has effect.

Signed-off-by: Ralph Campbell <[email protected]>

diff -up a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
--- a/drivers/infiniband/core/sysfs.c   2009-04-03 12:18:38.000000000 -0700
+++ b/drivers/infiniband/core/sysfs.c   2009-04-03 12:02:31.000000000 -0700
@@ -246,14 +246,29 @@ static ssize_t phys_state_show(struct ib
                ret = ib_query_port(p->ibdev, p->port_num, &attr);
                if (!ret) {
                        switch (attr.phys_state) {
-                       case 1:  ret = sprintf(buf, "1: Sleep\n");
-                       case 2:  ret = sprintf(buf, "2: Polling\n");
-                       case 3:  ret = sprintf(buf, "3: Disabled\n");
-                       case 4:  ret = sprintf(buf, "4: 
PortConfigurationTraining\n");
-                       case 5:  ret = sprintf(buf, "5: LinkUp\n");
-                       case 6:  ret = sprintf(buf, "6: LinkErrorRecovery\n");
-                       case 7:  ret = sprintf(buf, "7: Phy Test\n");
-                       default: ret = sprintf(buf, "%d: <unknown>\n", 
attr.phys_state);
+                       case 1:
+                               ret = sprintf(buf, "1: Sleep\n");
+                               break;
+                       case 2:
+                               ret = sprintf(buf, "2: Polling\n");
+                               break;
+                       case 3:
+                               ret = sprintf(buf, "3: Disabled\n");
+                               break;
+                       case 4:
+                               ret = sprintf(buf, "4: 
PortConfigurationTraining\n");
+                               break;
+                       case 5:
+                               ret = sprintf(buf, "5: LinkUp\n");
+                               break;
+                       case 6:
+                               ret = sprintf(buf, "6: LinkErrorRecovery\n");
+                               break;
+                       case 7:
+                               ret = sprintf(buf, "7: Phy Test\n");
+                               break;
+                       default:
+                               ret = sprintf(buf, "%d: <unknown>\n", 
attr.phys_state);
                        }
                }
        }


_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to