tipc: fix compatibility bug in link monitoring
authorJon Paul Maloy <jon.maloy@ericsson.com>
Thu, 24 Nov 2016 02:05:26 +0000 (21:05 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sat, 26 Nov 2016 01:06:18 +0000 (20:06 -0500)
commitf79675563a6bbfc2ff85684bbbaea9ef092664d2
treea32f3f305c0b2548935cf6ebc009780853549e66
parent97db8afa2ab919fc400fe982f5054060868bdf07
tipc: fix compatibility bug in link monitoring

commit 817298102b0b ("tipc: fix link priority propagation") introduced a
compatibility problem between TIPC versions newer than Linux 4.6 and
those older than Linux 4.4. In versions later than 4.4, link STATE
messages only contain a non-zero link priority value when the sender
wants the receiver to change its priority. This has the effect that the
receiver resets itself in order to apply the new priority. This works
well, and is consistent with the said commit.

However, in versions older than 4.4 a valid link priority is present in
all sent link STATE messages, leading to cyclic link establishment and
reset on the 4.6+ node.

We fix this by adding a test that the received value should not only
be valid, but also differ from the current value in order to cause the
receiving link endpoint to reset.

Reported-by: Amar Nv <amar.nv005@gmail.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/link.c