From: Guenter Roeck <linux@roeck-us.net>
To: lm-sensors@vger.kernel.org
Subject: Re: [lm-sensors] [PATCH] hwmon: (nct6683) Fix probe unwind paths to properly unregister platform dev
Date: Sat, 24 May 2014 14:55:58 +0000 [thread overview]
Message-ID: <5380B2FE.8090702@roeck-us.net> (raw)
In-Reply-To: <1400898016.10421.1.camel@phoenix>
On 05/23/2014 07:20 PM, Axel Lin wrote:
> Call platform_device_unregister() rather than platform_device_put() to
> unregister successfully registered platform devices.
>
> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> ---
> drivers/hwmon/nct6683.c | 26 ++++++++++++++++----------
> 1 file changed, 16 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
> index 540c81c..1fd6098 100644
> --- a/drivers/hwmon/nct6683.c
> +++ b/drivers/hwmon/nct6683.c
> @@ -1389,13 +1389,15 @@ static int __init sensors_nct6683_init(void)
> pdev[i] = platform_device_alloc(DRVNAME, address);
> if (!pdev[i]) {
> err = -ENOMEM;
> - goto exit_device_put;
> + goto exit_device_unregister;
> }
>
> err = platform_device_add_data(pdev[i], &sio_data,
> sizeof(struct nct6683_sio_data));
> - if (err)
> - goto exit_device_put;
> + if (err) {
> + platform_device_put(pdev[i]);
> + goto exit_device_unregister;
> + }
>
> memset(&res, 0, sizeof(res));
> res.name = DRVNAME;
> @@ -1411,13 +1413,17 @@ static int __init sensors_nct6683_init(void)
> }
>
> err = platform_device_add_resources(pdev[i], &res, 1);
> - if (err)
> - goto exit_device_put;
> + if (err) {
> + platform_device_put(pdev[i]);
> + goto exit_device_unregister;
> + }
>
> /* platform_device_add calls probe() */
> err = platform_device_add(pdev[i]);
> - if (err)
> - goto exit_device_put;
> + if (err) {
> + platform_device_put(pdev[i]);
> + goto exit_device_unregister;
> + }
> }
> if (!found) {
> err = -ENODEV;
> @@ -1426,10 +1432,10 @@ static int __init sensors_nct6683_init(void)
>
> return 0;
>
> -exit_device_put:
> - for (i = 0; i < ARRAY_SIZE(pdev); i++) {
> +exit_device_unregister:
> + while (--i >= 0) {
Hi Axel,
Good catch. Note that nct6775 has the same problem, if you want to tackle
the problem there as well.
I think something like
exit_device_put:
platform_device_put(pdev[i]);
exit_device_unregister:
while (--i >= 0)
platform_device_unregister(pdev[i]);
would be better though since it saves all the individual calls to
platform_device_put(). Also, the if statement in the cleanup loop
is no longer necessary.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next prev parent reply other threads:[~2014-05-24 14:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-24 2:20 [lm-sensors] [PATCH] hwmon: (nct6683) Fix probe unwind paths to properly unregister platform devices Axel Lin
2014-05-24 14:55 ` Guenter Roeck [this message]
2014-05-24 15:08 ` [lm-sensors] [PATCH] hwmon: (nct6683) Fix probe unwind paths to properly unregister platform dev Axel Lin
2014-05-24 15:17 ` Axel Lin
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=5380B2FE.8090702@roeck-us.net \
--to=linux@roeck-us.net \
--cc=lm-sensors@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.