[PATCH 4/4] staging: ozwpan: Create deferred work to destroy PD object.

Rupesh Gujare rupesh.gujare at atmel.com
Fri Aug 23 10:38:01 UTC 2013


On 22/08/13 18:45, Sergei Shtylyov wrote:
>> +void oz_pd_destroy(struct oz_pd *pd)
>> +{
>> +    int ret;
>> +
>> +    if (hrtimer_active(&pd->timeout))
>> +        hrtimer_cancel(&pd->timeout);
>> +    if (hrtimer_active(&pd->heartbeat))
>> +        hrtimer_cancel(&pd->heartbeat);
>> +
>> +    memset(&pd->workitem, 0, sizeof(pd->workitem));
>> +    INIT_WORK(&pd->workitem, oz_pd_free);
>
>    Hm, memset(), then INIT_WORK()? Is memset() necessary?

Opps.. you are right, I think we don't need memset() here.

>
>> +    ret = schedule_work(&pd->workitem);
>> +
>
>    Don't think empty line is needed here.


Yes, I agree. I will send follow on patches to fix this, as original 
patches had already been applied by Greg.


>
>> +    if (ret)
>> +        oz_pd_dbg(pd, ON, "failed to schedule workitem\n");
>> +}
>> +
>> +/*------------------------------------------------------------------------------ 
>>
>>    * Context: softirq-serialized
>>    */
>>   int oz_services_start(struct oz_pd *pd, u16 apps, int resume)
>> diff --git a/drivers/staging/ozwpan/ozpd.h 
>> b/drivers/staging/ozwpan/ozpd.h
>> index 996ef65..12c7129 100644
>> --- a/drivers/staging/ozwpan/ozpd.h
>> +++ b/drivers/staging/ozwpan/ozpd.h
>> @@ -99,6 +99,7 @@ struct oz_pd {
>>       u8      timeout_type;
>>       struct tasklet_struct   heartbeat_tasklet;
>>       struct tasklet_struct   timeout_tasklet;
>> +    struct work_struct workitem;
>
>    Er, other field names seem aligned, what about this one?
>

After applying patch, it looks all right to me.


-- 
Regards,
Rupesh Gujare



More information about the devel mailing list