if (!priv->ieee->host_decrypt) 
if (!priv->ieee->host_decrypt && priv->ieee->iw_mode != IW_MODE_MONITOR) 
static void ipw_handle_data_packet(struct ipw_priv *priv,				   struct ipw_rx_mem_buffer *rxb,				   struct ieee80211_rx_stats *stats){	struct ipw_rx_packet *pkt = (struct ipw_rx_packet *)rxb->skb->data;	/* We received data from the HW, so stop the watchdog */	priv->net_dev->trans_start = jiffies;	/* We only process data packets if the	 * interface is open */	if (unlikely((le16_to_cpu(pkt->u.frame.length) + IPW_RX_FRAME_SIZE) >		     skb_tailroom(rxb->skb))) {		priv->ieee->stats.rx_errors++;		priv->wstats.discard.misc++;		IPW_DEBUG_DROP("Corruption detected! Oh no!\n");		return;	} else if (unlikely(!netif_running(priv->net_dev))) {		priv->ieee->stats.rx_dropped++;		priv->wstats.discard.misc++;		IPW_DEBUG_DROP("Dropping packet while interface is not up.\n");		return;	}	/* Advance skb->data to the start of the actual payload */	skb_reserve(rxb->skb, offsetof(struct ipw_rx_packet, u.frame.data));	/* Set the size of the skb to the size of the frame */	skb_put(rxb->skb, le16_to_cpu(pkt->u.frame.length));	IPW_DEBUG_RX("Rx packet of %d bytes.\n", rxb->skb->len);	/* HW decrypt will not clear the WEP bit, MIC, PN, etc. */	if (!priv->ieee->host_decrypt)		ipw_rebuild_decrypted_skb(priv, rxb->skb);	if (!ieee80211_rx(priv->ieee, rxb->skb, stats))		priv->ieee->stats.rx_errors++;	else {			/* ieee80211_rx succeeded, so it now owns the SKB */		rxb->skb = NULL;		__ipw_led_activity_on(priv);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/55135791819270a412dfb99f66301f02c72edadf/ipw2200.c/buggy/drivers/net/wireless/ipw2200.c