| Submitter | ben@bigfootnetworks.com |
|---|---|
| Date | March 23, 2010, 2:16 p.m. |
| Message ID | <A6A1774AFD79E346AE6D49A33CB294530DC19F4A@EX-BE-017-SFO.shared.themessagecenter.com> |
| Download | mbox | patch |
| Permalink | /patch/48341/ |
| State | RFC |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: "Ben Menchaca (ben@bigfootnetworks.com)" <ben@bigfootnetworks.com> Date: Tue, 23 Mar 2010 07:16:58 -0700 >> There's no need to make this so complicated. Just remember the >> value and then refer to it later, when needed. > > Thanks for the sanity adjustment! As suggested, then...hope to hear > from FS soon. Let's get this tested and with a proper commit message and signoff so it can get applied. Thanks! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index b671555..669de02 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -2393,6 +2393,7 @@ struct sk_buff * gfar_new_skb(struct net_device *dev) * as many bytes as needed to align the data properly */ skb_reserve(skb, alignamount); + GFAR_CB(skb)->alignamount = alignamount; return skb; } @@ -2533,13 +2534,13 @@ int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue, int rx_work_limit) newskb = skb; else if (skb) { /* - * We need to reset ->data to what it + * We need to un-reserve() the skb to what it * was before gfar_new_skb() re-aligned * it to an RXBUF_ALIGNMENT boundary * before we put the skb back on the * recycle list. */ - skb->data = skb->head + NET_SKB_PAD; + skb_reserve(skb, -GFAR_CB(skb)->alignamount); __skb_queue_head(&priv->rx_recycle, skb); } } else { diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h index 3d72dc4..3ae2c77 100644 --- a/drivers/net/gianfar.h +++ b/drivers/net/gianfar.h @@ -566,6 +566,12 @@ struct rxfcb { u16 vlctl; /* VLAN control word */ }; +struct gfar_skb_cb { + int alignamount; +}; + +#define GFAR_CB(skb) ((struct gfar_skb_cb *)((skb)->cb)) + struct rmon_mib { u32 tr64; /* 0x.680 - Transmit and Receive 64-byte Frame Counter */