b43: disable pio and pcmcia support
[openwrt.git] / package / libertas / src / rx.c
index 6332fd4..05af731 100644 (file)
@@ -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:
This page took 0.024328 seconds and 4 git commands to generate.