android_kernel_samsung_univ.../net/core
Roopa Prabhu b04c9a0871 rtnetlink: add rtnl_link_state check in rtnl_configure_link
[ Upstream commit 5025f7f7d506fba9b39e7fe8ca10f6f34cb9bc2d ]

rtnl_configure_link sets dev->rtnl_link_state to
RTNL_LINK_INITIALIZED and unconditionally calls
__dev_notify_flags to notify user-space of dev flags.

current call sequence for rtnl_configure_link
rtnetlink_newlink
    rtnl_link_ops->newlink
    rtnl_configure_link (unconditionally notifies userspace of
                         default and new dev flags)

If a newlink handler wants to call rtnl_configure_link
early, we will end up with duplicate notifications to
user-space.

This patch fixes rtnl_configure_link to check rtnl_link_state
and call __dev_notify_flags with gchanges = 0 if already
RTNL_LINK_INITIALIZED.

Later in the series, this patch will help the following sequence
where a driver implementing newlink can call rtnl_configure_link
to initialize the link early.

makes the following call sequence work:
rtnetlink_newlink
    rtnl_link_ops->newlink (vxlan) -> rtnl_configure_link (initializes
                                                link and notifies
                                                user-space of default
                                                dev flags)
    rtnl_configure_link (updates dev flags if requested by user ifm
                         and notifies user-space of new dev flags)

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-28 07:45:02 +02:00
..
datagram.c
dev_addr_lists.c net: fix uninit-value in __hw_addr_add_ex() 2018-05-16 10:06:50 +02:00
dev_ioctl.c
dev.c vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi 2018-04-29 07:50:05 +02:00
drop_monitor.c
dst_cache.c net: dst_cache_per_cpu_dst_set() can be static 2018-02-25 11:03:55 +01:00
dst.c
ethtool.c
fib_rules.c
filter.c
flow_dissector.c
flow.c
gen_estimator.c
gen_stats.c
link_watch.c
lwtunnel.c
Makefile net: add dst_cache support 2018-02-25 11:03:34 +01:00
neighbour.c net: fix deadlock while clearing neighbor proxy table 2018-04-29 07:50:06 +02:00
net_namespace.c net: move somaxconn init from sysctl code 2018-04-13 19:50:11 +02:00
net-procfs.c
net-sysfs.c
net-sysfs.h
net-traces.c
netclassid_cgroup.c
netevent.c
netpoll.c
netprio_cgroup.c
pktgen.c
ptp_classifier.c
request_sock.c
rtnetlink.c rtnetlink: add rtnl_link_state check in rtnl_configure_link 2018-07-28 07:45:02 +02:00
scm.c
secure_seq.c
skbuff.c skbuff: Unconditionally copy pfmemalloc in __skb_clone() 2018-07-25 10:18:17 +02:00
sock_diag.c
sock.c sock_diag: fix use-after-free read in __sk_free 2018-05-26 08:48:58 +02:00
stream.c
sysctl_net_core.c net: move somaxconn init from sysctl code 2018-04-13 19:50:11 +02:00
timestamping.c
tso.c
utils.c