lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <33d9c12c-7b76-a790-555e-ae10176548e4@gmail.com>
Date:   Wed, 29 Mar 2017 09:45:16 -0700
From:   Florian Fainelli <f.fainelli@...il.com>
To:     Maxim Uvarov <muvarov@...il.com>, Andrew Lunn <andrew@...n.ch>,
        David Miller <davem@...emloft.net>
Cc:     netdev@...r.kernel.org, rmk+kernel@...linux.org.uk
Subject: Re: Adding vlan to DSA port causes lockdep splat

On 02/21/2017 12:38 AM, Maxim Uvarov wrote:
> Is there any progress on subj issue?
> 
> I see it was investigated here:
> https://www.spinics.net/lists/netdev/msg361434.html

I was just able to reproduce this and will try to look into it. At first
glance, the reason why we usually don't see it, is that VLAN
configuration goes through bridge vlan, which exercises a slightly
different code path.

FWIW: using bridge vlan (VLAN filtering) allows you to define your
switch's default VLAN (ID and tag/untag flag) whereas the traditional
vlan device does not really allow you to do that.

> 
> But it still exist on later kernels:
> 
> [   37.320301] ip/1047 is trying to acquire lock:
> [   37.324764]  (_xmit_ETHER/1){+.....}, at: [<c06ad228>] dev_mc_sync+0x4c/0x88
> [   37.331882]
> [   37.331882] but task is already holding lock:
> [   37.337738]  (_xmit_ETHER/1){+.....}, at: [<c06ad228>] dev_mc_sync+0x4c/0x88
> [   37.344828]
> [   37.344828] other info that might help us debug this:
> [   37.351384]  Possible unsafe locking scenario:
> [   37.351384]
> [   37.357326]        CPU0
> [   37.359778]        ----
> [   37.362230]   lock(_xmit_ETHER/1);
> [   37.365650]   lock(_xmit_ETHER/1);
> [   37.369069]
> [   37.369069]  *** DEADLOCK ***
> [   37.369069]
> [   37.375013]  May be due to missing lock nesting notation
> [   37.375013]
> [   37.381830] 3 locks held by ip/1047:
> [   37.385416]  #0:  (rtnl_mutex){+.+.+.}, at: [<c06b8248>]
> rtnetlink_rcv+0x1c/0x38
> [   37.392860]  #1:  (&vlan_netdev_addr_lock_key/1){+.....}, at:
> [<c06a4f94>] dev_set_rx_mode+0x1c/0x30
> [   37.402046]  #2:  (_xmit_ETHER/1){+.....}, at: [<c06ad228>]
> dev_mc_sync+0x4c/0x88
> [   37.409574]
> [   37.409574] stack backtrace:
> [   37.413952] CPU: 0 PID: 1047 Comm: ip Not tainted
> 4.10.0maxdebug-00008-g9d55486 #22
> [   37.421639] Hardware name: Generic AM33XX (Flattened Device Tree)
> [   37.427756] Backtrace:
> [   37.430237] [<c010bf78>] (dump_backtrace) from [<c010c220>]
> (show_stack+0x18/0x1c)
> [   37.437842]  r7:c140f7ec r6:c13e29e0 r5:dc316780 r4:c0db8408
> [   37.443537] [<c010c208>] (show_stack) from [<c0402ab0>]
> (dump_stack+0x20/0x28)
> [   37.450800] [<c0402a90>] (dump_stack) from [<c016b294>]
> (__lock_acquire+0x15d4/0x18ec)
> [   37.458753] [<c0169cc0>] (__lock_acquire) from [<c016b958>]
> (lock_acquire+0x74/0x94)
> [   37.466532]  r10:dc2260c0 r9:dd747910 r8:00000000 r7:00000001
> r6:00000001 r5:600d0013
> [   37.474393]  r4:00000000
> [   37.476946] [<c016b8e4>] (lock_acquire) from [<c07f802c>]
> (_raw_spin_lock_nested+0x44/0x54)
> [   37.485334]  r7:00001002 r6:dd4fd988 r5:dc1f3000 r4:dd4fd988
> [   37.491022] [<c07f7fe8>] (_raw_spin_lock_nested) from [<c06ad228>]
> (dev_mc_sync+0x4c/0x88)
> [   37.499320]  r4:dd4fd800
> [   37.501870] [<c06ad1dc>] (dev_mc_sync) from [<c0796b60>]
> (dsa_slave_set_rx_mode+0x28/0x38)
> [   37.510171]  r7:00001002 r6:00000000 r5:dd4fd800 r4:dc1f3000
> [   37.515856] [<c0796b38>] (dsa_slave_set_rx_mode) from [<c06a4f40>]
> (__dev_set_rx_mode+0x64/0x9c)
> 


-- 
Florian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