Messages in this thread Patch in this message | | | Date | Mon, 21 Apr 2008 17:02:30 -0400 | From | Andres Salomon <> | Subject | [PATCH] OLPC: only check for OFW signature on VSA-less Geodes |
| |
On Mon, 21 Apr 2008 21:25:17 +0100 David Woodhouse <dwmw2@infradead.org> wrote:
> On Mon, 2008-04-21 at 15:46 -0400, Andres Salomon wrote: > > Well, no, it wasn't already working; that's the reason this whole > > thread started. It was crashing someone's machine. That's why the OFW > > interface, as imperfect as it is, is an _improvement_. > > You're proposing a new interface between bootloader and kernel as a > temporary hack just to work around that until we fix it properly? > > That seems like overkill to me. I'd just go for is_geode() as you > suggested, and maybe PCI configuration tricks to detect the lack of VSA > so we can be _fairly_ sure it's OLPC before we poke at it? > > Or why not try '!page_is_ram(0xffffffc0 >> PAGE_SHIFT)' if it's just to > avoid that particular warning? :) >
Okay, does anyone have a problem with this?
The OFW sig check requires an ioremap that is dangerous on non-OLPC systems. Long term, we should be getting the signature from the device tree (/openprom/model), but for right now just limit the check to only run on a subset of Geode (GX2/LX) systems.
Signed-off-by: Andres Salomon <dilinger@debian.org> --- arch/x86/kernel/olpc.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/olpc.c b/arch/x86/kernel/olpc.c index 11670be..3e66722 100644 --- a/arch/x86/kernel/olpc.c +++ b/arch/x86/kernel/olpc.c @@ -211,6 +211,10 @@ static int __init olpc_init(void) { unsigned char *romsig; + /* The ioremap check is dangerous; limit what we run it on */ + if (!is_geode() || geode_has_vsa2()) + return 0; + spin_lock_init(&ec_lock); romsig = ioremap(0xffffffc0, 16); -- 1.5.4.4
-- Need a kernel or Debian developer? Contact me, I'm looking for contracts.
| |