diff options
| -rw-r--r-- | drivers/pci/probe.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 658ac977cb56..66b3a6ffe5a0 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
| @@ -152,9 +152,6 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type, | |||
| 152 | pci_read_config_dword(dev, pos, &sz); | 152 | pci_read_config_dword(dev, pos, &sz); |
| 153 | pci_write_config_dword(dev, pos, l); | 153 | pci_write_config_dword(dev, pos, l); |
| 154 | 154 | ||
| 155 | if (!dev->mmio_always_on) | ||
| 156 | pci_write_config_word(dev, PCI_COMMAND, orig_cmd); | ||
| 157 | |||
| 158 | /* | 155 | /* |
| 159 | * All bits set in sz means the device isn't working properly. | 156 | * All bits set in sz means the device isn't working properly. |
| 160 | * If the BAR isn't implemented, all bits must be 0. If it's a | 157 | * If the BAR isn't implemented, all bits must be 0. If it's a |
| @@ -239,6 +236,9 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type, | |||
| 239 | } | 236 | } |
| 240 | 237 | ||
| 241 | out: | 238 | out: |
| 239 | if (!dev->mmio_always_on) | ||
| 240 | pci_write_config_word(dev, PCI_COMMAND, orig_cmd); | ||
| 241 | |||
| 242 | return (res->flags & IORESOURCE_MEM_64) ? 1 : 0; | 242 | return (res->flags & IORESOURCE_MEM_64) ? 1 : 0; |
| 243 | fail: | 243 | fail: |
| 244 | res->flags = 0; | 244 | res->flags = 0; |
