On Tue, Jun 03, 2014 at 10:59:01PM -0700, Greg Kroah-Hartman wrote: > > 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.10-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.10 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <stable@xxxxxxxxxxxxxxx> know about it. > This patch was tagged for stable 3.14, so I'm not sure its really required for the 3.10 kernel. Cheers, -- Luís > > From 83f7a85f1134c6e914453f5747435415a23d516b Mon Sep 17 00:00:00 2001 > From: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > Date: Sun, 13 Apr 2014 16:03:11 +0300 > Subject: iwlwifi: pcie: disable interrupts upon PCIe alloc > > From: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > > 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 <amonakov@xxxxxxxxx> > Reviewed-by: Johannes Berg <johannes.berg@xxxxxxxxx> > Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > --- > 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 > @@ -1538,6 +1538,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); > @@ -1549,8 +1553,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), > @@ -1574,8 +1576,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(s > if (!trans->dev_cmd_pool) > goto out_pci_disable_msi; > > - trans_pcie->inta_mask = CSR_INI_SET_MASK; > - > if (iwl_pcie_alloc_ict(trans)) > goto out_free_cmd_pool; > > @@ -1586,6 +1586,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 emmanuel.grumbach@xxxxxxxxx are > > queue-3.10/iwlwifi-pcie-disable-interrupts-upon-pcie-alloc.patch > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html