diff options
author | John Crispin <john@openwrt.org> | 2008-11-30 16:53:16 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2008-11-30 16:53:16 +0000 |
commit | 10aa4d9e42a87b842af6eb855d4678d37937a656 (patch) | |
tree | 70fa882f0879b17c6e06226b3a896ce2cb4266a6 /package/libertas/src/rx.c | |
parent | 4e61cbbf5e849c008b6c1fbab68219163f7b22b3 (diff) | |
download | upstream-10aa4d9e42a87b842af6eb855d4678d37937a656.tar.gz upstream-10aa4d9e42a87b842af6eb855d4678d37937a656.tar.bz2 upstream-10aa4d9e42a87b842af6eb855d4678d37937a656.zip |
update libertas driver
SVN-Revision: 13447
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: |