Skip to content

Commit

Permalink
ACPI: fix sonypi ACPI driver registration to unregister on failure
Browse files Browse the repository at this point in the history
Remove the assumption that acpi_bus_register_driver() returns the number of
devices claimed.  Returning the count is unreliable because devices may be
hot-plugged in the future (admittedly not applicable for this driver).

This also fixes a bug: if sonypi_acpi_driver was registered but found no
devices, sonypi_exit() did not unregister it.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Bjorn Helgaas authored and Len Brown committed Apr 2, 2006
1 parent 578b333 commit e4513a5
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/char/sonypi.c
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ static struct sonypi_device {

#ifdef CONFIG_ACPI
static struct acpi_device *sonypi_acpi_device;
static int acpi_enabled;
static int acpi_driver_registered;
#endif

static int sonypi_ec_write(u8 addr, u8 value)
Expand Down Expand Up @@ -869,7 +869,7 @@ static irqreturn_t sonypi_irq(int irq, void *dev_id, struct pt_regs *regs)
sonypi_report_input_event(event);

#ifdef CONFIG_ACPI
if (acpi_enabled)
if (sonypi_acpi_device)
acpi_bus_generate_event(sonypi_acpi_device, 1, event);
#endif

Expand Down Expand Up @@ -1548,8 +1548,8 @@ static int __init sonypi_init(void)
goto err_free_device;

#ifdef CONFIG_ACPI
if (acpi_bus_register_driver(&sonypi_acpi_driver) > 0)
acpi_enabled = 1;
if (acpi_bus_register_driver(&sonypi_acpi_driver) >= 0)
acpi_driver_registered = 1;
#endif

return 0;
Expand All @@ -1564,7 +1564,7 @@ static int __init sonypi_init(void)
static void __exit sonypi_exit(void)
{
#ifdef CONFIG_ACPI
if (acpi_enabled)
if (acpi_driver_registered)
acpi_bus_unregister_driver(&sonypi_acpi_driver);
#endif
platform_device_unregister(sonypi_platform_device);
Expand Down

0 comments on commit e4513a5

Please sign in to comment.