[...]
>> By the way, I think the 'delay' is from the
>> unsolicited_report_interval() and it just return value of
>> idev->cnf.mldv{1 | 2}_unsolicited_report_interval.
>> I think this value is msecs, not jiffies.
>> So, It should be converted to use msecs_to_jiffies(), I think.
>> How do you think about it?
>
> Hmm? I think it is in jiffies:
>
>          .mldv1_unsolicited_report_interval = 10 * HZ,
>          .mldv2_unsolicited_report_interval = HZ,
>

Ah, yes, you're right!
Thanks,

>
>>
>>   > [...]
>>   >
>>   >> -static void mld_dad_timer_expire(struct timer_list *t)
>>   >> +static void mld_dad_work(struct work_struct *work)
>>   >>   {
>>   >> -       struct inet6_dev *idev = from_timer(idev, t, mc_dad_timer);
>> >> + struct inet6_dev *idev = container_of(to_delayed_work(work),
>>   >> +                                             struct inet6_dev,
>>   >> +                                             mc_dad_work);
>>   >>
>>   >> +       rtnl_lock();
>>   >
>>   > Any reason why we need RTNL after converting the timer to
>>   > delayed work?
>>   >
>>
>> For the moment, RTNL is not needed.
>> But the Resources, which are used by delayed_work will be protected by
>> RTNL instead of other locks.
>> So, It just pre-adds RTNL and the following patches will delete other locks.
>
> Sounds like this change does not belong to this patch. ;) If so,
> please move it to where ever more appropriate.
>

Yes, I will do that,
I will rearrange it then I will send a v3 patch.
Thank you so much for your review!

Reply via email to