aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Davydov <vladimir.davydov@promwad.com>2007-09-06 21:41:02 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:52:27 -0400
commitf31ce76b781d15ab6b529663b95223f58171ec80 (patch)
tree048ae5bd7e5f7009257a9a309576701b40847015
parent28de0b36be2a4e7fb0ba7c9a77d61aeb229b27c0 (diff)
[LIBERTAS]: fix oops on the blackfin architecture
Reserve two bytes to align pointer to the IP header. Signed-off-by: Vladimir Davydov <vladimir.davydov@promwad.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/wireless/libertas/if_cs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index e74ec5c309be..0360cad363a8 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -402,10 +402,12 @@ static struct sk_buff *if_cs_receive_data(wlan_private *priv)
402 } 402 }
403 403
404 //TODO: skb = dev_alloc_skb(len+ETH_FRAME_LEN+MRVDRV_SNAP_HEADER_LEN+EXTRA_LEN); 404 //TODO: skb = dev_alloc_skb(len+ETH_FRAME_LEN+MRVDRV_SNAP_HEADER_LEN+EXTRA_LEN);
405 skb = dev_alloc_skb(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE); 405 skb = dev_alloc_skb(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE + 2);
406 if (!skb) 406 if (!skb)
407 goto out; 407 goto out;
408 data = skb_put(skb, len); 408 skb_put(skb, len);
409 skb_reserve(skb, 2);/* 16 byte align */
410 data = skb->data;
409 411
410 /* read even number of bytes, then odd byte if necessary */ 412 /* read even number of bytes, then odd byte if necessary */
411 if_cs_read16_rep(priv->card, IF_CS_H_READ, data, len/sizeof(u16)); 413 if_cs_read16_rep(priv->card, IF_CS_H_READ, data, len/sizeof(u16));