[ofa-general] Re: PATCH 1/1 - fix kernel crash in mad.c when IB_MAD_RESULT_(SUCCESS|CONSUMED) returned

Dave Olson dave.olson at qlogic.com
Tue May 20 15:44:47 PDT 2008


On Tue, 20 May 2008, Roland Dreier wrote:

|  > Yes,  you are right about the fact that it should be set, but apparently
|  > all callers are simply checking for a return value > 0, because the
|  > packet is only sent once (return values > 1 have no defined meaning so
|  > I'm not surprised the callers just check > 0).
| 
| In my tree (ie the upstream kernel) I see only one place
| handle_outgoing_dr_smp() is called, and it looks like:
| 
|                         ret = handle_outgoing_dr_smp(mad_agent_priv,
|                                                      mad_send_wr);
|                         if (ret < 0)            /* error */
|                                 goto error;
|                         else if (ret == 1)      /* locally consumed */
|                                 continue;
| 
| so I'm not sure I understand what you mean.  Clearly ret == 1 i special
| (any other positive return value is treated like 0).

Indeed, I see that also, now that I look again more carefully.
We definitely didn't see an infinite attempt to send the packet,
so something else must have cleaned that up for us.  Anyway, returning
1 is clearly the right answer.

|  > Do you want me to resubmit it that way, or do you want to make the
|  > change?
| 
| I can fix it up locally but you are in charge of making sure that OFED
| 1.3.1 gets what you want it to.

Thanks, and yes, we'll do that for OFED 1.3.1

Dave Olson
dave.olson at qlogic.com



More information about the general mailing list