diff options
author | Vladimir Davydov <vladimir.davydov@promwad.com> | 2007-09-06 21:41:02 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:52:27 -0400 |
commit | f31ce76b781d15ab6b529663b95223f58171ec80 (patch) | |
tree | 048ae5bd7e5f7009257a9a309576701b40847015 | |
parent | 28de0b36be2a4e7fb0ba7c9a77d61aeb229b27c0 (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.c | 6 |
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)); |