From owner-svn-src-all@FreeBSD.ORG Tue Jul 30 18:41:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5D1F99A4; Tue, 30 Jul 2013 18:41:37 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3089A243B; Tue, 30 Jul 2013 18:41:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6UIfbGa023131; Tue, 30 Jul 2013 18:41:37 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6UIfaon023129; Tue, 30 Jul 2013 18:41:36 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <201307301841.r6UIfaon023129@svn.freebsd.org> From: Sean Bruno Date: Tue, 30 Jul 2013 18:41:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r253811 - head/sys/dev/ipmi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Jul 2013 18:41:37 -0000 Author: sbruno Date: Tue Jul 30 18:41:36 2013 New Revision: 253811 URL: http://svnweb.freebsd.org/changeset/base/253811 Log: After discussions, revert svn r253708. Changelog for 253708 was completely wrong and the code implemented something non-standard for the wrong reasons. Sponsored by: Yahoo! Inc. Modified: head/sys/dev/ipmi/ipmi_isa.c head/sys/dev/ipmi/ipmivars.h Modified: head/sys/dev/ipmi/ipmi_isa.c ============================================================================== --- head/sys/dev/ipmi/ipmi_isa.c Tue Jul 30 18:16:43 2013 (r253810) +++ head/sys/dev/ipmi/ipmi_isa.c Tue Jul 30 18:41:36 2013 (r253811) @@ -56,15 +56,8 @@ ipmi_isa_identify(driver_t *driver, devi struct ipmi_get_info info; uint32_t devid; - /* - * Give other drivers precedence. Unfortunately, this doesn't - * work if we have an SMBIOS table that duplicates a PCI device - * that's later on the bus than the PCI-ISA bridge. - */ - if (ipmi_attached) - return; - - if (ipmi_smbios_identify(&info) && info.iface_type != SSIF_MODE) { + if (ipmi_smbios_identify(&info) && info.iface_type != SSIF_MODE && + device_find_child(parent, "ipmi", -1) == NULL) { /* * XXX: Hack alert. On some broken systems, the IPMI * interface is described via SMBIOS, but the actual @@ -182,6 +175,14 @@ ipmi_isa_attach(device_t dev) !ipmi_hint_identify(dev, &info)) return (ENXIO); + /* + * Give other drivers precedence. Unfortunately, this doesn't + * work if we have an SMBIOS table that duplicates a PCI device + * that's later on the bus than the PCI-ISA bridge. + */ + if (ipmi_attached) + return (EBUSY); + switch (info.iface_type) { case KCS_MODE: count = 2; Modified: head/sys/dev/ipmi/ipmivars.h ============================================================================== --- head/sys/dev/ipmi/ipmivars.h Tue Jul 30 18:16:43 2013 (r253810) +++ head/sys/dev/ipmi/ipmivars.h Tue Jul 30 18:41:36 2013 (r253811) @@ -219,7 +219,7 @@ struct ipmi_ipmb { ((sc)->ipmi_io_res[1] != NULL ? OUTB_MULTIPLE(sc, x, value) : \ OUTB_SINGLE(sc, x, value)) -#define MAX_TIMEOUT 6 * hz +#define MAX_TIMEOUT 3 * hz int ipmi_attach(device_t); int ipmi_detach(device_t);