Re: [PATCH net-next v2 1/7] mld: convert from timer to delayed work

2021-02-16 Thread Taehee Yoo
[...] >> 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 thi

Re: [PATCH net-next v2 1/7] mld: convert from timer to delayed work

2021-02-15 Thread Cong Wang
On Sun, Feb 14, 2021 at 2:56 AM Taehee Yoo wrote: > > > > On 21. 2. 14. 오전 4:07, Cong Wang wrote: > > On Sat, Feb 13, 2021 at 9:51 AM Taehee Yoo wrote: > >> -static void mld_dad_start_timer(struct inet6_dev *idev, unsigned > long delay) > >> +static void mld_dad_start_work(struct inet6_dev *id

Re: [PATCH net-next v2 1/7] mld: convert from timer to delayed work

2021-02-14 Thread Taehee Yoo
On 21. 2. 14. 오전 4:07, Cong Wang wrote: > On Sat, Feb 13, 2021 at 9:51 AM Taehee Yoo wrote: >> -static void mld_dad_start_timer(struct inet6_dev *idev, unsigned long delay) >> +static void mld_dad_start_work(struct inet6_dev *idev, unsigned long delay) >> { >> unsigned long tv =

Re: [PATCH net-next v2 1/7] mld: convert from timer to delayed work

2021-02-13 Thread Cong Wang
On Sat, Feb 13, 2021 at 9:51 AM Taehee Yoo wrote: > -static void mld_dad_start_timer(struct inet6_dev *idev, unsigned long delay) > +static void mld_dad_start_work(struct inet6_dev *idev, unsigned long delay) > { > unsigned long tv = prandom_u32() % delay; > > - if (!mod_timer(&idev

[PATCH net-next v2 1/7] mld: convert from timer to delayed work

2021-02-13 Thread Taehee Yoo
mcast.c has several timers for delaying works. Timer's expire handler is working under atomic context so it can't use sleepable things such as GFP_KERNEL, mutex, etc. In order to use sleepable APIs, it converts from timers to delayed work. But there are some critical sections, which is used by both