From: Lars-Peter Clausen <lars@metafoo.de>
To: Alexander Holler <holler@ahsoftware.de>
Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
Jonathan Cameron <jic23@cam.ac.uk>,
rtc-linux@googlegroups.com,
Alessandro Zummo <a.zummo@towertech.it>,
srinivas pandruvada <srinivas.pandruvada@intel.com>
Subject: Re: [PATCH 3/3 v2] iio: add rtc-driver for HID sensors of type time
Date: Mon, 10 Dec 2012 23:36:54 +0100 [thread overview]
Message-ID: <50C66406.9090606@metafoo.de> (raw)
In-Reply-To: <50C6603E.5070909@ahsoftware.de>
On 12/10/2012 11:20 PM, Alexander Holler wrote:
> [...]
>>> + init_completion(&time_state->comp_last_time);
>>
>> This needs to be INIT_COMPLETION. init_completion must be called exactly
>> once on a completion, which should be from inside probe() in this case.
>
> Ah, so I've misread http://lwn.net/Articles/23993/ . I've read it as
> init_completion() is usable multiple times (I had the impression
> INIT_COMPLETION got replaced by init_completion().
>
Well, I've been exaggerating a bit, you can call it multiple times, but you
need to make sure that the completion is not in use at the same time, since
init_completion will completely reinitialize the struct and if it is in use at
the same time you'll get undefined behavior. So it is a good rule of thumb to
just use it once in probe(). INIT_COMPLETION on the other hand will just clear
the done flag, so you know that between your call to INIT_COMPLETION and when
wait_for_completion returns successfully your event has occurred at least once.
>>> + /* wait for all values (event) */
>>> +
>>> wait_for_completion_interruptible_timeout(&time_state->comp_last_time,
>>> + HZ*6);
>>
>> You should check the return value in case either a timeout happens or the
>> sleep is interrupted.
>
> Yes, I already wanted to do it, but it seems I've forgotten it.
>
>>> + struct hid_time_state *time_state =
>>> + kzalloc(sizeof(struct hid_time_state), GFP_KERNEL);
>>
>> You could use devm_kzalloc here. By doing so you don't have to take
>> care of
>> freeing it again since it will be auto-freed once the device is removed.
>
> Thanks. I already searched such and wondered why such didn't exist. Just
> to clarify, if I use devm_kzalloc, I don't have to free time_state here
>
>>> +error_free_drvdata:
>>> + platform_set_drvdata(pdev, NULL);
>>
>> Setting the platform data to NULL should not be necessary. Some
>> drivers do
>> this but it's kind of the result of cargo-cult-coding.
>>
>>> + kfree(time_state);
>>> +error_ret:
>>> + return ret;
>>> +}
>>> +
>>> +static int __devinit hid_time_remove(struct platform_device *pdev)
>>> +{
>>> + struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
>>> + struct hid_time_state *time_state = platform_get_drvdata(pdev);
>>> +
>>> + if (!IS_ERR(time_state->rtc))
>>> + rtc_device_unregister(time_state->rtc);
>>> + sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TIME);
>>> + platform_set_drvdata(pdev, NULL);
>>
>
> and here?
>
yes.
next prev parent reply other threads:[~2012-12-10 22:36 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-09 12:21 [PATCH 0/3] iio: HID sensor time (as RTC) Alexander Holler
2012-12-09 12:21 ` [PATCH 1/3] iio: hid-sensors: respect CONFIG_IIO_TRIGGER Alexander Holler
2012-12-09 12:21 ` [PATCH 2/3] iio: Add Usage IDs for HID time sensors Alexander Holler
2012-12-09 12:21 ` [PATCH 3/3] iio: add rtc-driver for HID sensors of type time Alexander Holler
2012-12-09 12:55 ` Lars-Peter Clausen
2012-12-09 16:40 ` Alexander Holler
2012-12-09 18:16 ` Alexander Holler
2012-12-09 19:20 ` Lars-Peter Clausen
2012-12-10 13:12 ` Alexander Holler
2012-12-10 14:51 ` [PATCH 3/3 v2] " Alexander Holler
2012-12-10 17:05 ` Lars-Peter Clausen
2012-12-10 19:45 ` Alexander Holler
2012-12-10 20:22 ` Lars-Peter Clausen
2012-12-10 21:26 ` Alexander Holler
2012-12-10 21:39 ` Lars-Peter Clausen
2012-12-10 21:42 ` Jonathan Cameron
2012-12-10 22:50 ` Alexander Holler
2012-12-11 9:31 ` Jonathan Cameron
2012-12-11 9:40 ` Lars-Peter Clausen
2012-12-11 12:39 ` Alexander Holler
2012-12-11 13:54 ` Jonathan Cameron
2012-12-11 18:21 ` [PATCH 1/4 v2] iio: hid-sensors: respect CONFIG_IIO_TRIGGER Alexander Holler
2012-12-11 18:21 ` [PATCH 2/4 RESEND] iio: Add Usage IDs for HID time sensors Alexander Holler
2012-12-15 11:06 ` Jonathan Cameron
2012-12-15 12:41 ` Alexander Holler
2012-12-15 12:45 ` [PATCH 1/4 " Alexander Holler
2012-12-15 12:45 ` [PATCH 2/4 RESEND] iio: merge hid-sensor-attributes.h into hid-sensor-hub.h Alexander Holler
2013-01-03 9:41 ` Jiri Kosina
2013-01-06 11:50 ` Jonathan Cameron
2012-12-15 12:45 ` [PATCH 3/4 v5 RESEND] rtc: add rtc-driver for HID sensors of type time Alexander Holler
2013-01-03 22:39 ` Andrew Morton
2013-01-04 9:18 ` Jiri Kosina
2013-01-04 13:10 ` Alexander Holler
2013-01-06 11:50 ` Jonathan Cameron
2012-12-15 12:45 ` [PATCH 4/4 RESEND] hid: iio: rename struct hid_sensor_iio_common to hid_sensor_common Alexander Holler
2013-01-03 9:42 ` Jiri Kosina
2013-01-06 11:50 ` Jonathan Cameron
2013-01-03 9:40 ` [PATCH 1/4 RESEND] iio: Add Usage IDs for HID time sensors Jiri Kosina
2013-01-06 11:51 ` Jonathan Cameron
2012-12-11 18:21 ` [PATCH 3/4] iio: merge hid-sensor-attributes.h into hid-sensor-hub.h Alexander Holler
2012-12-12 15:45 ` Pandruvada, Srinivas
2012-12-12 20:10 ` Alexander Holler
2012-12-12 20:28 ` [PATCHi 5/4] hid: iio: rename struct hid_sensor_iio_common to hid_sensor_common Alexander Holler
2012-12-12 21:04 ` Pandruvada, Srinivas
2012-12-11 18:21 ` [PATCH 4/4 v3] rtc: add rtc-driver for HID sensors of type time Alexander Holler
2012-12-12 9:51 ` Lars-Peter Clausen
2012-12-12 10:14 ` Alexander Holler
2012-12-12 10:18 ` Lars-Peter Clausen
2012-12-12 11:11 ` [PATCH 4/4 v4] " Alexander Holler
2012-12-14 9:42 ` Lars-Peter Clausen
2012-12-14 13:08 ` Alexander Holler
2012-12-14 14:15 ` Alexander Holler
2012-12-14 14:29 ` Alexander Holler
2012-12-14 14:34 ` Lars-Peter Clausen
2012-12-14 15:24 ` Alexander Holler
2012-12-14 16:33 ` Lars-Peter Clausen
2012-12-14 21:24 ` Alexander Holler
2012-12-14 22:02 ` [PATCH 4/4 v5] " Alexander Holler
2012-12-15 10:54 ` [PATCH 1/4 v2] iio: hid-sensors: respect CONFIG_IIO_TRIGGER Jonathan Cameron
2012-12-15 12:37 ` Alexander Holler
2012-12-16 22:15 ` [PATCH 3/3 v2] iio: add rtc-driver for HID sensors of type time Alessandro Zummo
2012-12-17 7:38 ` Alexander Holler
2012-12-10 22:20 ` Alexander Holler
2012-12-10 22:36 ` Lars-Peter Clausen [this message]
2012-12-11 0:01 ` Alexander Holler
2012-12-11 10:35 ` Alan Cox
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=50C66406.9090606@metafoo.de \
--to=lars@metafoo.de \
--cc=a.zummo@towertech.it \
--cc=holler@ahsoftware.de \
--cc=jic23@cam.ac.uk \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rtc-linux@googlegroups.com \
--cc=srinivas.pandruvada@intel.com \
/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.