Jon Paul Maloy
ed43594aed
tipc: remove premature ESTABLISH FSM event at link synchronization
...
When a link between two nodes come up, both endpoints will initially
send out a STATE message to the peer, to increase the probability that
the peer endpoint also is up when the first traffic message arrives.
Thereafter, if the establishing link is the second link between two
nodes, this first "traffic" message is a TUNNEL_PROTOCOL/SYNCH message,
helping the peer to perform initial synchronization between the two
links.
However, the initial STATE message may be lost, in which case the SYNCH
message will be the first one arriving at the peer. This should also
work, as the SYNCH message itself will be used to take up the link
endpoint before initializing synchronization.
Unfortunately the code for this case is broken. Currently, the link is
brought up through a tipc_link_fsm_evt(ESTABLISHED) when a SYNCH
arrives, whereupon __tipc_node_link_up() is called to distribute the
link slots and take the link into traffic. But, __tipc_node_link_up() is
itself starting with a test for whether the link is up, and if true,
returns without action. Clearly, the tipc_link_fsm_evt(ESTABLISHED) call
is unnecessary, since tipc_node_link_up() is itself issuing such an
event, but also harmful, since it inhibits tipc_node_link_up() to
perform the test of its tasks, and the link endpoint in question hence
is never taken into traffic.
This problem has been exposed when we set up dual links between pre-
and post-4.4 kernels, because the former ones don't send out the
initial STATE message described above.
We fix this by removing the unnecessary event call.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-09 22:38:06 -07:00
..
6lowpan
9p
Merge branch 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2017-07-15 12:00:42 -07:00
802
net: introduce __skb_put_[zero, data, u8]
2017-06-20 13:30:14 -04:00
8021q
net: add netlink_ext_ack argument to rtnl_link_ops.validate
2017-06-26 23:13:22 -04:00
appletalk
networking: make skb_push & __skb_push return void pointers
2017-06-16 11:48:40 -04:00
atm
net, atm: convert eg_cache_entry.use from atomic_t to refcount_t
2017-07-04 22:35:16 +01:00
ax25
net, ax25: convert ax25_cb.refcount from atomic_t to refcount_t
2017-07-04 22:35:19 +01:00
batman-adv
batman-adv: fix TT sync flag inconsistencies
2017-07-31 11:17:38 +02:00
bluetooth
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2017-07-05 12:31:59 -07:00
bpf
bridge
net: bridge: fix dest lookup when vlan proto doesn't match
2017-07-14 08:19:23 -07:00
caif
net: convert sock.sk_wmem_alloc from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
can
networking: introduce and use skb_put_data()
2017-06-16 11:48:37 -04:00
ceph
libceph: make RECOVERY_DELETES feature create a new interval
2017-08-01 16:46:45 +02:00
core
net: avoid skb_warn_bad_offload false positives on UFO
2017-08-08 21:39:01 -07:00
dcb
dcb: enforce minimum length on IEEE_APPS attribute
2017-05-21 13:42:33 -04:00
dccp
dccp: fix a memleak for dccp_feat_init err process
2017-07-27 00:01:05 -07:00
decnet
net, decnet: convert dn_fib_info.fib_clntref from atomic_t to refcount_t
2017-07-04 22:35:15 +01:00
dns_resolver
dsa
net: dsa: Initialize ds->cpu_port_mask earlier
2017-07-24 17:36:27 -07:00
ethernet
networking: make skb_push & __skb_push return void pointers
2017-06-16 11:48:40 -04:00
hsr
net: add netlink_ext_ack argument to rtnl_link_ops.newlink
2017-06-26 23:13:21 -04:00
ieee802154
net: add netlink_ext_ack argument to rtnl_link_ops.validate
2017-06-26 23:13:22 -04:00
ife
ipv4
net: avoid skb_warn_bad_offload false positives on UFO
2017-08-08 21:39:01 -07:00
ipv6
net: avoid skb_warn_bad_offload false positives on UFO
2017-08-08 21:39:01 -07:00
ipx
net, ipx: convert ipx_route.refcnt from atomic_t to refcount_t
2017-07-04 22:35:17 +01:00
irda
Merge branch 'work.memdup_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2017-07-05 16:05:24 -07:00
iucv
iucv: Convert sk_wmem_alloc accesses to refcount_t.
2017-07-03 02:31:22 -07:00
kcm
net: convert sock.sk_wmem_alloc from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
key
net, xfrm: convert xfrm_policy.refcnt from atomic_t to refcount_t
2017-07-04 22:35:18 +01:00
l2tp
net, l2tp: convert l2tp_session.ref_count from atomic_t to refcount_t
2017-07-04 22:35:15 +01:00
l3mdev
lapb
net, lapb: convert lapb_cb.refcnt from atomic_t to refcount_t
2017-07-04 22:35:16 +01:00
llc
net, llc: convert llc_sap.refcnt from atomic_t to refcount_t
2017-07-04 22:35:15 +01:00
mac80211
net: manual clean code which call skb_put_[data:zero]
2017-06-20 13:30:15 -04:00
mac802154
net: Fix inconsistent teardown and release of private netdev state.
2017-06-07 15:53:24 -04:00
mpls
mpls: fix uninitialized in_label var warning in mpls_getroute
2017-07-08 11:26:41 +01:00
ncsi
networking: make skb_push & __skb_push return void pointers
2017-06-16 11:48:40 -04:00
netfilter
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-07-20 16:33:39 -07:00
netlabel
netlink
net: convert sock.sk_refcnt from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
netrom
net, netrom: convert nr_node.refcount from atomic_t to refcount_t
2017-07-04 22:35:17 +01:00
nfc
NFC: Add sockaddr length checks before accessing sa_family in bind handlers
2017-06-23 00:38:31 +02:00
openvswitch
openvswitch: fix potential out of bound access in parse_ct
2017-07-24 16:25:06 -07:00
packet
packet: fix use-after-free in prb_retire_rx_blk_timer_expired()
2017-07-24 17:33:19 -07:00
phonet
net: convert sock.sk_refcnt from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
psample
networking: make skb_put & friends return void pointers
2017-06-16 11:48:39 -04:00
qrtr
networking: make skb_put & friends return void pointers
2017-06-16 11:48:39 -04:00
rds
rds: Reintroduce statistics counting
2017-08-08 21:03:47 -07:00
rfkill
net: rfkill: gpio: Switch to devm_acpi_dev_add_driver_gpios()
2017-06-13 11:07:51 +02:00
rose
rxrpc
net: convert sock.sk_refcnt from atomic_t to refcount_t
2017-07-01 07:39:08 -07:00
sched
net: sched: set xt_tgchk_param par.net properly in ipt_init_target
2017-08-08 20:38:00 -07:00
sctp
sctp: fix an array overflow when all ext chunks are set
2017-07-14 09:05:10 -07:00
smc
net/smc: Add warning about remote memory exposure
2017-05-16 14:49:43 -04:00
strparser
sunrpc
NFS client bugfixes for 4.13
2017-07-21 16:26:01 -07:00
switchdev
net: switchdev: Change notifier chain to be atomic
2017-06-08 14:16:24 -04:00
tipc
tipc: remove premature ESTABLISH FSM event at link synchronization
2017-08-09 22:38:06 -07:00
tls
TLS: Fix length check in do_tls_getsockopt_tx()
2017-07-06 10:58:19 +01:00
unix
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2017-07-05 12:31:59 -07:00
vmw_vsock
net: manual clean code which call skb_put_[data:zero]
2017-06-20 13:30:15 -04:00
wimax
wireless
netlink validation fixes for nl80211
2017-07-07 11:35:55 +01:00
x25
net, x25: convert x25_neigh.refcnt from atomic_t to refcount_t
2017-07-04 22:35:18 +01:00
xfrm
net, xfrm: convert sec_path.refcnt from atomic_t to refcount_t
2017-07-04 22:35:18 +01:00
compat.c
get_compat_bpf_fprog(): don't copyin field-by-field
2017-07-04 13:14:34 -04:00
Kconfig
tls: kernel TLS support
2017-06-15 12:12:40 -04:00
Makefile
tls: kernel TLS support
2017-06-15 12:12:40 -04:00
socket.c
net/socket: fix type in assignment and trim long line
2017-07-24 14:17:01 -07:00
sysctl_net.c