'is_enabled' flag should be set/cleared when the device is actually enabled/disabled
PATCH 1/1 'is_enabled' flag should be set/cleared when the device is actually enabled/disabled
Hi,
I think 'is_enabled' flag in pci_dev structure should be set/cleared when the device actually enabled/disabled. Especially about pci_enable_device(), it can be failed. By this change, we will also get the possibility of refering 'is_enabled' flag from the functions called through pci_enable_device()/pci_disable_device().
---
linux-2.6.12-rc2-kanesige/drivers/pci/pci.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)
drivers/pci/pci.c renamed from drivers/pci/pci.c~fix_update_is_enabled +3 -4
@@ -398,10 +398,10 @@ pci_enable_device(struct pci_dev *dev) {int err; - dev->is_enabled =1 ;if ((err =pci_enable_device_bars (dev, (1 <<PCI_NUM_RESOURCES ) -1 )))return err;pci_fixup_device (pci_fixup_enable, dev); + dev->is_enabled =1 ;return 0 ; }
@@ -427,16 +427,15 @@ pci_disable_device(struct pci_dev *dev) {u16 pci_command; - dev->is_enabled =0 ; - dev->is_busmaster =0 ; -pci_read_config_word (dev,PCI_COMMAND , &pci_command);if (pci_command &PCI_COMMAND_MASTER ) { pci_command &= ~PCI_COMMAND_MASTER ;pci_write_config_word (dev,PCI_COMMAND , pci_command); } + dev->is_busmaster =0 ;pcibios_disable_device (dev); + dev->is_enabled =0 ; }/**
_
Quoted 9 lines · Kenji Kaneshige
Hi,
I think '
is_enabled' flag inpci_devstructure should be set/cleared when the device actually enabled/disabled. Especially aboutpci_enable_device(), it can be failed. By this change, we will also get the possibility of refering 'is_enabled' flag from the functions called through pci_enable_device()/pci_disable_device().Signed-off-by Kenji Kaneshige <[email protected]>
Ah, nice catch. I've applied this to my trees now, thanks.
greg k-h