From: Len Brown <lenb@kernel.org>
To: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ACPI: dock: use dynamically allocated platform device
Date: Thu, 10 May 2007 03:44:12 -0400 [thread overview]
Message-ID: <200705100344.12706.lenb@kernel.org> (raw)
In-Reply-To: <20070509150704.64e454ab.kristen.c.accardi@intel.com>
This batch of 7 patches is applied to acpi-test.
thanks,
-Len
On Wednesday 09 May 2007 18:07, Kristen Carlson Accardi wrote:
> ACPI: dock: use dynamically allocated platform device
>
> Get rid of no release function warnings by switching to dynamically
> allocating the platform_device and using the platform device release
> routine in the base driver.
>
> Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
> Index: 2.6-git/drivers/acpi/dock.c
> ===================================================================
> --- 2.6-git.orig/drivers/acpi/dock.c
> +++ 2.6-git/drivers/acpi/dock.c
> @@ -41,7 +41,7 @@ MODULE_DESCRIPTION(ACPI_DOCK_DRIVER_DESC
> MODULE_LICENSE("GPL");
>
> static struct atomic_notifier_head dock_notifier_list;
> -static struct platform_device dock_device;
> +static struct platform_device *dock_device;
> static char dock_device_name[] = "dock";
>
> struct dock_station {
> @@ -327,7 +327,7 @@ static void hotplug_dock_devices(struct
>
> static void dock_event(struct dock_station *ds, u32 event, int num)
> {
> - struct device *dev = &dock_device.dev;
> + struct device *dev = &dock_device->dev;
> /*
> * Indicate that the status of the dock station has
> * changed.
> @@ -710,37 +710,36 @@ static int dock_add(acpi_handle handle)
> ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
>
> /* initialize platform device stuff */
> - dock_device.name = dock_device_name;
> - ret = platform_device_register(&dock_device);
> - if (ret) {
> - printk(KERN_ERR PREFIX "Error %d registering dock device\n", ret);
> + dock_device =
> + platform_device_register_simple(dock_device_name, 0, NULL, 0);
> + if (IS_ERR(dock_device)) {
> kfree(dock_station);
> dock_station = NULL;
> - return ret;
> + return PTR_ERR(dock_device);
> }
> - ret = device_create_file(&dock_device.dev, &dev_attr_docked);
> + ret = device_create_file(&dock_device->dev, &dev_attr_docked);
> if (ret) {
> printk("Error %d adding sysfs file\n", ret);
> - platform_device_unregister(&dock_device);
> + platform_device_unregister(dock_device);
> kfree(dock_station);
> dock_station = NULL;
> return ret;
> }
> - ret = device_create_file(&dock_device.dev, &dev_attr_undock);
> + ret = device_create_file(&dock_device->dev, &dev_attr_undock);
> if (ret) {
> printk("Error %d adding sysfs file\n", ret);
> - device_remove_file(&dock_device.dev, &dev_attr_docked);
> - platform_device_unregister(&dock_device);
> + device_remove_file(&dock_device->dev, &dev_attr_docked);
> + platform_device_unregister(dock_device);
> kfree(dock_station);
> dock_station = NULL;
> return ret;
> }
> - ret = device_create_file(&dock_device.dev, &dev_attr_uid);
> + ret = device_create_file(&dock_device->dev, &dev_attr_uid);
> if (ret) {
> printk("Error %d adding sysfs file\n", ret);
> - device_remove_file(&dock_device.dev, &dev_attr_docked);
> - device_remove_file(&dock_device.dev, &dev_attr_undock);
> - platform_device_unregister(&dock_device);
> + device_remove_file(&dock_device->dev, &dev_attr_docked);
> + device_remove_file(&dock_device->dev, &dev_attr_undock);
> + platform_device_unregister(dock_device);
> kfree(dock_station);
> dock_station = NULL;
> return ret;
> @@ -779,10 +778,10 @@ static int dock_add(acpi_handle handle)
> dock_add_err:
> kfree(dd);
> dock_add_err_unregister:
> - device_remove_file(&dock_device.dev, &dev_attr_docked);
> - device_remove_file(&dock_device.dev, &dev_attr_undock);
> - device_remove_file(&dock_device.dev, &dev_attr_uid);
> - platform_device_unregister(&dock_device);
> + device_remove_file(&dock_device->dev, &dev_attr_docked);
> + device_remove_file(&dock_device->dev, &dev_attr_undock);
> + device_remove_file(&dock_device->dev, &dev_attr_uid);
> + platform_device_unregister(dock_device);
> kfree(dock_station);
> dock_station = NULL;
> return ret;
> @@ -812,10 +811,10 @@ static int dock_remove(void)
> printk(KERN_ERR "Error removing notify handler\n");
>
> /* cleanup sysfs */
> - device_remove_file(&dock_device.dev, &dev_attr_docked);
> - device_remove_file(&dock_device.dev, &dev_attr_undock);
> - device_remove_file(&dock_device.dev, &dev_attr_uid);
> - platform_device_unregister(&dock_device);
> + device_remove_file(&dock_device->dev, &dev_attr_docked);
> + device_remove_file(&dock_device->dev, &dev_attr_undock);
> + device_remove_file(&dock_device->dev, &dev_attr_uid);
> + platform_device_unregister(dock_device);
>
> /* free dock station memory */
> kfree(dock_station);
>
>
prev parent reply other threads:[~2007-05-10 7:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-09 22:07 [PATCH] ACPI: dock: use dynamically allocated platform device Kristen Carlson Accardi
2007-05-10 7:44 ` Len Brown [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200705100344.12706.lenb@kernel.org \
--to=lenb@kernel.org \
--cc=kristen.c.accardi@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.