diff options
author | Hal Rosenstock <halr@voltaire.com> | 2005-04-16 18:26:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:26:05 -0400 |
commit | 62241eb497721be7640e5d9330e60f4a88a4db46 (patch) | |
tree | 5bf7d25db72b20d0781190c0e3c72cea94a2ecb3 /drivers/infiniband | |
parent | 48a5346b315183ce482df0909234faf97fa41611 (diff) |
[PATCH] IPoIB: set skb->mac.raw on receive
Set skb->mac.raw on receive. This fixes crashes when this is
dereferenced, for example by netfilter or when PF_PACKET is used.
Signed-off-by: Hal Rosenstock <halr@voltaire.com>
Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_ib.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c index c5a1d45e0ac5..8238766746b2 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c | |||
@@ -201,7 +201,7 @@ static void ipoib_ib_handle_wc(struct net_device *dev, | |||
201 | if (wc->slid != priv->local_lid || | 201 | if (wc->slid != priv->local_lid || |
202 | wc->src_qp != priv->qp->qp_num) { | 202 | wc->src_qp != priv->qp->qp_num) { |
203 | skb->protocol = ((struct ipoib_header *) skb->data)->proto; | 203 | skb->protocol = ((struct ipoib_header *) skb->data)->proto; |
204 | 204 | skb->mac.raw = skb->data; | |
205 | skb_pull(skb, IPOIB_ENCAP_LEN); | 205 | skb_pull(skb, IPOIB_ENCAP_LEN); |
206 | 206 | ||
207 | dev->last_rx = jiffies; | 207 | dev->last_rx = jiffies; |