From d5b01f7027ab40a9fe9532a63e39ac33ad53e121 Mon Sep 17 00:00:00 2001 From: blogic Date: Sun, 30 Nov 2008 16:53:16 +0000 Subject: update libertas driver git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13447 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/libertas/src/rx.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'package/libertas/src/rx.c') 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: -- cgit v1.2.3