mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 12:00:58 +07:00
pci, x86/io-apic: Allow PCI_IOAPIC to be user configurable on x86
This adjusts PCI_IOAPIC to be user configurable (possibly as a module) on x86, since the base architecture code for adding IO-APICs dynamically isn't there yet (and hence having the code present everywhere is pretty pointless). To make this consistent, a MODULE_DEVICE_TABLE() declaration gets added, the class specifications get corrected (by properly using PCI_DEVICE_CLASS() intended for purposes like this), and the probe and remove functions get their sections adjusted. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org> Cc: Bjorn Helgaas <bhelgaas@google.com> Link: http://lkml.kernel.org/r/4EDDD71A02000078000659F1@nat28.tlf.novell.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
e4a02b4a95
commit
b95a7bd700
@ -98,11 +98,11 @@ config PCI_PASID
|
||||
If unsure, say N.
|
||||
|
||||
config PCI_IOAPIC
|
||||
bool
|
||||
tristate "PCI IO-APIC hotplug support" if X86
|
||||
depends on PCI
|
||||
depends on ACPI
|
||||
depends on HOTPLUG
|
||||
default y
|
||||
default !X86
|
||||
|
||||
config PCI_LABEL
|
||||
def_bool y if (DMI || ACPI)
|
||||
|
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/slab.h>
|
||||
#include <acpi/acpi_bus.h>
|
||||
@ -27,7 +27,7 @@ struct ioapic {
|
||||
u32 gsi_base;
|
||||
};
|
||||
|
||||
static int ioapic_probe(struct pci_dev *dev, const struct pci_device_id *ent)
|
||||
static int __devinit ioapic_probe(struct pci_dev *dev, const struct pci_device_id *ent)
|
||||
{
|
||||
acpi_handle handle;
|
||||
acpi_status status;
|
||||
@ -88,7 +88,7 @@ static int ioapic_probe(struct pci_dev *dev, const struct pci_device_id *ent)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static void ioapic_remove(struct pci_dev *dev)
|
||||
static void __devexit ioapic_remove(struct pci_dev *dev)
|
||||
{
|
||||
struct ioapic *ioapic = pci_get_drvdata(dev);
|
||||
|
||||
@ -99,13 +99,12 @@ static void ioapic_remove(struct pci_dev *dev)
|
||||
}
|
||||
|
||||
|
||||
static struct pci_device_id ioapic_devices[] = {
|
||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_SYSTEM_PIC_IOAPIC << 8, 0xffff00, },
|
||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_SYSTEM_PIC_IOXAPIC << 8, 0xffff00, },
|
||||
static DEFINE_PCI_DEVICE_TABLE(ioapic_devices) = {
|
||||
{ PCI_DEVICE_CLASS(PCI_CLASS_SYSTEM_PIC_IOAPIC, ~0) },
|
||||
{ PCI_DEVICE_CLASS(PCI_CLASS_SYSTEM_PIC_IOXAPIC, ~0) },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, ioapic_devices);
|
||||
|
||||
static struct pci_driver ioapic_driver = {
|
||||
.name = "ioapic",
|
||||
|
Loading…
Reference in New Issue
Block a user