Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 2814

kernel-2.6.18-194.11.1.el5.src.rpm

From: Dean Nelson <dnelson@redhat.com>
Date: Tue, 2 Jun 2009 10:05:20 -0400
Subject: [pci] quirk: disable MSI on VIA VT3364 chipsets
Message-id: 20090602140454.18898.23595.sendpatchset@localhost.localdomain
O-Subject: [RHEL5 PATCH] PCI quirk: disable MSI on VIA VT3364 chipsets
Bugzilla: 501374
RH-Acked-by: Stefan Assmann <sassmann@redhat.com>
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>

System requires pci=nomsi boot parameter during and after installation.
If parameter not available and the network device is enabled during
installation, the system will hang during boot after installation and OS
will become corrupted. The solution is to disable MSI on VIA VT3364 chipsets.

This patch is a backport by Flavio Leitner <fleitner@redhat.com> of an upstream
commit (see http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=162dedd39dcc6eca3fc0d29cf19658c6c13b840e).

Customer has identified that the upstream commit fixes the problem.

Resolves BZ 501374.

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index da65176..e7e211e 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1825,6 +1825,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCN
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
 
 /* Disable MSI on chipsets that are known to not support it */
 static void __devinit quirk_disable_msi(struct pci_dev *dev)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index ca982e1..096c2a4 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1299,6 +1299,7 @@
 #define PCI_DEVICE_ID_VIA_8363_0	0x0305
 #define PCI_DEVICE_ID_VIA_P4M800CE	0x0314
 #define PCI_DEVICE_ID_VIA_VT3351	0x0351
+#define PCI_DEVICE_ID_VIA_VT3364	0x0364
 #define PCI_DEVICE_ID_VIA_8371_0	0x0391
 #define PCI_DEVICE_ID_VIA_8501_0	0x0501
 #define PCI_DEVICE_ID_VIA_82C561	0x0561