This is a note to let you know that I've just added the patch titled

    iwlwifi: pcie: disable interrupts upon PCIe alloc

to the 3.14-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     iwlwifi-pcie-disable-interrupts-upon-pcie-alloc.patch
and it can be found in the queue-3.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From 83f7a85f1134c6e914453f5747435415a23d516b Mon Sep 17 00:00:00 2001
From: Emmanuel Grumbach <[email protected]>
Date: Sun, 13 Apr 2014 16:03:11 +0300
Subject: iwlwifi: pcie: disable interrupts upon PCIe alloc

From: Emmanuel Grumbach <[email protected]>

commit 83f7a85f1134c6e914453f5747435415a23d516b upstream.

In case RFKILL is in KILL position, the NIC will issue an
interrupt straight away. This interrupt won't be sent
because it is masked in the hardware.
But if our interrupt service routine is called for another
reason (SHARED_IRQ), then we'll look at the interrupt cause
and service it. This can cause bad things if we are not
ready yet.
Explicitly clean the interrupt cause register to make sure
we won't service anything before we are ready to.

Reported-and-tested-by: Alexander Monakov <[email protected]>
Reviewed-by: Johannes Berg <[email protected]>
Signed-off-by: Emmanuel Grumbach <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/net/wireless/iwlwifi/pcie/trans.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -1563,6 +1563,10 @@ struct iwl_trans *iwl_trans_pcie_alloc(s
         * PCI Tx retries from interfering with C3 CPU state */
        pci_write_config_byte(pdev, PCI_CFG_RETRY_TIMEOUT, 0x00);
 
+       trans->dev = &pdev->dev;
+       trans_pcie->pci_dev = pdev;
+       iwl_disable_interrupts(trans);
+
        err = pci_enable_msi(pdev);
        if (err) {
                dev_err(&pdev->dev, "pci_enable_msi failed(0X%x)\n", err);
@@ -1574,8 +1578,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(s
                }
        }
 
-       trans->dev = &pdev->dev;
-       trans_pcie->pci_dev = pdev;
        trans->hw_rev = iwl_read32(trans, CSR_HW_REV);
        trans->hw_id = (pdev->device << 16) + pdev->subsystem_device;
        snprintf(trans->hw_id_str, sizeof(trans->hw_id_str),
@@ -1601,8 +1603,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(s
                goto out_pci_disable_msi;
        }
 
-       trans_pcie->inta_mask = CSR_INI_SET_MASK;
-
        if (iwl_pcie_alloc_ict(trans))
                goto out_free_cmd_pool;
 
@@ -1614,6 +1614,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(s
                goto out_free_ict;
        }
 
+       trans_pcie->inta_mask = CSR_INI_SET_MASK;
+
        return trans;
 
 out_free_ict:


Patches currently in stable-queue which might be from 
[email protected] are

queue-3.14/iwlwifi-add-module_firmware-for-7265.patch
queue-3.14/iwlwifi-mvm-fix-setting-channel-in-monitor-mode.patch
queue-3.14/iwlwifi-pcie-disable-interrupts-upon-pcie-alloc.patch
queue-3.14/iwlwifi-7000-bump-api-to-9.patch
queue-3.14/iwlwifi-mvm-avoid-searching-unnecessary-columns.patch
queue-3.14/iwlwifi-mvm-rs-fix-and-cleanup-rs_get_rate_action.patch
queue-3.14/iwlwifi-mvm-rs-fallback-to-legacy-tx-columns.patch
queue-3.14/iwlwifi-add-new-7265-hw-ids.patch
queue-3.14/iwlwifi-mvm-rs-fix-mimo-delimiter-in-lq-cmd.patch
queue-3.14/iwlwifi-mvm-rs-reinit-rs-if-no-tx-for-a-long-time.patch
queue-3.14/iwlwifi-mvm-delay-enabling-smart-fifo-until-after-beacon-rx.patch
queue-3.14/mac80211-fix-suspend-vs.-association-race.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to