Commit 6c0eb5ba authored by Dawei Li's avatar Dawei Li Committed by Rafael J. Wysocki
Browse files

ACPI: make remove callback of ACPI driver void



For bus-based driver, device removal is implemented as:
1 device_remove()->
2   bus->remove()->
3     driver->remove()

Driver core needs no inform from callee(bus driver) about the
result of remove callback. In that case, commit fc7a6209
("bus: Make remove callback return void") forces bus_type::remove
be void-returned.

Now we have the situation that both 1 & 2 of calling chain are
void-returned, so it does not make much sense for 3(driver->remove)
to return non-void to its caller.

So the basic idea behind this change is making remove() callback of
any bus-based driver to be void-returned.

This change, for itself, is for device drivers based on acpi-bus.

Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: default avatarLee Jones <lee@kernel.org>
Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarDawei Li <set_pte_at@outlook.com>
Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>  # for drivers/platform/surface/*
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent d7d43321
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -187,9 +187,9 @@ static int aml_nfw_add(struct acpi_device *device)
	return aml_nfw_add_global_handler();
}

static int aml_nfw_remove(struct acpi_device *device)
static void aml_nfw_remove(struct acpi_device *device)
{
	return aml_nfw_remove_global_handler();
	aml_nfw_remove_global_handler();
}

static const struct acpi_device_id aml_nfw_ids[] = {
+1 −2
Original line number Diff line number Diff line
@@ -183,13 +183,12 @@ static int xo15_sci_add(struct acpi_device *device)
	return r;
}

static int xo15_sci_remove(struct acpi_device *device)
static void xo15_sci_remove(struct acpi_device *device)
{
	acpi_disable_gpe(NULL, xo15_sci_gpe);
	acpi_remove_gpe_handler(NULL, xo15_sci_gpe, xo15_sci_gpe_handler);
	cancel_work_sync(&sci_work);
	sysfs_remove_file(&device->dev.kobj, &lid_wake_on_close_attr.attr);
	return 0;
}

#ifdef CONFIG_PM_SLEEP
+3 −5
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ MODULE_DESCRIPTION("ACPI AC Adapter Driver");
MODULE_LICENSE("GPL");

static int acpi_ac_add(struct acpi_device *device);
static int acpi_ac_remove(struct acpi_device *device);
static void acpi_ac_remove(struct acpi_device *device);
static void acpi_ac_notify(struct acpi_device *device, u32 event);

static const struct acpi_device_id ac_device_ids[] = {
@@ -288,12 +288,12 @@ static int acpi_ac_resume(struct device *dev)
#define acpi_ac_resume NULL
#endif

static int acpi_ac_remove(struct acpi_device *device)
static void acpi_ac_remove(struct acpi_device *device)
{
	struct acpi_ac *ac = NULL;

	if (!device || !acpi_driver_data(device))
		return -EINVAL;
		return;

	ac = acpi_driver_data(device);

@@ -301,8 +301,6 @@ static int acpi_ac_remove(struct acpi_device *device)
	unregister_acpi_notifier(&ac->battery_nb);

	kfree(ac);

	return 0;
}

static int __init acpi_ac_init(void)
+1 −2
Original line number Diff line number Diff line
@@ -449,7 +449,7 @@ static int acpi_pad_add(struct acpi_device *device)
	return 0;
}

static int acpi_pad_remove(struct acpi_device *device)
static void acpi_pad_remove(struct acpi_device *device)
{
	mutex_lock(&isolated_cpus_lock);
	acpi_pad_idle_cpus(0);
@@ -458,7 +458,6 @@ static int acpi_pad_remove(struct acpi_device *device)
	acpi_remove_notify_handler(device->handle,
		ACPI_DEVICE_NOTIFY, acpi_pad_notify);
	acpi_pad_remove_sysfs(device);
	return 0;
}

static const struct acpi_device_id pad_device_ids[] = {
+3 −5
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ static DEFINE_MUTEX(register_count_mutex);
static DEFINE_MUTEX(video_list_lock);
static LIST_HEAD(video_bus_head);
static int acpi_video_bus_add(struct acpi_device *device);
static int acpi_video_bus_remove(struct acpi_device *device);
static void acpi_video_bus_remove(struct acpi_device *device);
static void acpi_video_bus_notify(struct acpi_device *device, u32 event);
static void acpi_video_bus_register_backlight_work(struct work_struct *ignored);
static DECLARE_DELAYED_WORK(video_bus_register_backlight_work,
@@ -2067,13 +2067,13 @@ static int acpi_video_bus_add(struct acpi_device *device)
	return error;
}

static int acpi_video_bus_remove(struct acpi_device *device)
static void acpi_video_bus_remove(struct acpi_device *device)
{
	struct acpi_video_bus *video = NULL;


	if (!device || !acpi_driver_data(device))
		return -EINVAL;
		return;

	video = acpi_driver_data(device);

@@ -2087,8 +2087,6 @@ static int acpi_video_bus_remove(struct acpi_device *device)

	kfree(video->attached_array);
	kfree(video);

	return 0;
}

static void acpi_video_bus_register_backlight_work(struct work_struct *ignored)
Loading