take2: [Patch 1/3] Updated patches for PCI IRQ deallocation support
Greg,
This is a patch for PCI code that has no dependencies. Please note that this patch has been already included in 2.6.9-rc3-mm1.
Please apply.
Thanks,
Kenji Kaneshige
----
Name: add_pcibios_disable_device_hook.patch
Kernel Version: 2.6.9-rc3
Depends: none
Note: This patch is already included in 2.6.9-rc3-mm1.
Change Log:
- Ported to 2.6.9-rc3
- Chaged to use __attrubute__ ((weak)) instead of modifying all arch specific code.
Description:
This patch adds a hook 'pcibios_disable_device()' into pci_disable_device() to call architecture specific PCI resource deallocation code. It's a opposite part of pcibios_enable_device(). We need this hook to deallocate architecture specific PCI resource such as IRQ resource, etc.. This patch is just for adding the hook, so 'pcibios_disable_device()' is defined as a null function on all architecture so far.
I tested this patch on i386, x86_64 and ia64. But it has not been tested on other architectures because I don't have these machines.
---
linux-2.6.9-rc3-kanesige/drivers/pci/pci.c | 12 ++++++++++++ 1 files changed, 12 insertions(+)
drivers/pci/pci.c renamed from drivers/pci/pci.c~add_pcibios_disable_device_hook +12 -0
@@ -387,6 +387,16 @@ pci_enable_device(struct pci_dev *dev) }/** +* pcibios_disable_device - disable arch specific PCI resources for device dev +* @dev: the PCI device to disable +* +* Disables architecture specific PCI resources for the device. This +* is the default implementation. Architecture implementations can +* override this. +*/ +void __attribute__ ((weak))pcibios_disable_device (struct pci_dev *dev) {} + +/** * pci_disable_device - Disable PCI device after use * @dev: PCI device to be disabled *
@@ -406,6 +416,8 @@ pci_disable_device(struct pci_dev *dev) pci_command &= ~PCI_COMMAND_MASTER ;pci_write_config_word (dev,PCI_COMMAND , pci_command); } + +pcibios_disable_device (dev); }/**
_