public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* x86/pci/mrst: force all pci config toward 0:0:0, 0:2:0 and 0:3:0 to type 1
@ 2013-04-30  7:21 Bin Gao
  2013-04-30 17:32 ` Bjorn Helgaas
  2013-05-01 17:17 ` Bjorn Helgaas
  0 siblings, 2 replies; 10+ messages in thread
From: Bin Gao @ 2013-04-30  7:21 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Jacob Pan,
	Jesse Barnes, Greg Kroah-Hartman
  Cc: linux-kernel

x86/pci/mrst: force all pci config access toward 0:0:0, 0:2:0 and 0:3:0 to type 1

For real pci devices 0:0:0, 0:2:0 and 0:3:0, there is either no pci shim, or
no guarantee of data correctness of offset 256-4k. So for whatever reason,
Linux kernel should not do MMCFG pci config access to those devices. Instead,
always use type 1 for those devices.

Signed-off-by: Bin Gao <bin.gao@linux.intel.com>
---
 arch/x86/pci/mrst.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
index 6eb18c4..0e0fabf 100644
--- a/arch/x86/pci/mrst.c
+++ b/arch/x86/pci/mrst.c
@@ -141,6 +141,11 @@ static int pci_device_update_fixed(struct pci_bus *bus, unsigned int devfn,
  */
 static bool type1_access_ok(unsigned int bus, unsigned int devfn, int reg)
 {
+	if (bus == 0 && (devfn == PCI_DEVFN(2, 0)
+				|| devfn == PCI_DEVFN(0, 0)
+				|| devfn == PCI_DEVFN(3, 0)))
+		return 1;
+
 	/* This is a workaround for A0 LNC bug where PCI status register does
 	 * not have new CAP bit set. can not be written by SW either.
 	 *
@@ -150,10 +155,7 @@ static bool type1_access_ok(unsigned int bus, unsigned int devfn, int reg)
 	 */
 	if (reg >= 0x100 || reg == PCI_STATUS || reg == PCI_HEADER_TYPE)
 		return 0;
-	if (bus == 0 && (devfn == PCI_DEVFN(2, 0)
-				|| devfn == PCI_DEVFN(0, 0)
-				|| devfn == PCI_DEVFN(3, 0)))
-		return 1;
+
 	return 0; /* langwell on others */
 }
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-05-06 22:53 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-30  7:21 x86/pci/mrst: force all pci config toward 0:0:0, 0:2:0 and 0:3:0 to type 1 Bin Gao
2013-04-30 17:32 ` Bjorn Helgaas
2013-05-01 17:17 ` Bjorn Helgaas
2013-05-02  6:53   ` Bin Gao
2013-05-06 17:38     ` Bjorn Helgaas
2013-05-06 18:56       ` Bjorn Helgaas
2013-05-06 22:42         ` Bin Gao
2013-05-06 22:46           ` Bjorn Helgaas
2013-05-06 19:02       ` H. Peter Anvin
2013-05-06 22:20       ` Bin Gao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox