+ allow-msi-to-work-on-kexec-kernel.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     Allow MSI to work on kexec kernel

has been added to the -mm tree.  Its filename is

     allow-msi-to-work-on-kexec-kernel.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: Allow MSI to work on kexec kernel
From: Rajesh Shah <rajesh.shah@xxxxxxxxx>


We recently ran into a problem where the e1000 device failed to work
properly on the kexec kernel.  MSI was enabled for the device in the main
kernel when it crashed.  The e1000 driver tried to enable MSI on the kexec
kernel, but the code bailed early when it found that MSI was already
enabled in the hardware, even though the software state was not properly
set up in the kexec'd kernel.  This patch fixes the problem by moving the
early return to after making sure that the software state is properly
initialized.

Signed-off-by: Rajesh Shah <rajesh.shah@xxxxxxxxx>
Cc: Greg KH <greg@xxxxxxxxx>
Cc: "Nguyen, Tom L" <tom.l.nguyen@xxxxxxxxx>
Cc: Shaohua Li <shaohua.li@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 drivers/pci/msi.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN drivers/pci/msi.c~allow-msi-to-work-on-kexec-kernel drivers/pci/msi.c
--- 25/drivers/pci/msi.c~allow-msi-to-work-on-kexec-kernel	Wed May 24 13:16:27 2006
+++ 25-akpm/drivers/pci/msi.c	Wed May 24 13:16:27 2006
@@ -938,14 +938,13 @@ int pci_enable_msi(struct pci_dev* dev)
 	if (!pos)
 		return -EINVAL;
 
-	pci_read_config_word(dev, msi_control_reg(pos), &control);
-	if (control & PCI_MSI_FLAGS_ENABLE)
-		return 0;			/* Already in MSI mode */
-
 	if (!msi_lookup_vector(dev, PCI_CAP_ID_MSI)) {
 		/* Lookup Sucess */
 		unsigned long flags;
 
+		pci_read_config_word(dev, msi_control_reg(pos), &control);
+		if (control & PCI_MSI_FLAGS_ENABLE)
+			return 0;	/* Already in MSI mode */
 		spin_lock_irqsave(&msi_lock, flags);
 		if (!vector_irq[dev->irq]) {
 			msi_desc[dev->irq]->msi_attrib.state = 0;
_

Patches currently in -mm which might be from rajesh.shah@xxxxxxxxx are

allow-msi-to-work-on-kexec-kernel.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux