Thread (5 messages) flat view 5 messages, 2 authors, 2021-02-16

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

From: Cong Wang <hidden>
Date: 2021-02-13 19:08:15

On Sat, Feb 13, 2021 at 9:51 AM Taehee Yoo [off-list ref] 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->mc_dad_timer, jiffies+tv+2))
+       if (!mod_delayed_work(mld_wq, &idev->mc_dad_work, msecs_to_jiffies(tv + 2)))
IIUC, before this patch 'delay' is in jiffies, after this patch it is in msecs?

[...]
-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?

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help