projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0ed3c59
)
IB/ipath: Discard multicast packets without a GRH
author
Bryan O'Sullivan
<bos@pathscale.com>
Thu, 15 Mar 2007 21:45:03 +0000
(14:45 -0700)
committer
Roland Dreier
<rolandd@cisco.com>
Thu, 19 Apr 2007 03:20:57 +0000
(20:20 -0700)
This patch fixes a bug where multicast packets without a GRH were not
being dropped as per the IB spec.
Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_verbs.c
patch
|
blob
|
history
diff --git
a/drivers/infiniband/hw/ipath/ipath_verbs.c
b/drivers/infiniband/hw/ipath/ipath_verbs.c
index 9bec5a9b4557ec8cd18cd363f33477ac58d706f8..f5604b876500a8d203240757743ae093aaadbb3c 100644
(file)
--- a/
drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/
drivers/infiniband/hw/ipath/ipath_verbs.c
@@
-438,6
+438,10
@@
void ipath_ib_rcv(struct ipath_ibdev *dev, void *rhdr, void *data,
struct ipath_mcast *mcast;
struct ipath_mcast_qp *p;
+ if (lnh != IPATH_LRH_GRH) {
+ dev->n_pkt_drops++;
+ goto bail;
+ }
mcast = ipath_mcast_find(&hdr->u.l.grh.dgid);
if (mcast == NULL) {
dev->n_pkt_drops++;
@@
-445,8
+449,7
@@
void ipath_ib_rcv(struct ipath_ibdev *dev, void *rhdr, void *data,
}
dev->n_multicast_rcv++;
list_for_each_entry_rcu(p, &mcast->qp_list, list)
- ipath_qp_rcv(dev, hdr, lnh == IPATH_LRH_GRH, data,
- tlen, p->qp);
+ ipath_qp_rcv(dev, hdr, 1, data, tlen, p->qp);
/*
* Notify ipath_multicast_detach() if it is waiting for us
* to finish.