[openib-general] [PATCH] agent: Fix agent_mad_send PCI mapping and gather address and length
Roland Dreier
roland at topspin.com
Tue Nov 9 20:55:46 PST 2004
Roland> OK, I think I understand the problem, but I'm not sure
Roland> what the correct solution is. When a DR SMP arrives at a
Roland> CA from the SM, hop_cnt == hop_ptr == number of hops in
Roland> the directed route,
Hal> What was the number ?
For one port it was 4 and for another it was 6. It could really be
anything (it's just how many hops away the SM is).
Hal> I integrated this patch and checked it back in. I don't think
Hal> this is the solution for all cases (and something else is
Hal> broken).
Could be. I had a hard time checking the code in smi.c (which is
split between smi_handle_dr_smp_recv() and smi_handle_dr_smp_send() as
well as smi_check_forward_dr_smp(), but which has outgoing and
returning DR handling mixed together) against the IB spec (which
splits outgoing and returning DR handling).
Hal> The second call to smi_handle_dr_smp_recv was to validate the
Hal> DR in the response packet before sending it. The response
Hal> would be a returning DR packet (D bit 1). If hop_cnt ==
Hal> hop_ptr,
I guess the problem with calling smi_handle_dr_smp_recv() twice on the
same packet is that the function may alter the packet.
- R.
More information about the general
mailing list