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 <hiren.panchas...@gmail.com>
> To: bug-follo...@freebsd.org, yuri.pan...@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
_______________________________________________
freebsd-acpi@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-acpi
To unsubscribe, send any mail to "freebsd-acpi-unsubscr...@freebsd.org"

Reply via email to