Hal Rosenstock wrote: > On Wed, Jun 3, 2009 at 3:28 AM, Eli Dorfman (Voltaire) > <[email protected]> wrote: >> Hal Rosenstock wrote: >>> On Sun, May 31, 2009 at 10:44 AM, Eli Dorfman (Voltaire) >>> <[email protected]> wrote: >>>> Do not change logical state on SubnAdmSet >>> The method is SubnSet r.t. SubnAdmSet. Subject might also indicate >>> ibportstate.c and it would be clearer saying logical port state r.t. >>> just logical state. >> correct. my mistake. > > Should an updated patch for this be reissued ?
No, the patch is correct. The error was in the commit message. Eli > > -- Hal > >>> -- Hal >>> >>>> When changing physical state do not change logical port state. >>>> >From the IB spec When writing PortInfo:PortState, only legal transitions >>>> >are >>>> valid. So if PortState is ACTIVE and we try to set it to ACTIVE this will >>>> fail. >>>> >>>> This patch allows reset in a single MAD. >>>> >>>> Signed-off-by: Eli Dorfman <[email protected]> >>>> --- >>>> infiniband-diags/src/ibportstate.c | 5 ++++- >>>> 1 files changed, 4 insertions(+), 1 deletions(-) >>>> >>>> diff --git a/infiniband-diags/src/ibportstate.c >>>> b/infiniband-diags/src/ibportstate.c >>>> index 65c9ca1..d19a2e5 100644 >>>> --- a/infiniband-diags/src/ibportstate.c >>>> +++ b/infiniband-diags/src/ibportstate.c >>>> @@ -275,8 +275,10 @@ int main(int argc, char **argv) >>>> >>>> /* Only if one of the "set" options is chosen */ >>>> if (port_op) { >>>> - if (port_op == 1) /* Enable port */ >>>> + if (port_op == 1) { /* Enable port */ >>>> mad_set_field(data, 0, IB_PORT_PHYS_STATE_F, 2); >>>> /* Polling */ >>>> + mad_set_field(data, 0, IB_PORT_STATE_F, 0); >>>> /* No Change */ >>>> + } >>>> else if ((port_op == 2) || (port_op == 3)) { /* Disable >>>> port */ >>>> mad_set_field(data, 0, IB_PORT_STATE_F, 1); >>>> /* Down */ >>>> mad_set_field(data, 0, IB_PORT_PHYS_STATE_F, 3); >>>> /* Disabled */ >>>> @@ -292,6 +294,7 @@ int main(int argc, char **argv) >>>> >>>> if (port_op == 3) { /* Reset port - so also enable */ >>>> mad_set_field(data, 0, IB_PORT_PHYS_STATE_F, 2); >>>> /* Polling */ >>>> + mad_set_field(data, 0, IB_PORT_STATE_F, 0); >>>> /* No Change */ >>>> err = set_port_info(&portid, data, portnum, >>>> port_op); >>>> if (err < 0) >>>> IBERROR("smp set portinfo failed"); >>>> -- >>>> 1.5.5 >>>> >>>> _______________________________________________ >>>> general mailing list >>>> [email protected] >>>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general >>>> >>>> To unsubscribe, please visit >>>> http://openib.org/mailman/listinfo/openib-general >>>> >> _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
