[ofa-general] [PATCH] infiniband-diags: Do not change logical state on SubnAdmSet
Hal Rosenstock
hal.rosenstock at gmail.com
Wed Jun 3 04:59:40 PDT 2009
On Wed, Jun 3, 2009 at 7:57 AM, Eli Dorfman (Voltaire)
<dorfman.eli at gmail.com> wrote:
> Hal Rosenstock wrote:
>> On Wed, Jun 3, 2009 at 3:28 AM, Eli Dorfman (Voltaire)
>> <dorfman.eli at gmail.com> wrote:
>>> Hal Rosenstock wrote:
>>>> On Sun, May 31, 2009 at 10:44 AM, Eli Dorfman (Voltaire)
>>>> <dorfman.eli at gmail.com> 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.
IMO it would be better to have the commit message accurate.
-- Hal
> 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 <elid at voltaire.com>
>>>>> ---
>>>>> 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
>>>>> general at lists.openfabrics.org
>>>>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>>>>>
>>>>> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>>>>>
>>>
>
>
More information about the general
mailing list