From owner-cvs-src@FreeBSD.ORG Wed Mar 12 20:57:18 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E9621065675; Wed, 12 Mar 2008 20:57:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 575F98FC2F; Wed, 12 Mar 2008 20:57:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2CKvIWm012199; Wed, 12 Mar 2008 20:57:18 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from jhb@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2CKvITs012197; Wed, 12 Mar 2008 20:57:18 GMT (envelope-from jhb) Message-Id: <200803122057.m2CKvITs012197@repoman.freebsd.org> From: John Baldwin Date: Wed, 12 Mar 2008 20:57:17 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/usb ehci_pci.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Mar 2008 20:57:18 -0000 jhb 2008-03-12 20:57:17 UTC FreeBSD src repository Modified files: sys/dev/usb ehci_pci.c Log: Relax the BIOS/OS sempahore handoff code to workaround different hard hangs (one at boot, one at shutdown) in recent machines. First, only try to take ownership of the EHCI controller if the BIOS currently owns the controller. On a HP DL160 G5, the machine hangs when we try to take ownership. Second, don't bother trying to give up ownership of the controller during shutdown. It's not strictly required and a Dell DCS S29 hangs on shutdown after the config write. Both of these changes match the behavior of the Linux EHCI driver. I also think both of these hangs are caused by bugs in the BIOS' SMM handler causing it to get stuck in an infinite loop in SMM. MFC after: 1 week Revision Changes Path 1.30 +4 -1 src/sys/dev/usb/ehci_pci.c