projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4a10c2a
)
Revert "x86/PCI: MMCONFIG: Check earlier for MMCONFIG region at address zero"
author
Bjorn Helgaas
<
[email protected]
>
Fri, 4 Oct 2013 22:14:30 +0000
(16:14 -0600)
committer
Bjorn Helgaas
<
[email protected]
>
Fri, 4 Oct 2013 22:15:29 +0000
(16:15 -0600)
This reverts commit
07f9b61c3915e8eb156cb4461b3946736356ad02
.
07f9b61c
was intended to be a cleanup that didn't change anything, but in
fact, for systems without _CBA (which is almost everything), it broke
extended config space for domain 0 and all config space for other domains.
Reference: http://lkml.kernel.org/r/
20131004011806
[email protected]
Reported-by: Hedi Berriche <
[email protected]
>
Signed-off-by: Bjorn Helgaas <
[email protected]
>
arch/x86/pci/mmconfig-shared.c
patch
|
blob
|
history
diff --git
a/arch/x86/pci/mmconfig-shared.c
b/arch/x86/pci/mmconfig-shared.c
index 5596c7bdd327b1af38138a3d32be36be3e21cb17..082e88129712b4eb9e2027852c890a02ff31a1c7 100644
(file)
--- a/
arch/x86/pci/mmconfig-shared.c
+++ b/
arch/x86/pci/mmconfig-shared.c
@@
-700,7
+700,7
@@
int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end,
if (!(pci_probe & PCI_PROBE_MMCONF) || pci_mmcfg_arch_init_failed)
return -ENODEV;
- if (start > end
|| !addr
)
+ if (start > end)
return -EINVAL;
mutex_lock(&pci_mmcfg_lock);
@@
-716,6
+716,11
@@
int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end,
return -EEXIST;
}
+ if (!addr) {
+ mutex_unlock(&pci_mmcfg_lock);
+ return -EINVAL;
+ }
+
rc = -EBUSY;
cfg = pci_mmconfig_alloc(seg, start, end, addr);
if (cfg == NULL) {