Hannes Frederic Sowa
11ffff752c
ipv6: simplify detection of first operational link-local address on interface
...
In commit 1ec047eb47 ("ipv6: introduce per-interface counter for
dad-completed ipv6 addresses") I build the detection of the first
operational link-local address much to complex. Additionally this code
now has a race condition.
Replace it with a much simpler variant, which just scans the address
list when duplicate address detection completes, to check if this is
the first valid link local address and send RS and MLD reports then.
Fixes: 1ec047eb47 ("ipv6: introduce per-interface counter for dad-completed ipv6 addresses")
Reported-by: Jiri Pirko <jiri@resnulli.us>
Cc: Flavio Leitner <fbl@redhat.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Flavio Leitner <fbl@redhat.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-01-17 18:10:01 -08:00
..
9p
for-linus-3.12-merge minor 9p fixes and tweaks for 3.12 merge window
2013-09-11 12:34:13 -07:00
bluetooth
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-11-15 16:47:22 -08:00
caif
caif_hsi.h: Remove extern from function prototypes
2013-09-23 16:29:41 -04:00
irda
irda: update comment mentioning IRQF_DISABLED
2013-10-17 15:13:20 -04:00
iucv
af_iucv: fix recvmsg by replacing skb_pull() function
2013-04-08 17:16:57 -04:00
netfilter
netfilter: push reasm skb through instead of original frag skbs
2013-11-11 00:19:35 -05:00
netns
tcp_memcontrol: Remove the per netns control.
2013-10-21 18:43:02 -04:00
nfc
NFC: NCI: Modify NCI SPI to implement CS/INT handshake per the spec
2013-09-25 14:59:56 +02:00
phonet
sctp
sctp: Remove outqueue empty state
2014-01-02 17:22:48 -05:00
tc_act
act_api.h
net: Remove extern from include/net/ scheduling prototypes
2013-07-31 17:24:22 -07:00
addrconf.h
IPv6 NAT: Do not drop DNATed 6to4/6rd packets
2013-09-28 15:56:15 -04:00
af_ieee802154.h
af_rxrpc.h
af_rxrpc.h: Remove extern from function prototypes
2013-07-31 17:50:01 -07:00
af_unix.h
af_unix: improve STREAM behavior with fragmented memory
2013-08-10 01:16:44 -07:00
af_vsock.h
VSOCK: Move af_vsock.h and vsock_addr.h to include/net
2013-07-27 22:14:06 -07:00
ah.h
arp.h
arp/neighbour.h: Remove extern from function prototypes
2013-07-31 17:50:02 -07:00
atmclip.h
ax25.h
ax25.h: Remove extern from function prototypes
2013-07-31 17:50:02 -07:00
ax88796.h
busy_poll.h
net: add cpu_relax to busy poll loop
2013-08-28 17:45:48 -04:00
cfg80211-wext.h
cfg80211.h
cfg80211: export reg_initiator_name()
2013-10-28 15:05:27 +01:00
checksum.h
net: checksum: fix warning in skb_checksum
2013-11-04 15:27:08 -05:00
cipso_ipv4.h
net: fix cipso packet validation when !NETLABEL
2013-10-19 18:55:42 -04:00
cls_cgroup.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2013-09-05 14:54:29 -07:00
codel.h
net: codel: Avoid undefined behavior from signed overflow
2013-11-04 20:01:29 -05:00
compat.h
compat.h: Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
datalink.h
dcbevent.h
dcbevent.h: Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dcbnl.h
dn.h
decnet (dn*.h): Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dn_dev.h
decnet (dn*.h): Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dn_fib.h
decnet (dn*.h): Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dn_neigh.h
decnet (dn*.h): Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dn_nsp.h
decnet (dn*.h): Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dn_route.h
decnet (dn*.h): Remove extern from function prototypes
2013-09-20 14:49:32 -04:00
dsa.h
dsfield.h
ipv6: Optimize ipv6_change_dsfield().
2013-01-09 23:59:53 -08:00
dst.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-10-23 16:49:34 -04:00
dst_ops.h
esp.h
net: move pskb_put() to core code
2013-11-07 19:28:58 -05:00
ethoc.h
fib_rules.h
fib_rules.h: Remove extern from function prototypes
2013-09-20 14:49:33 -04:00
firewire.h
firewire net, ipv4 arp: Extend hardware address and remove driver-level packet inspection.
2013-03-26 12:32:13 -04:00
flow.h
flow.h/flow_keys.h: Remove extern from function prototypes
2013-09-20 14:49:33 -04:00
flow_keys.h
flow_dissector: factor out the ports extraction in skb_flow_get_ports
2013-10-03 15:36:37 -04:00
garp.h
garp.h: Remove extern from function prototypes
2013-09-20 14:49:33 -04:00
gen_stats.h
gen_stats.h: Remove extern from function prototypes
2013-09-20 14:49:33 -04:00
genetlink.h
genetlink: fix genl_set_err() group ID
2013-11-21 13:09:43 -05:00
gre.h
ipv4: generalize gre_handle_offloads
2013-10-19 19:36:18 -04:00
gro_cells.h
gro: Fix kcalloc argument order
2013-01-27 22:46:33 -05:00
icmp.h
icmp.h: Remove extern from function prototypes
2013-09-20 14:49:33 -04:00
ieee80211_radiotap.h
mac80211: add radiotap flag and handling for 5/10 MHz
2013-07-16 09:58:05 +03:00
ieee802154.h
ieee802154_netdev.h
ieee802154/nl-mac.c: make some MLME operations optional
2013-04-08 12:00:16 -04:00
if_inet6.h
ipv6: simplify detection of first operational link-local address on interface
2014-01-17 18:10:01 -08:00
inet6_connection_sock.h
inet*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
inet6_hashtables.h
ipv6: split inet6_ehashfn to hash functions per compilation unit
2013-10-19 19:45:34 -04:00
inet_common.h
inet*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
inet_connection_sock.h
inet*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
inet_ecn.h
net: Correct comparisons and calculations using skb->tail and skb-transport_header
2013-05-28 23:49:07 -07:00
inet_frag.h
inet: remove old fragmentation hash initializing
2013-10-23 17:01:41 -04:00
inet_hashtables.h
tcp/dccp: remove twchain
2013-10-08 23:19:24 -04:00
inet_sock.h
inet: convert inet_ehash_secret and ipv6_hash_secret to net_get_random_once
2013-10-19 19:45:35 -04:00
inet_timewait_sock.h
netdev: inet_timewait_sock.h missing semi-colon when KMEMCHECK is enabled
2013-10-17 15:56:53 -04:00
inetpeer.h
inet*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
ip.h
inet: fix addr_len/msg->msg_namelen assignment in recv_error and rxpmtu functions
2013-11-23 14:46:23 -08:00
ip6_checksum.h
net: fix build errors if ipv6 is disabled
2013-10-09 13:04:03 -04:00
ip6_fib.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-11-04 13:48:30 -05:00
ip6_route.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-10-23 16:49:34 -04:00
ip6_tunnel.h
tunnels: harmonize cleanup done on skb on xmit path
2013-09-04 00:27:25 -04:00
ip_fib.h
ip*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
ip_tunnels.h
ipv4: generalize gre_handle_offloads
2013-10-19 19:36:18 -04:00
ip_vs.h
netfilter: push reasm skb through instead of original frag skbs
2013-11-11 00:19:35 -05:00
ipcomp.h
ipconfig.h
ipv6.h
xen-netback: fix fragment detection in checksum setup
2013-12-05 20:31:40 -05:00
ipx.h
ipx.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
iw_handler.h
iw_handler.h: Remove extern from function prototypes
2013-09-21 14:01:39 -04:00
lapb.h
lapb.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
lib80211.h
hostap: Don't use create_proc_read_entry()
2013-04-29 15:41:56 -04:00
llc.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_c_ac.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_c_ev.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_c_st.h
llc_conn.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_if.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_pdu.h
net: llc: fix order of evaluation in llc_conn_ac_inc_vr_by_1
2014-01-01 22:22:43 -05:00
llc_s_ac.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_s_ev.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
llc_s_st.h
llc_sap.h
llc*.h: Remove extern from function prototypes
2013-09-21 14:01:38 -04:00
mac80211.h
mac80211: add ieee80211_tx_prepare_skb() helper function
2013-10-28 15:05:27 +01:00
mac802154.h
mac802154: correct a typo in ieee802154_alloc_device() prototype
2013-10-21 18:56:23 -04:00
mip6.h
mld.h
net: ipv6: mld: get rid of MLDV2_MRC and simplify calculation
2013-09-04 14:53:20 -04:00
mrp.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-10-01 17:06:14 -04:00
ndisc.h
ndisc.h: Remove extern from function prototypes
2013-09-21 14:01:39 -04:00
neighbour.h
arp/neighbour.h: Remove extern from function prototypes
2013-07-31 17:50:02 -07:00
net_namespace.h
netfilter: nf_tables: complete net namespace support
2013-10-14 18:00:59 +02:00
net_ratelimit.h
netdma.h
netevent.h
netevent/netlink.h: Remove extern from function prototypes
2013-09-21 14:01:39 -04:00
netlabel.h
netlink.h
netevent/netlink.h: Remove extern from function prototypes
2013-09-21 14:01:39 -04:00
netprio_cgroup.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2013-09-05 14:54:29 -07:00
netrom.h
netrom.h: Remove extern from function prototypes
2013-09-21 14:01:39 -04:00
nexthop.h
nl802154.h
p8022.h
p8022.h: Remove extern from function prototypes
2013-09-21 14:01:39 -04:00
ping.h
inet: fix addr_len/msg->msg_namelen assignment in recv_error and rxpmtu functions
2013-11-23 14:46:23 -08:00
pkt_cls.h
net: Remove extern from include/net/ scheduling prototypes
2013-07-31 17:24:22 -07:00
pkt_sched.h
qdisc: allow setting default queuing discipline
2013-08-31 00:32:32 -04:00
protocol.h
protocol.h: Remove extern from function prototypes
2013-09-23 01:51:08 -04:00
psnap.h
psnap.h: Remove extern from function prototypes
2013-09-23 01:51:08 -04:00
raw.h
raw/rawv6.h: Remove extern from function prototypes
2013-09-23 01:51:08 -04:00
rawv6.h
raw/rawv6.h: Remove extern from function prototypes
2013-09-23 01:51:08 -04:00
red.h
regulatory.h
regulatory: use RCU to protect last_request
2013-01-03 13:01:30 +01:00
request_sock.h
inet: includes a sock_common in request_sock
2013-10-10 00:08:07 -04:00
rose.h
rose.h: Remove extern from function prototypes
2013-09-23 01:51:08 -04:00
route.h
ipv4: introduce new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACE
2013-11-05 21:52:27 -05:00
rtnetlink.h
rtnetlink.h: Remove extern from function prototypes
2013-09-23 01:51:09 -04:00
sch_generic.h
net_sched: add u64 rate to psched_ratecfg_precompute()
2013-09-20 14:41:02 -04:00
scm.h
scm.h: Remove extern from function prototypes
2013-09-23 01:51:09 -04:00
secure_seq.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-10-01 17:06:14 -04:00
slhc_vj.h
snmp.h
sock.h
tcp_memcontrol: Cleanup/fix cg_proto->memory_pressure handling.
2013-12-05 21:01:01 -05:00
stp.h
stp.h: Remove extern from function prototypes
2013-09-23 01:51:09 -04:00
tcp.h
tcp: properly handle stretch acks in slow start
2013-11-04 19:57:59 -05:00
tcp_memcontrol.h
tcp_memcontrol: Kill struct tcp_memcontrol
2013-10-21 18:43:02 -04:00
tcp_states.h
timewait_sock.h
transp_v6.h
transp_v6.h: style neatening
2013-06-04 16:43:42 -07:00
udp.h
udp: Remove unnecessary semicolon from do{}while (0) macro
2013-11-07 02:14:33 -05:00
udplite.h
udplite.h: Remove extern from function prototypes
2013-09-23 16:29:40 -04:00
vsock_addr.h
VSOCK: Move af_vsock.h and vsock_addr.h to include/net
2013-07-27 22:14:06 -07:00
vxlan.h
vxlan: Have the NIC drivers do less work for offloads
2013-10-29 02:39:13 -07:00
wext.h
wext.h: Remove extern from function prototypes
2013-09-23 16:29:40 -04:00
wimax.h
wimax.h: Remove extern from function prototypes
2013-09-23 16:29:41 -04:00
wpan-phy.h
x25.h
x25.h: Remove extern from function prototypes
2013-09-23 16:29:41 -04:00
x25device.h
xfrm.h
ipv6: Add a receive path hook for vti6 in xfrm6_mode_tunnel.
2013-10-09 13:16:36 +02:00