diff --git a/drivers/staging/rtl8192e/r8192E.h b/drivers/staging/rtl8192e/r8192E.h index 33db522286df..92ecfc24b74d 100644 --- a/drivers/staging/rtl8192e/r8192E.h +++ b/drivers/staging/rtl8192e/r8192E.h @@ -796,7 +796,6 @@ typedef struct r8192_priv LED_STRATEGY_8190 LedStrategy; u8 IC_Cut; int irq; - short irq_enabled; struct ieee80211_device *ieee80211; #ifdef ENABLE_LPS bool ps_force; diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c index 613fbe4508ba..185d3903073d 100644 --- a/drivers/staging/rtl8192e/r8192E_core.c +++ b/drivers/staging/rtl8192e/r8192E_core.c @@ -658,7 +658,6 @@ static void tx_timeout(struct net_device *dev) static void rtl8192_irq_enable(struct net_device *dev) { struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); - priv->irq_enabled = 1; write_nic_dword(priv, INTA_MASK, priv->irq_mask); } @@ -667,7 +666,7 @@ void rtl8192_irq_disable(struct net_device *dev) struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); write_nic_dword(priv, INTA_MASK, 0); - priv->irq_enabled = 0; + synchronize_irq(dev->irq); } void rtl8192_update_msr(struct net_device *dev) @@ -2003,7 +2002,6 @@ static void rtl8192_init_priv_variable(struct net_device* dev) priv->txringcount = 64;//32; priv->rxbuffersize = 9100;//2048;//1024; priv->rxringcount = MAX_RX_COUNT;//64; - priv->irq_enabled=0; priv->rx_skb_complete = 1; priv->chan = 1; //set to channel 1 priv->RegWirelessMode = WIRELESS_MODE_AUTO; @@ -5346,10 +5344,6 @@ static irqreturn_t rtl8192_interrupt(int irq, void *netdev) spin_lock_irqsave(&priv->irq_th_lock, flags); - /* We should return IRQ_NONE, but for now let me keep this */ - if (priv->irq_enabled == 0) - goto out_unlock; - /* ISR: 4bytes */ inta = read_nic_dword(priv, ISR); /* & priv->IntrMask; */