From f31ce76b781d15ab6b529663b95223f58171ec80 Mon Sep 17 00:00:00 2001
From: Vladimir Davydov <vladimir.davydov@promwad.com>
Date: Thu, 6 Sep 2007 21:41:02 -0400
Subject: [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>
---
 drivers/net/wireless/libertas/if_cs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index e74ec5c..0360cad 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)
 	}
 
 	//TODO: skb = dev_alloc_skb(len+ETH_FRAME_LEN+MRVDRV_SNAP_HEADER_LEN+EXTRA_LEN);
-	skb = dev_alloc_skb(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE);
+	skb = dev_alloc_skb(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE + 2);
 	if (!skb)
 		goto out;
-	data = skb_put(skb, len);
+	skb_put(skb, len);
+	skb_reserve(skb, 2);/* 16 byte align */
+	data = skb->data;
 
 	/* read even number of bytes, then odd byte if necessary */
 	if_cs_read16_rep(priv->card, IF_CS_H_READ, data, len/sizeof(u16));
-- 
cgit v1.1