[openib-general] [PATCH] agent: Fix agent_mad_send PCI mapping and gather address and length

Hal Rosenstock halr at voltaire.com
Tue Nov 9 19:26:07 PST 2004


On Tue, 2004-11-09 at 18:54, Roland Dreier wrote:
> OK, I think I understand the problem, but I'm not sure what the
> correct solution is.  When a DR SMP arrives at a CA from the SM,
> hop_cnt == hop_ptr == number of hops in the directed route,

What was the number ?

> and somehow they are not updated correctly by the time the response
> reaches handle_outgoing_smp().
> 
> I can't follow the code well enough to understand why all DR SMPs have
> to go through both smi_handle_dr_smp_recv() and
> smi_handle_dr_smp_send() but the patch below seems to correct things
> for me (ports go to ACTIVE on all my systems).  (handle_outgoing_smp()
> already calls smi_handle_dr_smp_recv() so it seems the response was
> getting passed to smi_handle_dr_smp_recv() twice).

I integrated this patch and checked it back in. I don't think this is
the solution for all cases (and something else is broken).

The second call to smi_handle_dr_smp_recv was to validate the DR in the
response packet before sending it. The response would be a returning DR
packet (D bit 1). If hop_cnt == hop_ptr,   

I suspect this has been broken since r1163 (not including the other
things I broke in it today).

I will do some more work in understanding this tomorrow.

-- Hal



More information about the general mailing list