From: Marek Lindner <mareklindner@neomailbox.ch>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: Re: [B.A.T.M.A.N.] [PATCH] batman-adv: Avoid duplicate neigh_node additions
Date: Tue, 03 May 2016 01:34:37 +0800 [thread overview]
Message-ID: <1644824.JdrMyOTENZ@voltaire> (raw)
In-Reply-To: <1452150672-11174-2-git-send-email-linus.luessing@c0d3.blue>
[-- Attachment #1: Type: text/plain, Size: 3816 bytes --]
On Thursday, January 07, 2016 08:11:12 Linus Lüssing wrote:
> Two parallel calls to batadv_neigh_node_new() might race for creating
> and adding the same neig_node. Fix this by including the check for any
> already existing, identical neigh_node within the spin-lock.
>
> This fixes splats like the following:
>
> [ 739.535069] ------------[ cut here ]------------
> [ 739.535079] WARNING: CPU: 0 PID: 0 at
> /usr/src/batman-adv/git/batman-adv/net/batman-adv/bat_iv_ogm.c:1004
> batadv_iv_ogm_process_per_outif+0xe3f/0xe60 [batman_adv]() [ 739.535092]
> too many matching neigh_nodes
> [ 739.535094] Modules linked in: dm_mod tun ip6table_filter ip6table_mangle
> ip6table_nat nf_nat_ipv6 ip6_tables xt_nat iptable_nat nf_nat_ipv4 nf_nat
> xt_TCPMSS xt_mark iptable_mangle xt_tcpudp xt_conntrack iptable_filter
> ip_tables x_tables ip_gre ip_tunnel gre bridge stp llc thermal_sys
> kvm_intel kvm crct10dif_pclmul crc32_pclmul sha256_ssse3 sha256_generic
> hmac drbg ansi_cprng aesni_intel aes_x86_64 lrw gf128mul glue_helper
> ablk_helper cryptd evdev pcspkr ip6_gre ip6_tunnel tunnel6 batman_adv(O)
> libcrc32c nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4
> nf_conntrack autofs4 ext4 crc16 mbcache jbd2 xen_netfront xen_blkfront
> crc32c_intel [ 739.535177] CPU: 0 PID: 0 Comm: swapper/0 Tainted:
> G W O 4.2.0-0.bpo.1-amd64 #1 Debian 4.2.6-3~bpo8+2
> [ 739.535186] 0000000000000000 ffffffffa013b050 ffffffff81554521
> ffff88007d003c18 [ 739.535201] ffffffff8106fa01 0000000000000000
> ffff8800047a087a ffff880079c3a000 [ 739.735602] ffff88007b82bf40
> ffff88007bc2d1c0 ffffffff8106fa7a ffffffffa013aa8e [ 739.735624] Call
> Trace:
> [ 739.735639] <IRQ> [<ffffffff81554521>] ? dump_stack+0x40/0x50
> [ 739.735677] [<ffffffff8106fa01>] ? warn_slowpath_common+0x81/0xb0
> [ 739.735692] [<ffffffff8106fa7a>] ? warn_slowpath_fmt+0x4a/0x50
> [ 739.735715] [<ffffffffa012448f>] ?
> batadv_iv_ogm_process_per_outif+0xe3f/0xe60 [batman_adv]
> [ 739.735740] [<ffffffffa0124813>] ? batadv_iv_ogm_receive+0x363/0x380
> [batman_adv] [ 739.735762] [<ffffffffa0124813>] ?
> batadv_iv_ogm_receive+0x363/0x380 [batman_adv]
> [ 739.735783] [<ffffffff810b0841>] ?
> __raw_callee_save___pv_queued_spin_unlock+0x11/0x20
> [ 739.735804] [<ffffffffa012cb39>] ? batadv_batman_skb_recv+0xc9/0x110
> [batman_adv] [ 739.735825] [<ffffffff81464891>] ?
> __netif_receive_skb_core+0x841/0x9a0 [ 739.735838] [<ffffffff810b0841>] ?
> __raw_callee_save___pv_queued_spin_unlock+0x11/0x20
> [ 739.735853] [<ffffffff81465681>] ? process_backlog+0xa1/0x140
> [ 739.735864] [<ffffffff81464f1a>] ? net_rx_action+0x20a/0x320
> [ 739.735878] [<ffffffff81073aa7>] ? __do_softirq+0x107/0x270
> [ 739.735891] [<ffffffff81073d82>] ? irq_exit+0x92/0xa0
> [ 739.735905] [<ffffffff8137e0d1>] ? xen_evtchn_do_upcall+0x31/0x40
> [ 739.735924] [<ffffffff8155b8fe>] ? xen_do_hypervisor_callback+0x1e/0x40
> [ 739.735939] <EOI> [<ffffffff810013aa>] ?
> xen_hypercall_sched_op+0xa/0x20 [ 739.735965] [<ffffffff810013aa>] ?
> xen_hypercall_sched_op+0xa/0x20 [ 739.735979] [<ffffffff8100a39c>] ?
> xen_safe_halt+0xc/0x20
> [ 739.735991] [<ffffffff8101da6c>] ? default_idle+0x1c/0xa0
> [ 739.736004] [<ffffffff810abf6b>] ? cpu_startup_entry+0x2eb/0x350
> [ 739.736019] [<ffffffff81b2af5e>] ? start_kernel+0x480/0x48b
> [ 739.736032] [<ffffffff81b2d116>] ? xen_start_kernel+0x507/0x511
> [ 739.736048] ---[ end trace c106bb901244bc8c ]---
>
> Reported-by: Martin Weinelt <martin@darmstadt.freifunk.net>
> Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
> ---
> net/batman-adv/originator.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
Applied in revision 8013ae2.
Thanks,
Marek
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
prev parent reply other threads:[~2016-05-02 17:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-07 7:11 [B.A.T.M.A.N.] [PATCH 0/1] batman-adv: Avoid duplicate neigh_node additions Linus Lüssing
2016-01-07 7:11 ` [B.A.T.M.A.N.] [PATCH] " Linus Lüssing
2016-05-02 17:34 ` Marek Lindner [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1644824.JdrMyOTENZ@voltaire \
--to=mareklindner@neomailbox.ch \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox