Unset msi and msix flags on pci_device_disable
PATCH 1/1 Unset msi and msix flags on pci_device_disable
The commit f5f2b13129a6541debf8851bae843cbbf48298b7 broke suspend/resume to disk two or more times in a row. This patches fixes the problem:
This patch should be included in 2.6.21
drivers/pci/pci.c +3 -1
@@ -886,7 +886,9 @@ pci_disable_device(struct pci_dev *dev)pci_write_config_word (dev,PCI_COMMAND , pci_command); } dev->is_busmaster =0 ; - + dev->msi_enabled=0 ; + dev->msix_enabled=0 ; +pcibios_disable_device (dev); }
Quoted 2 lines · Thomas Meyer
The commit
f5f2b13129a6541debf8851bae843cbbf48298b7broke suspend/resume to disk two or more times in a row. This patches fixes the problem:
Please clue me in, on what the problem is, I see why my patch would have changed things I don't see how it is breaking things. Clearing the device bits has no effect on the hardware and it leaks our msi handling data structures.
What is the user doing that this code broke?
I will be happy to work through a proper fix but this isn't it.
If this is actually helps something I am tempted to make the added lines say WARN_ON.....
But I would really like to understand the nature of the problem so that we can do something to fix it properly.
Eric