Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 59

kernel-2.6.18-238.el5.src.rpm

From: Kimball Murray <kmurray@redhat.com>
Subject: [RHEL5 U1 Patch 1/1 (updated)] ACPI acpi_prt list incomplete (BZ-214439)
Date: Wed, 6 Jun 2007 14:50:15 -0400
Bugzilla: 214439
Message-Id: <20070606184507.27887.53877.sendpatchset@dhcp83-86.boston.redhat.com>
Changelog: [acpi] acpi_prt list incomplete


The following patch fixes BZ-214439, which was also an issue in RHEL4.

The basic problem as that when we are hotplugging pci busses that contain
ioapics there's a host of new interrupt routes that come into play.  Our
system BIOS knows about them (PRT tables), but if Linux does not see these
busses at boot time, it fails to add the PRT BIOS entries to its own acpi_prt
list.

This means we need to add/delete them later.  In RHEL4, we did this in a
kludgy way by exporting the acpi_prt list, and then stitching in the
new entries by hand from a kernel module when the new bus arrived.

But in RHEL5, we can do this in a less objectionable way by using the two
functions acpi_pci_irq_add_prt, and acpi_pci_irq_del_prt.  Note: the
latter function wasn't even present in RHEL4.

So the patch merely exports these functions so Stratus can now add/delete
PRT entries without needing direct access to the acpi_prt list.

-------------------------- snip ------------------------
diff -Naur linux-2.6.18.x86_64.orig/drivers/acpi/pci_irq.c linux-2.6.18.x86_64/drivers/acpi/pci_irq.c
--- linux-2.6.18.x86_64.orig/drivers/acpi/pci_irq.c	2006-09-19 23:42:06.000000000 -0400
+++ linux-2.6.18.x86_64/drivers/acpi/pci_irq.c	2007-06-06 14:20:44.000000000 -0400
@@ -225,6 +225,7 @@
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(acpi_pci_irq_add_prt);
 
 void acpi_pci_irq_del_prt(int segment, int bus)
 {
@@ -246,6 +247,7 @@
 	}
 	spin_unlock(&acpi_prt_lock);
 }
+EXPORT_SYMBOL_GPL(acpi_pci_irq_del_prt);
 
 /* --------------------------------------------------------------------------
                           PCI Interrupt Routing Support