All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <matthew@wil.cx>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	Greg KH <greg@kroah.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Greg KH <gregkh@suse.de>, Arjan van de Ven <arjan@infradead.org>,
	linux-kernel@vger.kernel.org, Jeff Garzik <jeff@garzik.org>,
	linux-pci@atrey.karlin.mff.cuni.cz, Martin Mares <mj@ucw.cz>,
	Tony Camuso <tcamuso@redhat.com>, Loic Prylli <loic@myri.com>
Subject: Re: [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in
Date: Sun, 13 Jan 2008 00:58:31 -0700	[thread overview]
Message-ID: <20080113075830.GC18741@parisc-linux.org> (raw)
In-Reply-To: <20080113072415.GB18741@parisc-linux.org>

On Sun, Jan 13, 2008 at 12:24:15AM -0700, Matthew Wilcox wrote:
> Here's a patch (on top of Ivan's) to improve things further.

Oops.  I forgot to check the ordering of mmconfig vs direct probing, so
that patch would end up just using mmconfig for everything.  Not what we
want.  Also, there's three bits of mmconfig-shared that're probing using
conf1, even if it might have failed.  And if we're going to use
raw_pci_read() when conf1 might have failed and mmconf isn't set up yet,
we need to check raw_pci_ops in raw_pci_read().  Add the check in
raw_pci_write too, just for symmetry.

I don't like it that mmconfig_32 prints a message and mmconfig_64
doesn't, but fixing that is not part of this patch.

Interdiff:

diff -u b/arch/x86/pci/common.c b/arch/x86/pci/common.c
--- b/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -31,7 +31,7 @@
 int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
 						int reg, int len, u32 *val)
 {
-	if (reg < 256)
+	if (reg < 256 && raw_pci_ops)
 		return raw_pci_ops->read(domain, bus, devfn, reg, len, val);
 	if (raw_pci_ext_ops)
 		return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val);
@@ -41,7 +41,7 @@
 int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
 						int reg, int len, u32 val)
 {
-	if (reg < 256)
+	if (reg < 256 && raw_pci_ops)
 		return raw_pci_ops->write(domain, bus, devfn, reg, len, val);
 	if (raw_pci_ext_ops)
 		return raw_pci_ext_ops->write(domain, bus, devfn, reg, len, val);
diff -u b/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
--- b/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -28,7 +28,7 @@
 static const char __init *pci_mmcfg_e7520(void)
 {
 	u32 win;
-	pci_direct_conf1.read(0, 0, PCI_DEVFN(0,0), 0xce, 2, &win);
+	raw_pci_read(0, 0, PCI_DEVFN(0,0), 0xce, 2, &win);
 
 	win = win & 0xf000;
 	if(win == 0x0000 || win == 0xf000)
@@ -53,7 +53,7 @@
 
 	pci_mmcfg_config_num = 1;
 
-	pci_direct_conf1.read(0, 0, PCI_DEVFN(0,0), 0x48, 4, &pciexbar);
+	raw_pci_read(0, 0, PCI_DEVFN(0,0), 0x48, 4, &pciexbar);
 
 	/* Enable bit */
 	if (!(pciexbar & 1))
@@ -118,7 +118,7 @@
 	int i;
 	const char *name;
 
-	pci_direct_conf1.read(0, 0, PCI_DEVFN(0,0), 0, 4, &l);
+	raw_pci_read(0, 0, PCI_DEVFN(0,0), 0, 4, &l);
 	vendor = l & 0xffff;
 	device = (l >> 16) & 0xffff;
 
diff -u b/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
--- b/arch/x86/pci/mmconfig_32.c
+++ b/arch/x86/pci/mmconfig_32.c
@@ -132,8 +132,10 @@
 
 int __init pci_mmcfg_arch_init(void)
 {
-	printk(KERN_INFO "PCI: Using MMCONFIG\n");
-	raw_pci_ops = &pci_mmcfg;
+	printk(KERN_INFO "PCI: Using MMCONFIG for %s config space\n",
+		raw_pci_ops ? "extended" : "all");
+	if (!raw_pci_ops)
+		raw_pci_ops = &pci_mmcfg;
 	raw_pci_ext_ops = &pci_mmcfg;
 	return 1;
 }
diff -u b/arch/x86/pci/mmconfig_64.c b/arch/x86/pci/mmconfig_64.c
--- b/arch/x86/pci/mmconfig_64.c
+++ b/arch/x86/pci/mmconfig_64.c
@@ -144,7 +144,8 @@
 			return 0;
 		}
 	}
