From owner-freebsd-acpi@FreeBSD.ORG Fri Apr 12 16:18:26 2013 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id F10B831F for ; Fri, 12 Apr 2013 16:18:26 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) by mx1.freebsd.org (Postfix) with ESMTP id D054C10B2 for ; Fri, 12 Apr 2013 16:18:26 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 0D316B96E; Fri, 12 Apr 2013 12:18:26 -0400 (EDT) From: John Baldwin To: freebsd-acpi@freebsd.org, hiren panchasara Subject: Re: kern/163268: [acpi_hp] [patch] fix driver detach in absence of CMI Date: Fri, 12 Apr 2013 11:42:02 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p25; KDE/4.5.5; amd64; ; ) References: <201304081930.r38JU1Ih054443@freefall.freebsd.org> In-Reply-To: <201304081930.r38JU1Ih054443@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201304121142.02419.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 12 Apr 2013 12:18:26 -0400 (EDT) X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2013 16:18:27 -0000 On Monday, April 08, 2013 3:30:01 pm hiren panchasara wrote: > The following reply was made to PR kern/163268; it has been noted by GNATS. > > From: hiren panchasara > To: bug-followup@FreeBSD.org, yuri.pankov@gmail.com > Cc: > Subject: Re: kern/163268: [acpi_hp] [patch] fix driver detach in absence of CMI > Date: Mon, 8 Apr 2013 12:29:11 -0700 > > I do not see any apparent problem in the proposed patch. Unfortunately > I do not have an hp to play with. > > Can someone look at the patch and try or approve so that we can make > progress on this? The current patch would incorrectly remove the notification handler if it failed with EBUSY. I'm compiling the following to see if it builds. I also think it is a bit less invasive. I have no way to test it however: Index: dev/acpi_support/acpi_hp.c =================================================================== --- dev/acpi_support/acpi_hp.c (revision 248326) +++ dev/acpi_support/acpi_hp.c (working copy) @@ -574,28 +574,26 @@ static int acpi_hp_detach(device_t dev) { - int ret; + struct acpi_hp_softc *sc; ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); - struct acpi_hp_softc *sc = device_get_softc(dev); - if (sc->has_cmi && sc->hpcmi_open_pid != 0) { - ret = EBUSY; - } - else { - if (sc->has_notify) { - ACPI_WMI_REMOVE_EVENT_HANDLER(dev, - ACPI_HP_WMI_EVENT_GUID); - } + sc = device_get_softc(dev); + if (sc->has_cmi && sc->hpcmi_open_pid != 0) + return (EBUSY); + + if (sc->has_notify) + ACPI_WMI_REMOVE_EVENT_HANDLER(dev, ACPI_HP_WMI_EVENT_GUID); + + if (sc->has_cmi) { if (sc->hpcmi_bufptr != -1) { sbuf_delete(&sc->hpcmi_sbuf); sc->hpcmi_bufptr = -1; } sc->hpcmi_open_pid = 0; destroy_dev(sc->hpcmi_dev_t); - ret = 0; } - return (ret); + return (0); } static int -- John Baldwin