Patchwork rtc: hid-sensor-time: Add missing spin_lock_init

login
register
mail settings
Submitter Axel Lin
Date Jan. 17, 2013, 1:49 a.m.
Message ID <1358387389.17958.1.camel@phoenix>
Download mbox | patch
Permalink /patch/213120/
State New
Headers show

Comments

Axel Lin - Jan. 17, 2013, 1:49 a.m.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/rtc/rtc-hid-sensor-time.c |    1 +
 1 file changed, 1 insertion(+)
Thiago Farina - Jan. 17, 2013, 1:58 a.m.
On Wed, Jan 16, 2013 at 11:49 PM, Axel Lin <axel.lin@ingics.com> wrote:
> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> ---
>  drivers/rtc/rtc-hid-sensor-time.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c
> index 0438c9e..31c5728 100644
> --- a/drivers/rtc/rtc-hid-sensor-time.c
> +++ b/drivers/rtc/rtc-hid-sensor-time.c
> @@ -225,6 +225,7 @@ static int hid_time_probe(struct platform_device *pdev)
>
>         platform_set_drvdata(pdev, time_state);
>
> +       spin_lock_init(&time_state->lock_last_time);
Can you explain in the commit message why it is missing?

For people not familiar with this code that isn't obvious.
Alexander Holler - Jan. 17, 2013, 12:47 p.m.
Am 17.01.2013 02:49, schrieb Axel Lin:

Thanks, yes, I missed it the initialization of the spinlock.

Below is my ack.

Regards,

Alexander

> Signed-off-by: Axel Lin <axel.lin@ingics.com>

Acked-by: Alexander Holler <holler@ahsoftware.de>

> ---
>   drivers/rtc/rtc-hid-sensor-time.c |    1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c
> index 0438c9e..31c5728 100644
> --- a/drivers/rtc/rtc-hid-sensor-time.c
> +++ b/drivers/rtc/rtc-hid-sensor-time.c
> @@ -225,6 +225,7 @@ static int hid_time_probe(struct platform_device *pdev)
>
>   	platform_set_drvdata(pdev, time_state);
>
> +	spin_lock_init(&time_state->lock_last_time);
>   	init_completion(&time_state->comp_last_time);
>   	time_state->common_attributes.hsdev = hsdev;
>   	time_state->common_attributes.pdev = pdev;
>
Alexander Holler - Jan. 17, 2013, 12:58 p.m.
Am 17.01.2013 02:58, schrieb Thiago Farina:
> On Wed, Jan 16, 2013 at 11:49 PM, Axel Lin <axel.lin@ingics.com> wrote:
>> Signed-off-by: Axel Lin <axel.lin@ingics.com>
>> ---
>>   drivers/rtc/rtc-hid-sensor-time.c |    1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c
>> index 0438c9e..31c5728 100644
>> --- a/drivers/rtc/rtc-hid-sensor-time.c
>> +++ b/drivers/rtc/rtc-hid-sensor-time.c
>> @@ -225,6 +225,7 @@ static int hid_time_probe(struct platform_device *pdev)
>>
>>          platform_set_drvdata(pdev, time_state);
>>
>> +       spin_lock_init(&time_state->lock_last_time);
> Can you explain in the commit message why it is missing?
>
> For people not familiar with this code that isn't obvious.
>

Every spinlock must be initialized once (to SPIN_LOCK_UNLOCKED or by 
using spin_lock_init()). On most architectures SPIN_LOCK_UNLOCKED is 
just zero, therefor  the kzalloc of the time_state does it (which likely 
is the case why I haven't spotted any error without the initialization), 
but that doesn't isn't true for all architectures.

Regards,

Alexander
Jonathan Cameron - Jan. 20, 2013, 12:02 p.m.
On 01/17/2013 12:47 PM, Alexander Holler wrote:
> Am 17.01.2013 02:49, schrieb Axel Lin:
> 
> Thanks, yes, I missed it the initialization of the spinlock.
> 
> Below is my ack.
> 
> Regards,
> 
> Alexander
> 
>> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> 
> Acked-by: Alexander Holler <holler@ahsoftware.de>
Applied to togreg branch of iio.git.

Thanks,
> 
>> ---
>>   drivers/rtc/rtc-hid-sensor-time.c |    1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c
>> index 0438c9e..31c5728 100644
>> --- a/drivers/rtc/rtc-hid-sensor-time.c
>> +++ b/drivers/rtc/rtc-hid-sensor-time.c
>> @@ -225,6 +225,7 @@ static int hid_time_probe(struct platform_device *pdev)
>>
>>       platform_set_drvdata(pdev, time_state);
>>
>> +    spin_lock_init(&time_state->lock_last_time);
>>       init_completion(&time_state->comp_last_time);
>>       time_state->common_attributes.hsdev = hsdev;
>>       time_state->common_attributes.pdev = pdev;
>>
>

Patch

diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c
index 0438c9e..31c5728 100644
--- a/drivers/rtc/rtc-hid-sensor-time.c
+++ b/drivers/rtc/rtc-hid-sensor-time.c
@@ -225,6 +225,7 @@  static int hid_time_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, time_state);
 
+	spin_lock_init(&time_state->lock_last_time);
 	init_completion(&time_state->comp_last_time);
 	time_state->common_attributes.hsdev = hsdev;
 	time_state->common_attributes.pdev = pdev;