From: Matthew Wilcox <matthew@wil.cx>
To: Brad Spengler <spender@grsecurity.net>
Cc: Yinghai Lu <yinghai@kernel.org>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
linux-ia64@vger.kernel.org
Subject: [PATCH] ia64: Don't call SAL < 3.2 for extended config space
Date: Mon, 12 Oct 2009 08:24:30 -0600 [thread overview]
Message-ID: <20091012142430.GE7545@parisc-linux.org> (raw)
In-Reply-To: <20091012135628.GA310@grsecurity.net>
On Mon, Oct 12, 2009 at 09:56:28AM -0400, Brad Spengler wrote:
> > So how about we go back to adding that check ... this does require that
> > SGI's 750 machine reports its SAL revision correctly. Could you send
> > the dmesg?
>
> The dmesg of the working kernel:
> http://grsecurity.net/~spender/dmesg.txt
Thanks, that's reporting SAL 3.0, so it will be correctly caught by
this patch:
---
From: Matthew Wilcox <willy@linux.intel.com>
Subject: Require SAL 3.2 in order to do extended config space ops
We had assumed that SAL firmware would return an error if it didn't
understand extended config space. Unfortunately, the SAL on the SGI 750
doesn't do that, it panics the machine. So, condition the extended PCI
config space accesses on SAL revision 3.2.
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 7de76dd..61363cc 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -56,10 +56,13 @@ int raw_pci_read(unsigned int seg, unsigned int bus, unsigned int devfn,
if ((seg | reg) <= 255) {
addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
mode = 0;
- } else {
+ } else if (sal_revision >= SAL_VERSION_CODE(3,2))
addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
mode = 1;
+ } else {
+ return -EINVAL;
}
+
result = ia64_sal_pci_config_read(addr, mode, len, &data);
if (result != 0)
return -EINVAL;
@@ -80,9 +83,11 @@ int raw_pci_write(unsigned int seg, unsigned int bus, unsigned int devfn,
if ((seg | reg) <= 255) {
addr = PCI_SAL_ADDRESS(seg, bus, devfn, reg);
mode = 0;
- } else {
+ } else if (sal_revision >= SAL_VERSION_CODE(3,2))
addr = PCI_SAL_EXT_ADDRESS(seg, bus, devfn, reg);
mode = 1;
+ } else {
+ return -EINVAL;
}
result = ia64_sal_pci_config_write(addr, mode, len, value);
if (result != 0)
--
Matthew Wilcox Intel Open Source Technology Centre
"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."
next prev parent reply other threads:[~2009-10-12 14:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20091011074531.GA12357@grsecurity.net>
2009-10-11 10:06 ` Boot-time crash from "PCI/x86: detect host bridge config space size w/o using quirks" Yinghai Lu
2009-10-11 21:00 ` [PATCH] pci: fix crash about old IA64 about pci_cfg_space_size Yinghai Lu
2009-10-11 21:32 ` Brad Spengler
2009-10-11 23:10 ` Matthew Wilcox
2009-10-12 13:56 ` Brad Spengler
2009-10-12 14:24 ` Matthew Wilcox [this message]
2009-10-13 3:33 ` [PATCH] ia64: Don't call SAL < 3.2 for extended config space Brad Spengler
2009-10-13 4:58 ` Brad Spengler
2009-11-04 17:16 ` Jesse Barnes
2009-11-04 17:20 ` Luck, Tony
2009-11-04 17:22 ` Jesse Barnes
2009-10-11 22:16 ` [RFC PATCH] ia64/pci: add ext pci config detection for SAL 3.2 less Yinghai Lu
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=20091012142430.GE7545@parisc-linux.org \
--to=matthew@wil.cx \
--cc=hpa@zytor.com \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=spender@grsecurity.net \
--cc=yinghai@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).