diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-14 16:49:37 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-14 16:49:37 -0500 |
commit | f78cf0dc7b7b13d0550d1e02cf221b65969ff926 (patch) | |
tree | d2bb41e6edb5f70ccb09ed50f5cfb35eda22f844 /drivers/infiniband/core | |
parent | 4cbf8767902c578481ff3df366c77d24fe68fd26 (diff) | |
parent | 7d2babc4874825027848db04d11784070da4456d (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/mad.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index d393b504bf26..c82f47a66e48 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c | |||
@@ -665,7 +665,15 @@ static int handle_outgoing_dr_smp(struct ib_mad_agent_private *mad_agent_priv, | |||
665 | struct ib_wc mad_wc; | 665 | struct ib_wc mad_wc; |
666 | struct ib_send_wr *send_wr = &mad_send_wr->send_wr; | 666 | struct ib_send_wr *send_wr = &mad_send_wr->send_wr; |
667 | 667 | ||
668 | if (!smi_handle_dr_smp_send(smp, device->node_type, port_num)) { | 668 | /* |
669 | * Directed route handling starts if the initial LID routed part of | ||
670 | * a request or the ending LID routed part of a response is empty. | ||
671 | * If we are at the start of the LID routed part, don't update the | ||
672 | * hop_ptr or hop_cnt. See section 14.2.2, Vol 1 IB spec. | ||
673 | */ | ||
674 | if ((ib_get_smp_direction(smp) ? smp->dr_dlid : smp->dr_slid) == | ||
675 | IB_LID_PERMISSIVE && | ||
676 | !smi_handle_dr_smp_send(smp, device->node_type, port_num)) { | ||
669 | ret = -EINVAL; | 677 | ret = -EINVAL; |
670 | printk(KERN_ERR PFX "Invalid directed route\n"); | 678 | printk(KERN_ERR PFX "Invalid directed route\n"); |
671 | goto out; | 679 | goto out; |