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
