Module Name: src Committed By: jruoho Date: Mon Mar 1 13:16:22 UTC 2010
Modified Files: src/sys/dev/acpi: smbus_acpi.c Log Message: Destroy the callout(9) when detaching. Also evaluate the removal of the notify handler before going to demolishing business. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/dev/acpi/smbus_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/smbus_acpi.c diff -u src/sys/dev/acpi/smbus_acpi.c:1.2 src/sys/dev/acpi/smbus_acpi.c:1.3 --- src/sys/dev/acpi/smbus_acpi.c:1.2 Mon Mar 1 05:37:37 2010 +++ src/sys/dev/acpi/smbus_acpi.c Mon Mar 1 13:16:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: smbus_acpi.c,v 1.2 2010/03/01 05:37:37 jruoho Exp $ */ +/* $NetBSD: smbus_acpi.c,v 1.3 2010/03/01 13:16:21 jruoho Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbus_acpi.c,v 1.2 2010/03/01 05:37:37 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbus_acpi.c,v 1.3 2010/03/01 13:16:21 jruoho Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -274,18 +274,16 @@ struct acpi_smbus_softc *sc = device_private(self); ACPI_STATUS rv; - pmf_device_deregister(self); - - callout_halt(&sc->sc_callout, NULL); - rv = AcpiRemoveNotifyHandler(sc->sc_devnode->ad_handle, ACPI_DEVICE_NOTIFY, acpi_smbus_notify_handler); - if (ACPI_FAILURE(rv)) { - aprint_error_dev(self, - "unable to deregister DEVICE NOTIFY handler: %s\n", - AcpiFormatException(rv)); + + if (ACPI_FAILURE(rv)) return EBUSY; - } + + pmf_device_deregister(self); + + callout_halt(&sc->sc_callout, NULL); + callout_destroy(&sc->sc_callout); mutex_destroy(&sc->sc_i2c_mutex);