diff options
author | John Crispin <blogic@openwrt.org> | 2008-11-30 16:53:16 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2008-11-30 16:53:16 +0000 |
commit | 5350ce25de0bab3ed09c5ee2ed6feed4a311a105 (patch) | |
tree | 2e0a220a54db9e073044a32285a6f170cd67869d /package/libertas/src/rx.c | |
parent | 4a52e64bb85b03b4b9902ebdda2cb39f7132eebd (diff) | |
download | upstream-5350ce25de0bab3ed09c5ee2ed6feed4a311a105.tar.gz upstream-5350ce25de0bab3ed09c5ee2ed6feed4a311a105.tar.bz2 upstream-5350ce25de0bab3ed09c5ee2ed6feed4a311a105.zip |
update libertas driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13447 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/libertas/src/rx.c')
-rw-r--r-- | package/libertas/src/rx.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/package/libertas/src/rx.c b/package/libertas/src/rx.c index 6332fd451a..05af7316f6 100644 --- a/package/libertas/src/rx.c +++ b/package/libertas/src/rx.c @@ -145,17 +145,17 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb) struct net_device *dev = priv->dev; struct rxpackethdr *p_rx_pkt; struct rxpd *p_rx_pd; - int hdrchop; struct ethhdr *p_ethhdr; - const u8 rfc1042_eth_hdr[] = { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 }; lbs_deb_enter(LBS_DEB_RX); + BUG_ON(!skb); + skb->ip_summed = CHECKSUM_NONE; - if (priv->monitormode != LBS_MONITOR_OFF) + if (priv->monitormode) return process_rxed_802_11_packet(priv, skb); p_rx_pkt = (struct rxpackethdr *) skb->data; @@ -247,7 +247,10 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb) priv->stats.rx_packets++; skb->protocol = eth_type_trans(skb, dev); - netif_rx(skb); + if (in_interrupt()) + netif_rx(skb); + else + netif_rx_ni(skb); ret = 0; done: |