diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-11-30 16:53:16 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-11-30 16:53:16 +0000 |
commit | d5b01f7027ab40a9fe9532a63e39ac33ad53e121 (patch) | |
tree | 2e0a220a54db9e073044a32285a6f170cd67869d /package/libertas/src/rx.c | |
parent | 6ca0b59753e9e228bcb4d3b49677bbc6ea78ae52 (diff) |
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 6332fd451..05af7316f 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: |