]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iwlwifi: pcie: remove minor dead code
authorMichal Nazarewicz <mina86@mina86.com>
Sun, 10 Nov 2013 19:06:37 +0000 (20:06 +0100)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 9 Dec 2013 20:29:05 +0000 (22:29 +0200)
inta is checked to be zero in a IRQ_NONE branch so afterwards it
cannot be zero as it is never modified.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
[reword the patch title and fix comment]
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/pcie/rx.c

index be3995afa9d0acee4ce7f6e0d60907f896594c53..1d6bf7b98e2d0075c1e09f05b5f4ee96dce71474 100644 (file)
@@ -1126,7 +1126,6 @@ static irqreturn_t iwl_pcie_isr(int irq, void *data)
        struct iwl_trans *trans = data;
        struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
        u32 inta, inta_mask;
-       irqreturn_t ret = IRQ_NONE;
 
        lockdep_assert_held(&trans_pcie->irq_lock);
 
@@ -1155,7 +1154,16 @@ static irqreturn_t iwl_pcie_isr(int irq, void *data)
         * or due to sporadic interrupts thrown from our NIC. */
        if (!inta) {
                IWL_DEBUG_ISR(trans, "Ignore interrupt, inta == 0\n");
-               goto none;
+               /*
+                * Re-enable interrupts here since we don't have anything to
+                * service, but only in case the handler won't run. Note that
+                * the handler can be scheduled because of a previous
+                * interrupt.
+                */
+               if (test_bit(STATUS_INT_ENABLED, &trans_pcie->status) &&
+                   !trans_pcie->inta)
+                       iwl_enable_interrupts(trans);
+               return IRQ_NONE;
        }
 
        if ((inta == 0xFFFFFFFF) || ((inta & 0xFFFFFFF0) == 0xa5a5a5a0)) {
@@ -1173,19 +1181,7 @@ static irqreturn_t iwl_pcie_isr(int irq, void *data)
 
        trans_pcie->inta |= inta;
        /* the thread will service interrupts and re-enable them */
-       if (likely(inta))
-               return IRQ_WAKE_THREAD;
-
-       ret = IRQ_HANDLED;
-
-none:
-       /* re-enable interrupts here since we don't have anything to service. */
-       /* only Re-enable if disabled by irq  and no schedules tasklet. */
-       if (test_bit(STATUS_INT_ENABLED, &trans_pcie->status) &&
-           !trans_pcie->inta)
-               iwl_enable_interrupts(trans);
-
-       return ret;
+       return IRQ_WAKE_THREAD;
 }
 
 /* interrupt handler using ict table, with this interrupt driver will