diff options
Diffstat (limited to 'drivers/pci/hotplug')
| -rw-r--r-- | drivers/pci/hotplug/acpi_pcihp.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/acpiphp_glue.c | 20 | ||||
| -rw-r--r-- | drivers/pci/hotplug/acpiphp_ibm.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/cpqphp_sysfs.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/fakephp.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pci_hotplug_core.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_acpi.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_core.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_ctrl.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 6 | ||||
| -rw-r--r-- | drivers/pci/hotplug/rpadlpar_core.c | 3 | ||||
| -rw-r--r-- | drivers/pci/hotplug/rpaphp_core.c | 4 | ||||
| -rw-r--r-- | drivers/pci/hotplug/sgi_hotplug.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp_core.c | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/shpchp_ctrl.c | 1 | 
15 files changed, 39 insertions, 5 deletions
diff --git a/drivers/pci/hotplug/acpi_pcihp.c b/drivers/pci/hotplug/acpi_pcihp.c index 3c76fc67cf0..45fcc1e96df 100644 --- a/drivers/pci/hotplug/acpi_pcihp.c +++ b/drivers/pci/hotplug/acpi_pcihp.c @@ -32,6 +32,7 @@  #include <linux/pci_hotplug.h>  #include <linux/acpi.h>  #include <linux/pci-acpi.h> +#include <linux/slab.h>  #define MY_NAME	"acpi_pcihp" diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index cb2fd01edda..cb23aa2ebf9 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c @@ -47,6 +47,7 @@  #include <linux/pci_hotplug.h>  #include <linux/pci-acpi.h>  #include <linux/mutex.h> +#include <linux/slab.h>  #include "../pci.h"  #include "acpiphp.h" @@ -749,6 +750,24 @@ static int acpiphp_bus_trim(acpi_handle handle)  	return retval;  } +static void acpiphp_set_acpi_region(struct acpiphp_slot *slot) +{ +	struct acpiphp_func *func; +	union acpi_object params[2]; +	struct acpi_object_list arg_list; + +	list_for_each_entry(func, &slot->funcs, sibling) { +		arg_list.count = 2; +		arg_list.pointer = params; +		params[0].type = ACPI_TYPE_INTEGER; +		params[0].integer.value = ACPI_ADR_SPACE_PCI_CONFIG; +		params[1].type = ACPI_TYPE_INTEGER; +		params[1].integer.value = 1; +		/* _REG is optional, we don't care about if there is failure */ +		acpi_evaluate_object(func->handle, "_REG", &arg_list, NULL); +	} +} +  /**   * enable_device - enable, configure a slot   * @slot: slot to be enabled @@ -805,6 +824,7 @@ static int __ref enable_device(struct acpiphp_slot *slot)  	pci_bus_assign_resources(bus);  	acpiphp_sanitize_bus(bus);  	acpiphp_set_hpp_values(bus); +	acpiphp_set_acpi_region(slot);  	pci_enable_bridges(bus);  	pci_bus_add_devices(bus); diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c index aa5df485f8c..6ecbfb27db9 100644 --- a/drivers/pci/hotplug/acpiphp_ibm.c +++ b/drivers/pci/hotplug/acpiphp_ibm.c @@ -26,6 +26,7 @@   */  #include <linux/init.h> +#include <linux/slab.h>  #include <linux/module.h>  #include <linux/kernel.h>  #include <acpi/acpi_bus.h> diff --git a/drivers/pci/hotplug/cpqphp_sysfs.c b/drivers/pci/hotplug/cpqphp_sysfs.c index e6089bdb6e5..56215322930 100644 --- a/drivers/pci/hotplug/cpqphp_sysfs.c +++ b/drivers/pci/hotplug/cpqphp_sysfs.c @@ -28,6 +28,7 @@  #include <linux/module.h>  #include <linux/kernel.h> +#include <linux/slab.h>  #include <linux/types.h>  #include <linux/proc_fs.h>  #include <linux/workqueue.h> diff --git a/drivers/pci/hotplug/fakephp.c b/drivers/pci/hotplug/fakephp.c index 0a894efd4b9..5317e4d7d96 100644 --- a/drivers/pci/hotplug/fakephp.c +++ b/drivers/pci/hotplug/fakephp.c @@ -19,6 +19,7 @@  #include <linux/init.h>  #include <linux/pci.h>  #include <linux/device.h> +#include <linux/slab.h>  #include "../pci.h"  struct legacy_slot { diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c index 728b119f71a..6d2eea93298 100644 --- a/drivers/pci/hotplug/pci_hotplug_core.c +++ b/drivers/pci/hotplug/pci_hotplug_core.c @@ -33,7 +33,6 @@  #include <linux/kobject.h>  #include <linux/sysfs.h>  #include <linux/pagemap.h> -#include <linux/slab.h>  #include <linux/init.h>  #include <linux/mount.h>  #include <linux/namei.h> diff --git a/drivers/pci/hotplug/pciehp_acpi.c b/drivers/pci/hotplug/pciehp_acpi.c index b09b083011d..1f4000a5a10 100644 --- a/drivers/pci/hotplug/pciehp_acpi.c +++ b/drivers/pci/hotplug/pciehp_acpi.c @@ -26,6 +26,7 @@  #include <linux/acpi.h>  #include <linux/pci.h>  #include <linux/pci_hotplug.h> +#include <linux/slab.h>  #include "pciehp.h"  #define PCIEHP_DETECT_PCIE	(0) diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index 920f820edf8..3588ea61b0d 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c @@ -30,6 +30,7 @@  #include <linux/module.h>  #include <linux/moduleparam.h>  #include <linux/kernel.h> +#include <linux/slab.h>  #include <linux/types.h>  #include <linux/pci.h>  #include "pciehp.h" diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c index 9a7f247e8ac..8f58148be04 100644 --- a/drivers/pci/hotplug/pciehp_ctrl.c +++ b/drivers/pci/hotplug/pciehp_ctrl.c @@ -30,6 +30,7 @@  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/types.h> +#include <linux/slab.h>  #include <linux/pci.h>  #include <linux/workqueue.h>  #include "../pci.h" diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 40b48f569b1..0cd42047d89 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -36,6 +36,7 @@  #include <linux/pci.h>  #include <linux/interrupt.h>  #include <linux/time.h> +#include <linux/slab.h>  #include "../pci.h"  #include "pciehp.h" @@ -832,9 +833,8 @@ static inline void dbg_ctrl(struct controller *ctrl)  	for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {  		if (!pci_resource_len(pdev, i))  			continue; -		ctrl_info(ctrl, "  PCI resource [%d]     : 0x%llx@0x%llx\n", -			  i, (unsigned long long)pci_resource_len(pdev, i), -			  (unsigned long long)pci_resource_start(pdev, i)); +		ctrl_info(ctrl, "  PCI resource [%d]     : %pR\n", +			  i, &pdev->resource[i]);  	}  	ctrl_info(ctrl, "Slot Capabilities      : 0x%08x\n", ctrl->slot_cap);  	ctrl_info(ctrl, "  Physical Slot Number : %d\n", PSN(ctrl)); diff --git a/drivers/pci/hotplug/rpadlpar_core.c b/drivers/pci/hotplug/rpadlpar_core.c index 4e3e0382c16..083034710fa 100644 --- a/drivers/pci/hotplug/rpadlpar_core.c +++ b/drivers/pci/hotplug/rpadlpar_core.c @@ -20,6 +20,7 @@  #include <linux/init.h>  #include <linux/pci.h>  #include <linux/string.h> +#include <linux/vmalloc.h>  #include <asm/pci-bridge.h>  #include <linux/mutex.h> @@ -430,6 +431,8 @@ int dlpar_remove_slot(char *drc_name)  			rc = dlpar_remove_pci_slot(drc_name, dn);  			break;  	} +	vm_unmap_aliases(); +  	printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name);  exit:  	mutex_unlock(&rpadlpar_mutex); diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c index dcaae725fd7..ef7411c660b 100644 --- a/drivers/pci/hotplug/rpaphp_core.c +++ b/drivers/pci/hotplug/rpaphp_core.c @@ -27,9 +27,9 @@  #include <linux/moduleparam.h>  #include <linux/pci.h>  #include <linux/pci_hotplug.h> -#include <linux/slab.h>  #include <linux/smp.h>  #include <linux/init.h> +#include <linux/vmalloc.h>  #include <asm/eeh.h>       /* for eeh_add_device() */  #include <asm/rtas.h>		/* rtas_call */  #include <asm/pci-bridge.h>	/* for pci_controller */ @@ -419,6 +419,8 @@ static int disable_slot(struct hotplug_slot *hotplug_slot)  		return -EINVAL;  	pcibios_remove_pci_devices(slot->bus); +	vm_unmap_aliases(); +  	slot->state = NOT_CONFIGURED;  	return 0;  } diff --git a/drivers/pci/hotplug/sgi_hotplug.c b/drivers/pci/hotplug/sgi_hotplug.c index 8aebe1e9d3d..72d507b6a2a 100644 --- a/drivers/pci/hotplug/sgi_hotplug.c +++ b/drivers/pci/hotplug/sgi_hotplug.c @@ -15,6 +15,7 @@  #include <linux/pci.h>  #include <linux/pci_hotplug.h>  #include <linux/proc_fs.h> +#include <linux/slab.h>  #include <linux/types.h>  #include <linux/mutex.h> diff --git a/drivers/pci/hotplug/shpchp_core.c b/drivers/pci/hotplug/shpchp_core.c index a5062297f48..a7bd5048396 100644 --- a/drivers/pci/hotplug/shpchp_core.c +++ b/drivers/pci/hotplug/shpchp_core.c @@ -31,6 +31,7 @@  #include <linux/moduleparam.h>  #include <linux/kernel.h>  #include <linux/types.h> +#include <linux/slab.h>  #include <linux/pci.h>  #include <linux/workqueue.h>  #include "shpchp.h" diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c index 3bba0c0888f..3387fbfb0c5 100644 --- a/drivers/pci/hotplug/shpchp_ctrl.c +++ b/drivers/pci/hotplug/shpchp_ctrl.c @@ -30,6 +30,7 @@  #include <linux/module.h>  #include <linux/kernel.h>  #include <linux/types.h> +#include <linux/slab.h>  #include <linux/pci.h>  #include <linux/workqueue.h>  #include "../pci.h"  |