[PATCH 1/2] libertas: fix oops on the blackfin architecture

Vladimir Davydov vladimir.davydov at promwad.com
Fri Aug 31 10:13:01 EDT 2007


Reserve two bytes to align pointer to the IP header.
Initialize skb->dev pointer to current device.

Signed-off-by: Vladimir Davydov <vladimir.davydov at promwad.com>

---

diff -Naur libertas.orig/if_cs.c libertas/if_cs.c
--- libertas.orig/if_cs.c       2007-08-30 15:45:59.000000000 +0300
+++ libertas/if_cs.c    2007-08-31 15:30:55.000000000 +0300
@@ -398,10 +398,13 @@
        }

        //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->dev = priv->dev;
+       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));


-- 
Best regards!



More information about the libertas-dev mailing list