Subject: [PATCH] [acpi driver model] Add/remove proc interface on driver registration Signed-off-by: Patrick Mochel --- drivers/acpi/drivers/core/driver.c | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-) applies-to: 40373e017c4c9637f713be5cba295dd51c80e760 662e196558531fc463bc000d7925287cb348104b diff --git a/drivers/acpi/drivers/core/driver.c b/drivers/acpi/drivers/core/driver.c index 4ac5ac3..52e7507 100644 --- a/drivers/acpi/drivers/core/driver.c +++ b/drivers/acpi/drivers/core/driver.c @@ -16,6 +16,7 @@ #include "core.h" #include "event.h" +#include "proc.h" /** * acpi_device_start - Fire up an ACPI device. @@ -199,6 +200,7 @@ static int acpi_device_resume(struct dev int acpi_driver_register(struct acpi_device_driver * drv) { + int ret; dbg("Registering driver %s", drv->d_drv.name); @@ -216,7 +218,23 @@ int acpi_driver_register(struct acpi_dev /* * Register driver with core */ - return driver_register(&drv->d_drv); + ret = driver_register(&drv->d_drv); + if (ret) + goto Done; + + /* + * Create the proc interface for the driver + */ + ret = acpi_driver_proc_add(drv); + if (ret) + goto Unregister; + + Done: + return ret; + + Unregister: + driver_unregister(&drv->d_drv); + goto Done; } EXPORT_SYMBOL_GPL(acpi_driver_register); @@ -230,6 +248,7 @@ EXPORT_SYMBOL_GPL(acpi_driver_register); void acpi_driver_unregister(struct acpi_device_driver * drv) { + acpi_driver_proc_remove(drv); driver_unregister(&drv->d_drv); } --- 0.99.9.GIT