@@ -274,6 +274,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
274
274
add_timer );
275
275
struct mptcp_sock * msk = entry -> sock ;
276
276
struct sock * sk = (struct sock * )msk ;
277
+ unsigned int timeout ;
277
278
278
279
pr_debug ("msk=%p\n" , msk );
279
280
@@ -291,6 +292,10 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
291
292
goto out ;
292
293
}
293
294
295
+ timeout = mptcp_get_add_addr_timeout (sock_net (sk ));
296
+ if (!timeout )
297
+ goto out ;
298
+
294
299
spin_lock_bh (& msk -> pm .lock );
295
300
296
301
if (!mptcp_pm_should_add_signal_addr (msk )) {
@@ -302,7 +307,7 @@ static void mptcp_pm_add_timer(struct timer_list *timer)
302
307
303
308
if (entry -> retrans_times < ADD_ADDR_RETRANS_MAX )
304
309
sk_reset_timer (sk , timer ,
305
- jiffies + mptcp_get_add_addr_timeout ( sock_net ( sk )) );
310
+ jiffies + timeout );
306
311
307
312
spin_unlock_bh (& msk -> pm .lock );
308
313
@@ -344,6 +349,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
344
349
struct mptcp_pm_add_entry * add_entry = NULL ;
345
350
struct sock * sk = (struct sock * )msk ;
346
351
struct net * net = sock_net (sk );
352
+ unsigned int timeout ;
347
353
348
354
lockdep_assert_held (& msk -> pm .lock );
349
355
@@ -368,8 +374,9 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
368
374
369
375
timer_setup (& add_entry -> add_timer , mptcp_pm_add_timer , 0 );
370
376
reset_timer :
371
- sk_reset_timer (sk , & add_entry -> add_timer ,
372
- jiffies + mptcp_get_add_addr_timeout (net ));
377
+ timeout = mptcp_get_add_addr_timeout (net );
378
+ if (timeout )
379
+ sk_reset_timer (sk , & add_entry -> add_timer , jiffies + timeout );
373
380
374
381
return true;
375
382
}
0 commit comments