-	raw_pci_ops = &pci_mmcfg;
+	if (!raw_pci_ops)
+		raw_pci_ops = &pci_mmcfg;
 	raw_pci_ext_ops = &pci_mmcfg;
 	return 1;
 }

-- 
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

  reply	other threads:[~2008-01-13  7:58 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-25 11:26 [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in Arjan van de Ven
2007-12-27 11:52 ` Jeff Garzik
2007-12-27 14:09   ` Arjan van de Ven
2007-12-27 17:52   ` Linus Torvalds
2008-01-11 19:02 ` Greg KH
2008-01-11 19:09   ` Arjan van de Ven
2008-01-11 19:14     ` Greg KH
2008-01-11 19:28   ` Matthew Wilcox
2008-01-11 19:40     ` Arjan van de Ven
2008-01-11 19:45       ` Greg KH
2008-01-11 19:49         ` Matthew Wilcox
2008-01-11 19:58           ` Linus Torvalds
2008-01-11 20:17             ` Matthew Wilcox
2008-01-11 20:27               ` Linus Torvalds
2008-01-11 20:42                 ` Matthew Wilcox
2008-01-11 21:12                   ` Linus Torvalds
2008-01-11 21:17                     ` Matthew Wilcox
2008-01-11 21:28                       ` Linus Torvalds
2008-01-11 21:38                         ` Matthew Wilcox
2008-01-11 23:58                           ` Ivan Kokshaysky
2008-01-12  0:17                             ` Jesse Barnes
2008-01-12  0:26                             ` Greg KH
2008-01-12 14:40                               ` Ivan Kokshaysky
2008-01-12 15:46                                 ` Arjan van de Ven
2008-01-12 16:23                                   ` Ivan Kokshaysky
2008-01-12 17:45                                 ` Arjan van de Ven
2008-01-12 18:17                                   ` Matthew Wilcox
2008-01-12 21:49                                   ` Ivan Kokshaysky
2008-01-12 23:01                                     ` Arjan van de Ven
2008-01-13  0:12                                       ` Tony Camuso
2008-01-13  0:40                                         ` Arjan van de Ven
2008-01-13  1:36                                           ` Tony Camuso
2008-01-13  4:42                                             ` Arjan van de Ven
2008-01-13  4:47                                               ` Matthew Wilcox
2008-01-13  6:43                                                 ` Jeff Garzik
2008-01-13 12:43                                               ` Tony Camuso
2008-01-13 17:03                                                 ` Arjan van de Ven
2008-01-13 21:28                                                   ` Tony Camuso
2008-01-14  0:54                                                     ` Alan Cox
2008-01-14  1:33                                                       ` Arjan van de Ven
2008-01-14  3:29                                                         ` Tony Camuso
2008-01-14  5:05                                                           ` Arjan van de Ven
2008-01-14 13:01                                                             ` Tony Camuso
2008-01-14 14:46                                                               ` Arjan van de Ven
2008-01-14 15:23                                                                 ` Tony Camuso
2008-01-14 16:01                                                                   ` Arjan van de Ven
2008-01-14 16:08                                                                     ` Tony Camuso
2008-01-14  9:11                                                         ` Alan Cox
2008-01-14  5:20                                                       ` Linus Torvalds
2008-01-13 18:23                                   ` Loic Prylli
2008-01-13 18:41                                     ` Arjan van de Ven
2008-01-13 20:43                                       ` Matthew Wilcox
2008-01-13 21:18                                         ` Loic Prylli
2008-01-13 20:51                                       ` Loic Prylli
2008-01-13  7:08                                 ` Benjamin Herrenschmidt
2008-01-13  7:24                                   ` Matthew Wilcox
2008-01-13  7:58                                     ` Matthew Wilcox [this message]
2008-01-13 17:01                                     ` Arjan van de Ven
2008-01-14 22:52                                       ` Matthew Wilcox
2008-01-14 23:04                                         ` Adrian Bunk
2008-01-15 16:00                                           ` Loic Prylli
2008-01-15 17:46                                             ` Greg KH
2008-01-15 17:56                                               ` Matthew Wilcox
2008-01-15 19:27                                                 ` Tony Camuso
2008-01-15 19:38                                                   ` Linus Torvalds
2008-01-15 19:40                                                     ` Matthew Wilcox
2008-01-15 22:12                                                     ` Loic Prylli
2008-01-19 16:58                                                 ` Grant Grundler
2008-01-28 18:32                                                   ` Tony Camuso
2008-01-28 20:44                                                     ` Greg KH
2008-01-28 22:31                                                       ` Matthew Wilcox
2008-01-28 22:53                                                         ` Greg KH
2008-01-29  2:56                                                           ` Matthew Wilcox
2008-01-29  2:57                                                             ` PCI x86: always use conf1 to access config space below 256 bytes Matthew Wilcox
2008-01-29 13:21                                                               ` Greg KH
2008-01-29 23:43                                                                 ` Matthew Wilcox
2008-01-30  0:04                                                                   ` Linus Torvalds
2008-01-29  3:03                                                             ` [PATCH] Change pci_raw_ops to pci_raw_read/write Matthew Wilcox
2008-02-03  7:30                                                               ` Yinghai Lu
2008-02-07 15:54                                                                 ` Tony Camuso
2008-02-07 16:28                                                                   ` Arjan van de Ven
2008-02-07 16:36                                                                     ` Tony Camuso
2008-02-08  2:28                                                                       ` Grant Grundler
2008-02-09 12:41                                                                   ` Matthew Wilcox
2008-02-10  6:25                                                                     ` Yinghai Lu
2008-02-10  7:21                                                                       ` Greg KH
2008-02-10 14:51                                                                         ` Matthew Wilcox
2008-02-10 19:13                                                                           ` Grant Grundler
2008-02-10 19:37                                                                             ` Matthew Wilcox
2008-02-10 20:16                                                                           ` Yinghai Lu
2008-02-10 20:19                                                                             ` Matthew Wilcox
2008-02-10 20:25                                                                               ` Yinghai Lu
2008-02-10 20:32                                                                                 ` Matthew Wilcox
2008-02-10 20:47                                                                                   ` Yinghai Lu
2008-02-10 20:24                                                                             ` Linus Torvalds
2008-02-10 20:45                                                                               ` Matthew Wilcox
2008-02-10 23:02                                                                                 ` raw_pci_read in quirk_intel_irqbalance Matthew Wilcox
2008-02-11  5:04                                                                                   ` Matthew Wilcox
2008-02-11  7:49                                                                                     ` Grant Grundler
2008-02-11 16:15                                                                                       ` Matthew Wilcox
2008-02-11 17:18                                                                                         ` Linus Torvalds
2008-02-11 19:38                                                                                           ` Grant Grundler
2008-02-11  1:49                                                                                 ` [PATCH] Change pci_raw_ops to pci_raw_read/write Yinghai Lu
2008-02-11  2:53                                                                                   ` Robert Hancock
2008-02-11  5:59                                                                                     ` Yinghai Lu
2008-02-11 22:10                                                                                   ` Andrew Morton
2008-02-11 22:38                                                                                     ` Ingo Molnar
2008-01-29  3:05                                                       ` [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in Arjan van de Ven
2008-01-29  3:18                                                         ` Matthew Wilcox
2008-01-29 13:19                                                           ` Greg KH
2008-01-29 14:15                                                             ` Tony Camuso
2008-01-29 14:47                                                               ` Arjan van de Ven
2008-01-29 15:15                                                                 ` Tony Camuso
2008-01-29 15:29                                                                   ` Arjan van de Ven
2008-01-29 16:26                                                                     ` Tony Camuso
2008-01-29 23:57                                                                     ` Matthew Wilcox
2008-01-30  2:30                                                                       ` Tony Camuso
2008-01-30  3:45                                                             ` Matthew Wilcox
2008-01-30 15:15                                                               ` Ivan Kokshaysky
2008-01-30 15:42                                                                 ` Arjan van de Ven
2008-01-30 20:14                                                                   ` Ivan Kokshaysky
2008-01-31  5:51                                                             ` Jesse Barnes
2008-01-11 19:54   ` Arjan van de Ven
2008-01-11 20:55     ` Greg KH
2008-01-15 12:58 ` Øyvind Vågen Jægtnes
     [not found] <fa.m7tRTz/ymu3iMyLTO2aF1Tvaw24@ifi.uio.no>
     [not found] ` <fa.XrRLIuL4juNAXXaMPF3iY8FyWW8@ifi.uio.no>
     [not found]   ` <fa.gv3MUHxQvd7EaG/0hhC9IzBvIlA@ifi.uio.no>
2007-12-27 17:59     ` Robert Hancock
2007-12-27 19:47       ` Arjan van de Ven
     [not found]   ` <fa.H0fcNl3b6xVBwzWUgT72M4K6KOU@ifi.uio.no>
2007-12-27 18:15     ` Robert Hancock
2007-12-27 18:30       ` Kai Ruhnau
2007-12-27 18:58       ` Linus Torvalds
2007-12-27 21:10         ` Loic Prylli
2007-12-27 21:21           ` Matthew Wilcox
2007-12-27 21:37           ` Linus Torvalds
2007-12-27 21:46             ` Linus Torvalds
2007-12-27 22:18               ` Kai Ruhnau
2007-12-28  4:27                 ` Daniel Barkalow
2007-12-28  5:32                   ` Linus Torvalds
2007-12-28  6:07                     ` Daniel Barkalow
2007-12-28 10:34                       ` Ivan Kokshaysky
2007-12-28 16:14                         ` Arjan van de Ven
2007-12-28 16:38                           ` Ivan Kokshaysky
2007-12-28 17:40                             ` Loic Prylli
2007-12-28 21:12                               ` Ivan Kokshaysky
2008-01-13  6:01                                 ` Matthew Wilcox
2008-01-13  7:19                                   ` Loic Prylli
2007-12-28  5:31                 ` Benjamin Herrenschmidt
2007-12-27 21:59             ` Kai Ruhnau
2007-12-28  5:27             ` Benjamin Herrenschmidt
2007-12-28  5:29             ` Benjamin Herrenschmidt
2007-12-28  5:37               ` Linus Torvalds
2007-12-28  6:06                 ` Benjamin Herrenschmidt
2007-12-28 19:14                   ` Loic Prylli
2007-12-28 20:42                     ` Benjamin Herrenschmidt
2007-12-28  0:18         ` Robert Hancock
     [not found] <fa.2KorSXroIUtdRjFJWJwy49QuIYk@ifi.uio.no>
     [not found] ` <fa.KgDY4hzBogAL+o607R+LHzW+HTc@ifi.uio.no>
     [not found]   ` <fa.xzH/eH5b6vCHpOD31Cq2nyq6z/k@ifi.uio.no>
     [not found]     ` <fa.EPUIDYIoxtDNcRrL9p3fAkr80Lo@ifi.uio.no>
     [not found]       ` <fa.uPoC9dcdekzy7g8QYFyuwelukiQ@ifi.uio.no>
     [not found]         ` <fa.O9WUKjAu+MfGg712w8Y4HkQ7GIo@ifi.uio.no>
2008-01-13  1:56           ` Robert Hancock
     [not found]   ` <fa.y9bLGEm23C6rL/wz7kMpKYF67oM@ifi.uio.no>
     [not found]     ` <fa.S+otiE5kNySVMlhUagdf/n9GRIc@ifi.uio.no>
     [not found]       ` <fa.OH5C/OjPYJXn8kSOHV/09piVz0E@ifi.uio.no>
     [not found]         ` <fa.jj0GkdAagaR3CLapBSdT1psD3Ps@ifi.uio.no>
     [not found]           ` <fa.EgRiN/duILxBcenHk7dQyC+rldw@ifi.uio.no>
2008-01-14 23:59             ` Robert Hancock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080113075830.GC18741@parisc-linux.org \
    --to=matthew@wil.cx \
    --cc=arjan@infradead.org \
    --cc=benh@kernel.crashing.org \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jeff@garzik.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@atrey.karlin.mff.cuni.cz \
    --cc=loic@myri.com \
    --cc=mj@ucw.cz \
    --cc=tcamuso@redhat.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.