From owner-freebsd-smp@FreeBSD.ORG  Wed Aug 31 20:18:56 2005
Return-Path: <owner-freebsd-smp@FreeBSD.ORG>
X-Original-To: freebsd-smp@freebsd.org
Delivered-To: freebsd-smp@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 8E62D16A41F;
	Wed, 31 Aug 2005 20:18:56 +0000 (GMT) (envelope-from imp@bsdimp.com)
Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D228A43D48;
	Wed, 31 Aug 2005 20:18:55 +0000 (GMT) (envelope-from imp@bsdimp.com)
Received: from localhost (localhost.village.org [127.0.0.1] (may be forged))
	by harmony.bsdimp.com (8.13.3/8.13.3) with ESMTP id j7VKHkCc012669;
	Wed, 31 Aug 2005 14:17:46 -0600 (MDT) (envelope-from imp@bsdimp.com)
Date: Wed, 31 Aug 2005 14:18:12 -0600 (MDT)
Message-Id: <20050831.141812.45157237.imp@bsdimp.com>
To: jhb@freebsd.org
From: "M. Warner Losh" <imp@bsdimp.com>
In-Reply-To: <200508311556.19878.jhb@FreeBSD.org>
References: <200508301623.57973.jhb@FreeBSD.org>
	<20050830.150750.91757991.imp@bsdimp.com>
	<200508311556.19878.jhb@FreeBSD.org>
X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0
	(harmony.bsdimp.com [127.0.0.1]);
	Wed, 31 Aug 2005 14:17:46 -0600 (MDT)
Cc: freebsd-smp@freebsd.org, markir@paradise.net.nz
Subject: Re: 6.0 BETA3 reboot hangs on SMP system if BIOS USB disabled
X-BeenThere: freebsd-smp@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: FreeBSD SMP implementation group <freebsd-smp.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-smp>
List-Post: <mailto:freebsd-smp@freebsd.org>
List-Help: <mailto:freebsd-smp-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-smp>,
	<mailto:freebsd-smp-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 31 Aug 2005 20:18:56 -0000

In message: <200508311556.19878.jhb@FreeBSD.org>
            John Baldwin <jhb@FreeBSD.org> writes:
: Yes, that's ok.

OK.  I think that the following is sufficient.  Please test and let me
know.

Index: pci.c
===================================================================
RCS file: /cache/ncvs/src/sys/dev/pci/pci.c,v
retrieving revision 1.292
diff -u -r1.292 pci.c
--- pci.c	3 Jun 2005 19:41:06 -0000	1.292
+++ pci.c	31 Aug 2005 20:12:36 -0000
@@ -826,9 +826,14 @@
 	 * If base is 0, then we have problems.  It is best to ignore
 	 * such entries for the moment.  These will be allocated later if
 	 * the driver specifically requests them.
+	 *
+	 * Similarlly treat maps whose values is the same as the test value
+	 * read back.  These maps have had all f's written to them by the
+	 * BIOS in an attempt to disable the resources.
 	 */
-	if (base == 0)
+	if (base == 0 || map == testval)
 		return 1;
+
 	/*
 	 * This code theoretically does the right thing, but has
 	 * undesirable side effects in some cases where peripherals



Warner