summaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorMark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>2022-10-10 15:46:13 +1300
committerDavid S. Miller <davem@davemloft.net>2022-10-14 08:17:52 +0100
commit28be7ca4fcfd69a2d52aaa331adbf9dbe91f9e6e (patch)
tree48ef789d9109b965ff5bed4da716b51790e10ff1 /net/tipc
parent66ae04368efbe20eb8951c9a76158f99ce672f25 (diff)
downloadlinux-28be7ca4fcfd69a2d52aaa331adbf9dbe91f9e6e.tar.gz
linux-28be7ca4fcfd69a2d52aaa331adbf9dbe91f9e6e.tar.bz2
linux-28be7ca4fcfd69a2d52aaa331adbf9dbe91f9e6e.zip
tipc: Fix recognition of trial period
The trial period exists until jiffies is after addr_trial_end. But as jiffies will eventually overflow, just using time_after will eventually give incorrect results. As the node address is set once the trial period ends, this can be used to know that we are not in the trial period. Fixes: e415577f57f4 ("tipc: correct discovery message handling during address trial period") Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/discover.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/tipc/discover.c b/net/tipc/discover.c
index da69e1abf68f..e8630707901e 100644
--- a/net/tipc/discover.c
+++ b/net/tipc/discover.c
@@ -148,8 +148,8 @@ static bool tipc_disc_addr_trial_msg(struct tipc_discoverer *d,
{
struct net *net = d->net;
struct tipc_net *tn = tipc_net(net);
- bool trial = time_before(jiffies, tn->addr_trial_end);
u32 self = tipc_own_addr(net);
+ bool trial = time_before(jiffies, tn->addr_trial_end) && !self;
if (mtyp == DSC_TRIAL_FAIL_MSG) {
if (!trial)