<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/ethernet/rdc, branch v5.4.8</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1</title>
<updated>2019-05-21T09:28:39+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2019-05-19T13:51:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=16216333235adf51093d0330a934a7e4a03134fe'/>
<id>16216333235adf51093d0330a934a7e4a03134fe</id>
<content type='text'>
Based on 2 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license as published by
  the free software foundation either version 2 of the license or at
  your option any later version this program is distributed in the
  hope that it will be useful but without any warranty without even
  the implied warranty of merchantability or fitness for a particular
  purpose see the gnu general public license for more details you
  should have received a copy of the gnu general public license along
  with this program if not write to the free software foundation inc
  51 franklin street fifth floor boston ma 02110 1301 usa

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license as published by
  the free software foundation either version 2 of the license or at
  your option [no]_[pad]_[ctrl] any later version this program is
  distributed in the hope that it will be useful but without any
  warranty without even the implied warranty of merchantability or
  fitness for a particular purpose see the gnu general public license
  for more details you should have received a copy of the gnu general
  public license along with this program if not write to the free
  software foundation inc 51 franklin street fifth floor boston ma
  02110 1301 usa

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-or-later

has been chosen to replace the boilerplate/reference in 176 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Jilayne Lovejoy &lt;opensource@jilayne.com&gt;
Reviewed-by: Steve Winslow &lt;swinslow@gmail.com&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190519154040.652910950@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on 2 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license as published by
  the free software foundation either version 2 of the license or at
  your option any later version this program is distributed in the
  hope that it will be useful but without any warranty without even
  the implied warranty of merchantability or fitness for a particular
  purpose see the gnu general public license for more details you
  should have received a copy of the gnu general public license along
  with this program if not write to the free software foundation inc
  51 franklin street fifth floor boston ma 02110 1301 usa

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license as published by
  the free software foundation either version 2 of the license or at
  your option [no]_[pad]_[ctrl] any later version this program is
  distributed in the hope that it will be useful but without any
  warranty without even the implied warranty of merchantability or
  fitness for a particular purpose see the gnu general public license
  for more details you should have received a copy of the gnu general
  public license along with this program if not write to the free
  software foundation inc 51 franklin street fifth floor boston ma
  02110 1301 usa

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-or-later

has been chosen to replace the boilerplate/reference in 176 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Jilayne Lovejoy &lt;opensource@jilayne.com&gt;
Reviewed-by: Steve Winslow &lt;swinslow@gmail.com&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190519154040.652910950@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>treewide: Add SPDX license identifier - Makefile/Kconfig</title>
<updated>2019-05-21T08:50:46+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2019-05-19T12:07:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1'/>
<id>ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1</id>
<content type='text'>
Add SPDX license identifiers to all Make/Kconfig files which:

 - Have no license information of any form

These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:

  GPL-2.0-only

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add SPDX license identifiers to all Make/Kconfig files which:

 - Have no license information of any form

These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:

  GPL-2.0-only

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: move skb-&gt;xmit_more hint to softnet data</title>
<updated>2019-04-02T01:35:02+00:00</updated>
<author>
<name>Florian Westphal</name>
<email>fw@strlen.de</email>
</author>
<published>2019-04-01T14:42:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=6b16f9ee89b8d5709f24bc3ac89ae8b5452c0d7c'/>
<id>6b16f9ee89b8d5709f24bc3ac89ae8b5452c0d7c</id>
<content type='text'>
There are two reasons for this.

First, the xmit_more flag conceptually doesn't fit into the skb, as
xmit_more is not a property related to the skb.
Its only a hint to the driver that the stack is about to transmit another
packet immediately.

Second, it was only done this way to not have to pass another argument
to ndo_start_xmit().

We can place xmit_more in the softnet data, next to the device recursion.
The recursion counter is already written to on each transmit. The "more"
indicator is placed right next to it.

Drivers can use the netdev_xmit_more() helper instead of skb-&gt;xmit_more
to check the "more packets coming" hint.

skb-&gt;xmit_more is retained (but always 0) to not cause build breakage.

This change takes care of the simple s/skb-&gt;xmit_more/netdev_xmit_more()/
conversions.  Remaining drivers are converted in the next patches.

Suggested-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are two reasons for this.

First, the xmit_more flag conceptually doesn't fit into the skb, as
xmit_more is not a property related to the skb.
Its only a hint to the driver that the stack is about to transmit another
packet immediately.

Second, it was only done this way to not have to pass another argument
to ndo_start_xmit().

We can place xmit_more in the softnet data, next to the device recursion.
The recursion counter is already written to on each transmit. The "more"
indicator is placed right next to it.

Drivers can use the netdev_xmit_more() helper instead of skb-&gt;xmit_more
to check the "more packets coming" hint.

skb-&gt;xmit_more is retained (but always 0) to not cause build breakage.

This change takes care of the simple s/skb-&gt;xmit_more/netdev_xmit_more()/
conversions.  Remaining drivers are converted in the next patches.

Suggested-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: ethernet: Use phy_set_max_speed() to limit advertised speed</title>
<updated>2018-09-13T03:24:20+00:00</updated>
<author>
<name>Andrew Lunn</name>
<email>andrew@lunn.ch</email>
</author>
<published>2018-09-11T23:53:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=58056c1e1b0e4951f3486bd552d8278194f8b84b'/>
<id>58056c1e1b0e4951f3486bd552d8278194f8b84b</id>
<content type='text'>
Many Ethernet MAC drivers want to limit the PHY to only advertise a
maximum speed of 100Mbs or 1Gbps. Rather than using a mask, make use
of the helper function phy_set_max_speed().

Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Many Ethernet MAC drivers want to limit the PHY to only advertise a
maximum speed of 100Mbs or 1Gbps. Rather than using a mask, make use
of the helper function phy_set_max_speed().

Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>r6040: move spinlock in r6040_close as SOFTIRQ-unsafe lock order detected</title>
<updated>2016-12-18T02:35:12+00:00</updated>
<author>
<name>Manuel Bessler</name>
<email>manuel.bessler@sensus.com</email>
</author>
<published>2016-12-16T03:55:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=c762eaa777b789540e3fe33581d6d0e593dbb22e'/>
<id>c762eaa777b789540e3fe33581d6d0e593dbb22e</id>
<content type='text'>
'ifconfig eth0 down' makes r6040_close() trigger:
 INFO: HARDIRQ-safe -&gt; HARDIRQ-unsafe lock order detected

Fixed by moving calls to phy_stop(), napi_disable(), netif_stop_queue()
to outside of the module's private spin_lock_irq block.

Found on a Versalogic Tomcat SBC with a Vortex86 SoC

s1660e_5150:~# sudo ifconfig eth0 down
[   61.306415] ======================================================
[   61.306415] [ INFO: SOFTIRQ-safe -&gt; SOFTIRQ-unsafe lock order detected ]
[   61.306415] 4.9.0-gb898d2d-manuel #1 Not tainted
[   61.306415] ------------------------------------------------------
[   61.306415] ifconfig/449 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[   61.306415]  (&amp;dev-&gt;lock){+.+...}, at: [&lt;c1336276&gt;] phy_stop+0x16/0x80

[   61.306415] and this task is already holding:
[   61.306415]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...}, at: [&lt;d0934c84&gt;] r6040_close+0x24/0x230 [r6040]
which would create a new lock dependency:
[   61.306415]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...} -&gt; (&amp;dev-&gt;lock){+.+...}

[   61.306415] but this new dependency connects a SOFTIRQ-irq-safe lock:
[   61.306415]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...}
[   61.306415] ... which became SOFTIRQ-irq-safe at:
[   61.306415]   [   61.306415] [&lt;c1075bc5&gt;] __lock_acquire+0x555/0x1770
[   61.306415]   [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]   [   61.306415] [&lt;c14bb334&gt;] _raw_spin_lock_irqsave+0x24/0x40
[   61.306415]   [   61.306415] [&lt;d0934ac0&gt;] r6040_start_xmit+0x30/0x1d0 [r6040]
[   61.306415]   [   61.306415] [&lt;c13a7d4d&gt;] dev_hard_start_xmit+0x9d/0x2d0
[   61.306415]   [   61.306415] [&lt;c13c8a38&gt;] sch_direct_xmit+0xa8/0x140
[   61.306415]   [   61.306415] [&lt;c13a8436&gt;] __dev_queue_xmit+0x416/0x780
[   61.306415]   [   61.306415] [&lt;c13a87aa&gt;] dev_queue_xmit+0xa/0x10
[   61.306415]   [   61.306415] [&lt;c13b4837&gt;] neigh_resolve_output+0x147/0x220
[   61.306415]   [   61.306415] [&lt;c144541b&gt;] ip6_finish_output2+0x2fb/0x910
[   61.306415]   [   61.306415] [&lt;c14494e6&gt;] ip6_finish_output+0xa6/0x1a0
[   61.306415]   [   61.306415] [&lt;c1449635&gt;] ip6_output+0x55/0x320
[   61.306415]   [   61.306415] [&lt;c146f4d2&gt;] mld_sendpack+0x352/0x560
[   61.306415]   [   61.306415] [&lt;c146fe55&gt;] mld_ifc_timer_expire+0x155/0x280
[   61.306415]   [   61.306415] [&lt;c108b081&gt;] call_timer_fn+0x81/0x270
[   61.306415]   [   61.306415] [&lt;c108b331&gt;] expire_timers+0xc1/0x180
[   61.306415]   [   61.306415] [&lt;c108b4f7&gt;] run_timer_softirq+0x77/0x150
[   61.306415]   [   61.306415] [&lt;c1043d04&gt;] __do_softirq+0xb4/0x3d0
[   61.306415]   [   61.306415] [&lt;c101a15c&gt;] do_softirq_own_stack+0x1c/0x30
[   61.306415]   [   61.306415] [&lt;c104416e&gt;] irq_exit+0x8e/0xa0
[   61.306415]   [   61.306415] [&lt;c1019d31&gt;] do_IRQ+0x51/0x100
[   61.306415]   [   61.306415] [&lt;c14bc176&gt;] common_interrupt+0x36/0x40
[   61.306415]   [   61.306415] [&lt;c1134928&gt;] set_root+0x68/0xf0
[   61.306415]   [   61.306415] [&lt;c1136120&gt;] path_init+0x400/0x640
[   61.306415]   [   61.306415] [&lt;c11386bf&gt;] path_lookupat+0xf/0xe0
[   61.306415]   [   61.306415] [&lt;c1139ebc&gt;] filename_lookup+0x6c/0x100
[   61.306415]   [   61.306415] [&lt;c1139fd5&gt;] user_path_at_empty+0x25/0x30
[   61.306415]   [   61.306415] [&lt;c11298c6&gt;] SyS_faccessat+0x86/0x1e0
[   61.306415]   [   61.306415] [&lt;c1129a30&gt;] SyS_access+0x10/0x20
[   61.306415]   [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]   [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415] to a SOFTIRQ-irq-unsafe lock:
[   61.306415]  (&amp;dev-&gt;lock){+.+...}
[   61.306415] ... which became SOFTIRQ-irq-unsafe at:
[   61.306415] ...[   61.306415]
[   61.306415] [&lt;c1075c0c&gt;] __lock_acquire+0x59c/0x1770
[   61.306415]   [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]   [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]   [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]   [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]   [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]   [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]   [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]   [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]   [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]   [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]   [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]   [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]   [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]   [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]   [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]   [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]   [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]   [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]   [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]   [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]   [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]   [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415] other info that might help us debug this:
[   61.306415]
[   61.306415]  Possible interrupt unsafe locking scenario:
[   61.306415]
[   61.306415]        CPU0                    CPU1
[   61.306415]        ----                    ----
[   61.306415]   lock(&amp;dev-&gt;lock);
[   61.306415]                                local_irq_disable();
[   61.306415]                                lock(&amp;(&amp;lp-&gt;lock)-&gt;rlock);
[   61.306415]                                lock(&amp;dev-&gt;lock);
[   61.306415]   &lt;Interrupt&gt;
[   61.306415]     lock(&amp;(&amp;lp-&gt;lock)-&gt;rlock);
[   61.306415]
[   61.306415]  *** DEADLOCK ***
[   61.306415]
[   61.306415] 2 locks held by ifconfig/449:
[   61.306415]  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;c13b68ef&gt;] rtnl_lock+0xf/0x20
[   61.306415]  #1:  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...}, at: [&lt;d0934c84&gt;] r6040_close+0x24/0x230 [r6040]
[   61.306415]
[   61.306415] the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
[   61.306415] -&gt; (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...} ops: 3049 {
[   61.306415]    HARDIRQ-ON-W at:
[   61.306415]                     [   61.306415] [&lt;c1075be7&gt;] __lock_acquire+0x577/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14bb21b&gt;] _raw_spin_lock+0x1b/0x30
[   61.306415]                     [   61.306415] [&lt;d09343cc&gt;] r6040_poll+0x2c/0x330 [r6040]
[   61.306415]                     [   61.306415] [&lt;c13a5577&gt;] net_rx_action+0x197/0x340
[   61.306415]                     [   61.306415] [&lt;c1043d04&gt;] __do_softirq+0xb4/0x3d0
[   61.306415]                     [   61.306415] [&lt;c1044037&gt;] run_ksoftirqd+0x17/0x40
[   61.306415]                     [   61.306415] [&lt;c105fe91&gt;] smpboot_thread_fn+0x141/0x180
[   61.306415]                     [   61.306415] [&lt;c105c84e&gt;] kthread+0xde/0x110
[   61.306415]                     [   61.306415] [&lt;c14bb949&gt;] ret_from_fork+0x19/0x30
[   61.306415]    IN-SOFTIRQ-W at:
[   61.306415]                     [   61.306415] [&lt;c1075bc5&gt;] __lock_acquire+0x555/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14bb334&gt;] _raw_spin_lock_irqsave+0x24/0x40
[   61.306415]                     [   61.306415] [&lt;d0934ac0&gt;] r6040_start_xmit+0x30/0x1d0 [r6040]
[   61.306415]                     [   61.306415] [&lt;c13a7d4d&gt;] dev_hard_start_xmit+0x9d/0x2d0
[   61.306415]                     [   61.306415] [&lt;c13c8a38&gt;] sch_direct_xmit+0xa8/0x140
[   61.306415]                     [   61.306415] [&lt;c13a8436&gt;] __dev_queue_xmit+0x416/0x780
[   61.306415]                     [   61.306415] [&lt;c13a87aa&gt;] dev_queue_xmit+0xa/0x10
[   61.306415]                     [   61.306415] [&lt;c13b4837&gt;] neigh_resolve_output+0x147/0x220
[   61.306415]                     [   61.306415] [&lt;c144541b&gt;] ip6_finish_output2+0x2fb/0x910
[   61.306415]                     [   61.306415] [&lt;c14494e6&gt;] ip6_finish_output+0xa6/0x1a0
[   61.306415]                     [   61.306415] [&lt;c1449635&gt;] ip6_output+0x55/0x320
[   61.306415]                     [   61.306415] [&lt;c146f4d2&gt;] mld_sendpack+0x352/0x560
[   61.306415]                     [   61.306415] [&lt;c146fe55&gt;] mld_ifc_timer_expire+0x155/0x280
[   61.306415]                     [   61.306415] [&lt;c108b081&gt;] call_timer_fn+0x81/0x270
[   61.306415]                     [   61.306415] [&lt;c108b331&gt;] expire_timers+0xc1/0x180
[   61.306415]                     [   61.306415] [&lt;c108b4f7&gt;] run_timer_softirq+0x77/0x150
[   61.306415]                     [   61.306415] [&lt;c1043d04&gt;] __do_softirq+0xb4/0x3d0
[   61.306415]                     [   61.306415] [&lt;c101a15c&gt;] do_softirq_own_stack+0x1c/0x30
[   61.306415]                     [   61.306415] [&lt;c104416e&gt;] irq_exit+0x8e/0xa0
[   61.306415]                     [   61.306415] [&lt;c1019d31&gt;] do_IRQ+0x51/0x100
[   61.306415]                     [   61.306415] [&lt;c14bc176&gt;] common_interrupt+0x36/0x40
[   61.306415]                     [   61.306415] [&lt;c1134928&gt;] set_root+0x68/0xf0
[   61.306415]                     [   61.306415] [&lt;c1136120&gt;] path_init+0x400/0x640
[   61.306415]                     [   61.306415] [&lt;c11386bf&gt;] path_lookupat+0xf/0xe0
[   61.306415]                     [   61.306415] [&lt;c1139ebc&gt;] filename_lookup+0x6c/0x100
[   61.306415]                     [   61.306415] [&lt;c1139fd5&gt;] user_path_at_empty+0x25/0x30
[   61.306415]                     [   61.306415] [&lt;c11298c6&gt;] SyS_faccessat+0x86/0x1e0
[   61.306415]                     [   61.306415] [&lt;c1129a30&gt;] SyS_access+0x10/0x20
[   61.306415]                     [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                     [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]    INITIAL USE at:
[   61.306415]                    [   61.306415] [&lt;c107586e&gt;] __lock_acquire+0x1fe/0x1770
[   61.306415]                    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                    [   61.306415] [&lt;c14bb334&gt;] _raw_spin_lock_irqsave+0x24/0x40
[   61.306415]                    [   61.306415] [&lt;d093474e&gt;] r6040_get_stats+0x1e/0x60 [r6040]
[   61.306415]                    [   61.306415] [&lt;c139fb16&gt;] dev_get_stats+0x96/0xc0
[   61.306415]                    [   61.306415] [&lt;c14b416e&gt;] rtnl_fill_stats+0x36/0xfd
[   61.306415]                    [   61.306415] [&lt;c13b7b3c&gt;] rtnl_fill_ifinfo+0x47c/0xce0
[   61.306415]                    [   61.306415] [&lt;c13bc08e&gt;] rtmsg_ifinfo_build_skb+0x4e/0xd0
[   61.306415]                    [   61.306415] [&lt;c13bc120&gt;] rtmsg_ifinfo.part.20+0x10/0x40
[   61.306415]                    [   61.306415] [&lt;c13bc16b&gt;] rtmsg_ifinfo+0x1b/0x20
[   61.306415]                    [   61.306415] [&lt;c13a9d19&gt;] register_netdevice+0x409/0x550
[   61.306415]                    [   61.306415] [&lt;c13a9e72&gt;] register_netdev+0x12/0x20
[   61.306415]                    [   61.306415] [&lt;d09357e8&gt;] r6040_init_one+0x3e8/0x500 [r6040]
[   61.306415]                    [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                    [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                    [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                    [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                    [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                    [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                    [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                    [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                    [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                    [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                    [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                    [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                    [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]  }
[   61.306415]  ... key      at: [&lt;d0936280&gt;] __key.45893+0x0/0xfffff739 [r6040]
[   61.306415]  ... acquired at:
[   61.306415]    [   61.306415] [&lt;c1074a32&gt;] check_irq_usage+0x42/0xb0
[   61.306415]    [   61.306415] [&lt;c107677c&gt;] __lock_acquire+0x110c/0x1770
[   61.306415]    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]    [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]    [   61.306415] [&lt;c1336276&gt;] phy_stop+0x16/0x80
[   61.306415]    [   61.306415] [&lt;d0934ce9&gt;] r6040_close+0x89/0x230 [r6040]
[   61.306415]    [   61.306415] [&lt;c13a0a91&gt;] __dev_close_many+0x61/0xa0
[   61.306415]    [   61.306415] [&lt;c13a0bbf&gt;] __dev_close+0x1f/0x30
[   61.306415]    [   61.306415] [&lt;c13a9127&gt;] __dev_change_flags+0x87/0x150
[   61.306415]    [   61.306415] [&lt;c13a9213&gt;] dev_change_flags+0x23/0x60
[   61.306415]    [   61.306415] [&lt;c1416238&gt;] devinet_ioctl+0x5f8/0x6f0
[   61.306415]    [   61.306415] [&lt;c1417f75&gt;] inet_ioctl+0x65/0x90
[   61.306415]    [   61.306415] [&lt;c1389b54&gt;] sock_ioctl+0x124/0x2b0
[   61.306415]    [   61.306415] [&lt;c113cf7c&gt;] do_vfs_ioctl+0x7c/0x790
[   61.306415]    [   61.306415] [&lt;c113d6b8&gt;] SyS_ioctl+0x28/0x50
[   61.306415]    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415]
the dependencies between the lock to be acquired[   61.306415]  and SOFTIRQ-irq-unsafe lock:
[   61.306415] -&gt; (&amp;dev-&gt;lock){+.+...} ops: 56 {
[   61.306415]    HARDIRQ-ON-W at:
[   61.306415]                     [   61.306415] [&lt;c1075be7&gt;] __lock_acquire+0x577/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]                     [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]                     [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]                     [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]                     [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]                     [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]                     [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                     [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                     [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                     [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                     [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                     [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                     [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                     [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                     [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                     [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                     [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                     [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                     [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                     [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                     [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]    SOFTIRQ-ON-W at:
[   61.306415]                     [   61.306415] [&lt;c1075c0c&gt;] __lock_acquire+0x59c/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]                     [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]                     [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]                     [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]                     [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]                     [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]                     [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                     [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                     [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                     [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                     [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                     [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                     [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                     [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                     [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                     [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                     [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                     [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                     [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                     [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                     [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]    INITIAL USE at:
[   61.306415]                    [   61.306415] [&lt;c107586e&gt;] __lock_acquire+0x1fe/0x1770
[   61.306415]                    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                    [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]                    [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]                    [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]                    [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]                    [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]                    [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]                    [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                    [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                    [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                    [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                    [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                    [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                    [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                    [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                    [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                    [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                    [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                    [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                    [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]  }
[   61.306415]  ... key      at: [&lt;c1f28f39&gt;] __key.43998+0x0/0x8
[   61.306415]  ... acquired at:
[   61.306415]    [   61.306415] [&lt;c1074a32&gt;] check_irq_usage+0x42/0xb0
[   61.306415]    [   61.306415] [&lt;c107677c&gt;] __lock_acquire+0x110c/0x1770
[   61.306415]    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]    [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]    [   61.306415] [&lt;c1336276&gt;] phy_stop+0x16/0x80
[   61.306415]    [   61.306415] [&lt;d0934ce9&gt;] r6040_close+0x89/0x230 [r6040]
[   61.306415]    [   61.306415] [&lt;c13a0a91&gt;] __dev_close_many+0x61/0xa0
[   61.306415]    [   61.306415] [&lt;c13a0bbf&gt;] __dev_close+0x1f/0x30
[   61.306415]    [   61.306415] [&lt;c13a9127&gt;] __dev_change_flags+0x87/0x150
[   61.306415]    [   61.306415] [&lt;c13a9213&gt;] dev_change_flags+0x23/0x60
[   61.306415]    [   61.306415] [&lt;c1416238&gt;] devinet_ioctl+0x5f8/0x6f0
[   61.306415]    [   61.306415] [&lt;c1417f75&gt;] inet_ioctl+0x65/0x90
[   61.306415]    [   61.306415] [&lt;c1389b54&gt;] sock_ioctl+0x124/0x2b0
[   61.306415]    [   61.306415] [&lt;c113cf7c&gt;] do_vfs_ioctl+0x7c/0x790
[   61.306415]    [   61.306415] [&lt;c113d6b8&gt;] SyS_ioctl+0x28/0x50
[   61.306415]    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415]
[   61.306415] stack backtrace:
[   61.306415] CPU: 0 PID: 449 Comm: ifconfig Not tainted 4.9.0-gb898d2d-manuel #1
[   61.306415] Call Trace:
[   61.306415]  dump_stack+0x16/0x19
[   61.306415]  check_usage+0x3f6/0x550
[   61.306415]  ? check_usage+0x4d/0x550
[   61.306415]  check_irq_usage+0x42/0xb0
[   61.306415]  __lock_acquire+0x110c/0x1770
[   61.306415]  lock_acquire+0x7c/0x150
[   61.306415]  ? phy_stop+0x16/0x80
[   61.306415]  mutex_lock_nested+0x2d/0x4a0
[   61.306415]  ? phy_stop+0x16/0x80
[   61.306415]  ? r6040_close+0x24/0x230 [r6040]
[   61.306415]  ? __delay+0x9/0x10
[   61.306415]  phy_stop+0x16/0x80
[   61.306415]  r6040_close+0x89/0x230 [r6040]
[   61.306415]  __dev_close_many+0x61/0xa0
[   61.306415]  __dev_close+0x1f/0x30
[   61.306415]  __dev_change_flags+0x87/0x150
[   61.306415]  dev_change_flags+0x23/0x60
[   61.306415]  devinet_ioctl+0x5f8/0x6f0
[   61.306415]  inet_ioctl+0x65/0x90
[   61.306415]  sock_ioctl+0x124/0x2b0
[   61.306415]  ? dlci_ioctl_set+0x30/0x30
[   61.306415]  do_vfs_ioctl+0x7c/0x790
[   61.306415]  ? trace_hardirqs_on+0xb/0x10
[   61.306415]  ? call_rcu_sched+0xd/0x10
[   61.306415]  ? __put_cred+0x32/0x50
[   61.306415]  ? SyS_faccessat+0x178/0x1e0
[   61.306415]  SyS_ioctl+0x28/0x50
[   61.306415]  do_int80_syscall_32+0x3f/0x110
[   61.306415]  entry_INT80_32+0x2f/0x2f
[   61.306415] EIP: 0xb764d364
[   61.306415] EFLAGS: 00000286 CPU: 0
[   61.306415] EAX: ffffffda EBX: 00000004 ECX: 00008914 EDX: bfa99d7c
[   61.306415] ESI: bfa99e4c EDI: fffffffe EBP: 00000004 ESP: bfa99d58
[   61.306415]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
[   63.836607] r6040 0000:00:08.0 eth0: Link is Down

Signed-off-by: Manuel Bessler &lt;manuel.bessler@sensus.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'ifconfig eth0 down' makes r6040_close() trigger:
 INFO: HARDIRQ-safe -&gt; HARDIRQ-unsafe lock order detected

Fixed by moving calls to phy_stop(), napi_disable(), netif_stop_queue()
to outside of the module's private spin_lock_irq block.

Found on a Versalogic Tomcat SBC with a Vortex86 SoC

s1660e_5150:~# sudo ifconfig eth0 down
[   61.306415] ======================================================
[   61.306415] [ INFO: SOFTIRQ-safe -&gt; SOFTIRQ-unsafe lock order detected ]
[   61.306415] 4.9.0-gb898d2d-manuel #1 Not tainted
[   61.306415] ------------------------------------------------------
[   61.306415] ifconfig/449 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[   61.306415]  (&amp;dev-&gt;lock){+.+...}, at: [&lt;c1336276&gt;] phy_stop+0x16/0x80

[   61.306415] and this task is already holding:
[   61.306415]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...}, at: [&lt;d0934c84&gt;] r6040_close+0x24/0x230 [r6040]
which would create a new lock dependency:
[   61.306415]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...} -&gt; (&amp;dev-&gt;lock){+.+...}

[   61.306415] but this new dependency connects a SOFTIRQ-irq-safe lock:
[   61.306415]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...}
[   61.306415] ... which became SOFTIRQ-irq-safe at:
[   61.306415]   [   61.306415] [&lt;c1075bc5&gt;] __lock_acquire+0x555/0x1770
[   61.306415]   [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]   [   61.306415] [&lt;c14bb334&gt;] _raw_spin_lock_irqsave+0x24/0x40
[   61.306415]   [   61.306415] [&lt;d0934ac0&gt;] r6040_start_xmit+0x30/0x1d0 [r6040]
[   61.306415]   [   61.306415] [&lt;c13a7d4d&gt;] dev_hard_start_xmit+0x9d/0x2d0
[   61.306415]   [   61.306415] [&lt;c13c8a38&gt;] sch_direct_xmit+0xa8/0x140
[   61.306415]   [   61.306415] [&lt;c13a8436&gt;] __dev_queue_xmit+0x416/0x780
[   61.306415]   [   61.306415] [&lt;c13a87aa&gt;] dev_queue_xmit+0xa/0x10
[   61.306415]   [   61.306415] [&lt;c13b4837&gt;] neigh_resolve_output+0x147/0x220
[   61.306415]   [   61.306415] [&lt;c144541b&gt;] ip6_finish_output2+0x2fb/0x910
[   61.306415]   [   61.306415] [&lt;c14494e6&gt;] ip6_finish_output+0xa6/0x1a0
[   61.306415]   [   61.306415] [&lt;c1449635&gt;] ip6_output+0x55/0x320
[   61.306415]   [   61.306415] [&lt;c146f4d2&gt;] mld_sendpack+0x352/0x560
[   61.306415]   [   61.306415] [&lt;c146fe55&gt;] mld_ifc_timer_expire+0x155/0x280
[   61.306415]   [   61.306415] [&lt;c108b081&gt;] call_timer_fn+0x81/0x270
[   61.306415]   [   61.306415] [&lt;c108b331&gt;] expire_timers+0xc1/0x180
[   61.306415]   [   61.306415] [&lt;c108b4f7&gt;] run_timer_softirq+0x77/0x150
[   61.306415]   [   61.306415] [&lt;c1043d04&gt;] __do_softirq+0xb4/0x3d0
[   61.306415]   [   61.306415] [&lt;c101a15c&gt;] do_softirq_own_stack+0x1c/0x30
[   61.306415]   [   61.306415] [&lt;c104416e&gt;] irq_exit+0x8e/0xa0
[   61.306415]   [   61.306415] [&lt;c1019d31&gt;] do_IRQ+0x51/0x100
[   61.306415]   [   61.306415] [&lt;c14bc176&gt;] common_interrupt+0x36/0x40
[   61.306415]   [   61.306415] [&lt;c1134928&gt;] set_root+0x68/0xf0
[   61.306415]   [   61.306415] [&lt;c1136120&gt;] path_init+0x400/0x640
[   61.306415]   [   61.306415] [&lt;c11386bf&gt;] path_lookupat+0xf/0xe0
[   61.306415]   [   61.306415] [&lt;c1139ebc&gt;] filename_lookup+0x6c/0x100
[   61.306415]   [   61.306415] [&lt;c1139fd5&gt;] user_path_at_empty+0x25/0x30
[   61.306415]   [   61.306415] [&lt;c11298c6&gt;] SyS_faccessat+0x86/0x1e0
[   61.306415]   [   61.306415] [&lt;c1129a30&gt;] SyS_access+0x10/0x20
[   61.306415]   [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]   [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415] to a SOFTIRQ-irq-unsafe lock:
[   61.306415]  (&amp;dev-&gt;lock){+.+...}
[   61.306415] ... which became SOFTIRQ-irq-unsafe at:
[   61.306415] ...[   61.306415]
[   61.306415] [&lt;c1075c0c&gt;] __lock_acquire+0x59c/0x1770
[   61.306415]   [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]   [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]   [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]   [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]   [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]   [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]   [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]   [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]   [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]   [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]   [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]   [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]   [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]   [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]   [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]   [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]   [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]   [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]   [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]   [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]   [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]   [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415] other info that might help us debug this:
[   61.306415]
[   61.306415]  Possible interrupt unsafe locking scenario:
[   61.306415]
[   61.306415]        CPU0                    CPU1
[   61.306415]        ----                    ----
[   61.306415]   lock(&amp;dev-&gt;lock);
[   61.306415]                                local_irq_disable();
[   61.306415]                                lock(&amp;(&amp;lp-&gt;lock)-&gt;rlock);
[   61.306415]                                lock(&amp;dev-&gt;lock);
[   61.306415]   &lt;Interrupt&gt;
[   61.306415]     lock(&amp;(&amp;lp-&gt;lock)-&gt;rlock);
[   61.306415]
[   61.306415]  *** DEADLOCK ***
[   61.306415]
[   61.306415] 2 locks held by ifconfig/449:
[   61.306415]  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;c13b68ef&gt;] rtnl_lock+0xf/0x20
[   61.306415]  #1:  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...}, at: [&lt;d0934c84&gt;] r6040_close+0x24/0x230 [r6040]
[   61.306415]
[   61.306415] the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
[   61.306415] -&gt; (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.-...} ops: 3049 {
[   61.306415]    HARDIRQ-ON-W at:
[   61.306415]                     [   61.306415] [&lt;c1075be7&gt;] __lock_acquire+0x577/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14bb21b&gt;] _raw_spin_lock+0x1b/0x30
[   61.306415]                     [   61.306415] [&lt;d09343cc&gt;] r6040_poll+0x2c/0x330 [r6040]
[   61.306415]                     [   61.306415] [&lt;c13a5577&gt;] net_rx_action+0x197/0x340
[   61.306415]                     [   61.306415] [&lt;c1043d04&gt;] __do_softirq+0xb4/0x3d0
[   61.306415]                     [   61.306415] [&lt;c1044037&gt;] run_ksoftirqd+0x17/0x40
[   61.306415]                     [   61.306415] [&lt;c105fe91&gt;] smpboot_thread_fn+0x141/0x180
[   61.306415]                     [   61.306415] [&lt;c105c84e&gt;] kthread+0xde/0x110
[   61.306415]                     [   61.306415] [&lt;c14bb949&gt;] ret_from_fork+0x19/0x30
[   61.306415]    IN-SOFTIRQ-W at:
[   61.306415]                     [   61.306415] [&lt;c1075bc5&gt;] __lock_acquire+0x555/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14bb334&gt;] _raw_spin_lock_irqsave+0x24/0x40
[   61.306415]                     [   61.306415] [&lt;d0934ac0&gt;] r6040_start_xmit+0x30/0x1d0 [r6040]
[   61.306415]                     [   61.306415] [&lt;c13a7d4d&gt;] dev_hard_start_xmit+0x9d/0x2d0
[   61.306415]                     [   61.306415] [&lt;c13c8a38&gt;] sch_direct_xmit+0xa8/0x140
[   61.306415]                     [   61.306415] [&lt;c13a8436&gt;] __dev_queue_xmit+0x416/0x780
[   61.306415]                     [   61.306415] [&lt;c13a87aa&gt;] dev_queue_xmit+0xa/0x10
[   61.306415]                     [   61.306415] [&lt;c13b4837&gt;] neigh_resolve_output+0x147/0x220
[   61.306415]                     [   61.306415] [&lt;c144541b&gt;] ip6_finish_output2+0x2fb/0x910
[   61.306415]                     [   61.306415] [&lt;c14494e6&gt;] ip6_finish_output+0xa6/0x1a0
[   61.306415]                     [   61.306415] [&lt;c1449635&gt;] ip6_output+0x55/0x320
[   61.306415]                     [   61.306415] [&lt;c146f4d2&gt;] mld_sendpack+0x352/0x560
[   61.306415]                     [   61.306415] [&lt;c146fe55&gt;] mld_ifc_timer_expire+0x155/0x280
[   61.306415]                     [   61.306415] [&lt;c108b081&gt;] call_timer_fn+0x81/0x270
[   61.306415]                     [   61.306415] [&lt;c108b331&gt;] expire_timers+0xc1/0x180
[   61.306415]                     [   61.306415] [&lt;c108b4f7&gt;] run_timer_softirq+0x77/0x150
[   61.306415]                     [   61.306415] [&lt;c1043d04&gt;] __do_softirq+0xb4/0x3d0
[   61.306415]                     [   61.306415] [&lt;c101a15c&gt;] do_softirq_own_stack+0x1c/0x30
[   61.306415]                     [   61.306415] [&lt;c104416e&gt;] irq_exit+0x8e/0xa0
[   61.306415]                     [   61.306415] [&lt;c1019d31&gt;] do_IRQ+0x51/0x100
[   61.306415]                     [   61.306415] [&lt;c14bc176&gt;] common_interrupt+0x36/0x40
[   61.306415]                     [   61.306415] [&lt;c1134928&gt;] set_root+0x68/0xf0
[   61.306415]                     [   61.306415] [&lt;c1136120&gt;] path_init+0x400/0x640
[   61.306415]                     [   61.306415] [&lt;c11386bf&gt;] path_lookupat+0xf/0xe0
[   61.306415]                     [   61.306415] [&lt;c1139ebc&gt;] filename_lookup+0x6c/0x100
[   61.306415]                     [   61.306415] [&lt;c1139fd5&gt;] user_path_at_empty+0x25/0x30
[   61.306415]                     [   61.306415] [&lt;c11298c6&gt;] SyS_faccessat+0x86/0x1e0
[   61.306415]                     [   61.306415] [&lt;c1129a30&gt;] SyS_access+0x10/0x20
[   61.306415]                     [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                     [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]    INITIAL USE at:
[   61.306415]                    [   61.306415] [&lt;c107586e&gt;] __lock_acquire+0x1fe/0x1770
[   61.306415]                    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                    [   61.306415] [&lt;c14bb334&gt;] _raw_spin_lock_irqsave+0x24/0x40
[   61.306415]                    [   61.306415] [&lt;d093474e&gt;] r6040_get_stats+0x1e/0x60 [r6040]
[   61.306415]                    [   61.306415] [&lt;c139fb16&gt;] dev_get_stats+0x96/0xc0
[   61.306415]                    [   61.306415] [&lt;c14b416e&gt;] rtnl_fill_stats+0x36/0xfd
[   61.306415]                    [   61.306415] [&lt;c13b7b3c&gt;] rtnl_fill_ifinfo+0x47c/0xce0
[   61.306415]                    [   61.306415] [&lt;c13bc08e&gt;] rtmsg_ifinfo_build_skb+0x4e/0xd0
[   61.306415]                    [   61.306415] [&lt;c13bc120&gt;] rtmsg_ifinfo.part.20+0x10/0x40
[   61.306415]                    [   61.306415] [&lt;c13bc16b&gt;] rtmsg_ifinfo+0x1b/0x20
[   61.306415]                    [   61.306415] [&lt;c13a9d19&gt;] register_netdevice+0x409/0x550
[   61.306415]                    [   61.306415] [&lt;c13a9e72&gt;] register_netdev+0x12/0x20
[   61.306415]                    [   61.306415] [&lt;d09357e8&gt;] r6040_init_one+0x3e8/0x500 [r6040]
[   61.306415]                    [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                    [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                    [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                    [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                    [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                    [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                    [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                    [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                    [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                    [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                    [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                    [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                    [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]  }
[   61.306415]  ... key      at: [&lt;d0936280&gt;] __key.45893+0x0/0xfffff739 [r6040]
[   61.306415]  ... acquired at:
[   61.306415]    [   61.306415] [&lt;c1074a32&gt;] check_irq_usage+0x42/0xb0
[   61.306415]    [   61.306415] [&lt;c107677c&gt;] __lock_acquire+0x110c/0x1770
[   61.306415]    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]    [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]    [   61.306415] [&lt;c1336276&gt;] phy_stop+0x16/0x80
[   61.306415]    [   61.306415] [&lt;d0934ce9&gt;] r6040_close+0x89/0x230 [r6040]
[   61.306415]    [   61.306415] [&lt;c13a0a91&gt;] __dev_close_many+0x61/0xa0
[   61.306415]    [   61.306415] [&lt;c13a0bbf&gt;] __dev_close+0x1f/0x30
[   61.306415]    [   61.306415] [&lt;c13a9127&gt;] __dev_change_flags+0x87/0x150
[   61.306415]    [   61.306415] [&lt;c13a9213&gt;] dev_change_flags+0x23/0x60
[   61.306415]    [   61.306415] [&lt;c1416238&gt;] devinet_ioctl+0x5f8/0x6f0
[   61.306415]    [   61.306415] [&lt;c1417f75&gt;] inet_ioctl+0x65/0x90
[   61.306415]    [   61.306415] [&lt;c1389b54&gt;] sock_ioctl+0x124/0x2b0
[   61.306415]    [   61.306415] [&lt;c113cf7c&gt;] do_vfs_ioctl+0x7c/0x790
[   61.306415]    [   61.306415] [&lt;c113d6b8&gt;] SyS_ioctl+0x28/0x50
[   61.306415]    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415]
the dependencies between the lock to be acquired[   61.306415]  and SOFTIRQ-irq-unsafe lock:
[   61.306415] -&gt; (&amp;dev-&gt;lock){+.+...} ops: 56 {
[   61.306415]    HARDIRQ-ON-W at:
[   61.306415]                     [   61.306415] [&lt;c1075be7&gt;] __lock_acquire+0x577/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]                     [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]                     [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]                     [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]                     [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]                     [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]                     [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                     [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                     [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                     [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                     [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                     [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                     [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                     [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                     [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                     [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                     [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                     [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                     [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                     [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                     [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]    SOFTIRQ-ON-W at:
[   61.306415]                     [   61.306415] [&lt;c1075c0c&gt;] __lock_acquire+0x59c/0x1770
[   61.306415]                     [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                     [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]                     [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]                     [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]                     [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]                     [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]                     [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]                     [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                     [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                     [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                     [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                     [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                     [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                     [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                     [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                     [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                     [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                     [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                     [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                     [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                     [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                     [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]    INITIAL USE at:
[   61.306415]                    [   61.306415] [&lt;c107586e&gt;] __lock_acquire+0x1fe/0x1770
[   61.306415]                    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]                    [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]                    [   61.306415] [&lt;c133747d&gt;] phy_probe+0x4d/0xc0
[   61.306415]                    [   61.306415] [&lt;c1338afe&gt;] phy_attach_direct+0xbe/0x190
[   61.306415]                    [   61.306415] [&lt;c1338ca7&gt;] phy_connect_direct+0x17/0x60
[   61.306415]                    [   61.306415] [&lt;c1338d23&gt;] phy_connect+0x33/0x70
[   61.306415]                    [   61.306415] [&lt;d09357a0&gt;] r6040_init_one+0x3a0/0x500 [r6040]
[   61.306415]                    [   61.306415] [&lt;c12a78c7&gt;] pci_device_probe+0x77/0xd0
[   61.306415]                    [   61.306415] [&lt;c12f5e15&gt;] driver_probe_device+0x145/0x280
[   61.306415]                    [   61.306415] [&lt;c12f5fd9&gt;] __driver_attach+0x89/0x90
[   61.306415]                    [   61.306415] [&lt;c12f43ef&gt;] bus_for_each_dev+0x4f/0x80
[   61.306415]                    [   61.306415] [&lt;c12f5954&gt;] driver_attach+0x14/0x20
[   61.306415]                    [   61.306415] [&lt;c12f55b7&gt;] bus_add_driver+0x197/0x210
[   61.306415]                    [   61.306415] [&lt;c12f6a21&gt;] driver_register+0x51/0xd0
[   61.306415]                    [   61.306415] [&lt;c12a6955&gt;] __pci_register_driver+0x45/0x50
[   61.306415]                    [   61.306415] [&lt;d0938017&gt;] 0xd0938017
[   61.306415]                    [   61.306415] [&lt;c100043f&gt;] do_one_initcall+0x2f/0x140
[   61.306415]                    [   61.306415] [&lt;c10e48c0&gt;] do_init_module+0x4a/0x19b
[   61.306415]                    [   61.306415] [&lt;c10a680e&gt;] load_module+0x1b2e/0x2070
[   61.306415]                    [   61.306415] [&lt;c10a6eb9&gt;] SyS_finit_module+0x69/0x80
[   61.306415]                    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]                    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]  }
[   61.306415]  ... key      at: [&lt;c1f28f39&gt;] __key.43998+0x0/0x8
[   61.306415]  ... acquired at:
[   61.306415]    [   61.306415] [&lt;c1074a32&gt;] check_irq_usage+0x42/0xb0
[   61.306415]    [   61.306415] [&lt;c107677c&gt;] __lock_acquire+0x110c/0x1770
[   61.306415]    [   61.306415] [&lt;c107717c&gt;] lock_acquire+0x7c/0x150
[   61.306415]    [   61.306415] [&lt;c14b7add&gt;] mutex_lock_nested+0x2d/0x4a0
[   61.306415]    [   61.306415] [&lt;c1336276&gt;] phy_stop+0x16/0x80
[   61.306415]    [   61.306415] [&lt;d0934ce9&gt;] r6040_close+0x89/0x230 [r6040]
[   61.306415]    [   61.306415] [&lt;c13a0a91&gt;] __dev_close_many+0x61/0xa0
[   61.306415]    [   61.306415] [&lt;c13a0bbf&gt;] __dev_close+0x1f/0x30
[   61.306415]    [   61.306415] [&lt;c13a9127&gt;] __dev_change_flags+0x87/0x150
[   61.306415]    [   61.306415] [&lt;c13a9213&gt;] dev_change_flags+0x23/0x60
[   61.306415]    [   61.306415] [&lt;c1416238&gt;] devinet_ioctl+0x5f8/0x6f0
[   61.306415]    [   61.306415] [&lt;c1417f75&gt;] inet_ioctl+0x65/0x90
[   61.306415]    [   61.306415] [&lt;c1389b54&gt;] sock_ioctl+0x124/0x2b0
[   61.306415]    [   61.306415] [&lt;c113cf7c&gt;] do_vfs_ioctl+0x7c/0x790
[   61.306415]    [   61.306415] [&lt;c113d6b8&gt;] SyS_ioctl+0x28/0x50
[   61.306415]    [   61.306415] [&lt;c100179f&gt;] do_int80_syscall_32+0x3f/0x110
[   61.306415]    [   61.306415] [&lt;c14bba3f&gt;] restore_all+0x0/0x61
[   61.306415]
[   61.306415]
[   61.306415] stack backtrace:
[   61.306415] CPU: 0 PID: 449 Comm: ifconfig Not tainted 4.9.0-gb898d2d-manuel #1
[   61.306415] Call Trace:
[   61.306415]  dump_stack+0x16/0x19
[   61.306415]  check_usage+0x3f6/0x550
[   61.306415]  ? check_usage+0x4d/0x550
[   61.306415]  check_irq_usage+0x42/0xb0
[   61.306415]  __lock_acquire+0x110c/0x1770
[   61.306415]  lock_acquire+0x7c/0x150
[   61.306415]  ? phy_stop+0x16/0x80
[   61.306415]  mutex_lock_nested+0x2d/0x4a0
[   61.306415]  ? phy_stop+0x16/0x80
[   61.306415]  ? r6040_close+0x24/0x230 [r6040]
[   61.306415]  ? __delay+0x9/0x10
[   61.306415]  phy_stop+0x16/0x80
[   61.306415]  r6040_close+0x89/0x230 [r6040]
[   61.306415]  __dev_close_many+0x61/0xa0
[   61.306415]  __dev_close+0x1f/0x30
[   61.306415]  __dev_change_flags+0x87/0x150
[   61.306415]  dev_change_flags+0x23/0x60
[   61.306415]  devinet_ioctl+0x5f8/0x6f0
[   61.306415]  inet_ioctl+0x65/0x90
[   61.306415]  sock_ioctl+0x124/0x2b0
[   61.306415]  ? dlci_ioctl_set+0x30/0x30
[   61.306415]  do_vfs_ioctl+0x7c/0x790
[   61.306415]  ? trace_hardirqs_on+0xb/0x10
[   61.306415]  ? call_rcu_sched+0xd/0x10
[   61.306415]  ? __put_cred+0x32/0x50
[   61.306415]  ? SyS_faccessat+0x178/0x1e0
[   61.306415]  SyS_ioctl+0x28/0x50
[   61.306415]  do_int80_syscall_32+0x3f/0x110
[   61.306415]  entry_INT80_32+0x2f/0x2f
[   61.306415] EIP: 0xb764d364
[   61.306415] EFLAGS: 00000286 CPU: 0
[   61.306415] EAX: ffffffda EBX: 00000004 ECX: 00008914 EDX: bfa99d7c
[   61.306415] ESI: bfa99e4c EDI: fffffffe EBP: 00000004 ESP: bfa99d58
[   61.306415]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
[   63.836607] r6040 0000:00:08.0 eth0: Link is Down

Signed-off-by: Manuel Bessler &lt;manuel.bessler@sensus.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: deprecate eth_change_mtu, remove usage</title>
<updated>2016-10-13T13:36:57+00:00</updated>
<author>
<name>Jarod Wilson</name>
<email>jarod@redhat.com</email>
</author>
<published>2016-10-08T02:04:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=a52ad514fdf3b8a57ca4322c92d2d8d5c6182485'/>
<id>a52ad514fdf3b8a57ca4322c92d2d8d5c6182485</id>
<content type='text'>
With centralized MTU checking, there's nothing productive done by
eth_change_mtu that isn't already done in dev_set_mtu, so mark it as
deprecated and remove all usage of it in the kernel. All callers have been
audited for calls to alloc_etherdev* or ether_setup directly, which means
they all have a valid dev-&gt;min_mtu and dev-&gt;max_mtu. Now eth_change_mtu
prints out a netdev_warn about being deprecated, for the benefit of
out-of-tree drivers that might be utilizing it.

Of note, dvb_net.c actually had dev-&gt;mtu = 4096, while using
eth_change_mtu, meaning that if you ever tried changing it's mtu, you
couldn't set it above 1500 anymore. It's now getting dev-&gt;max_mtu also set
to 4096 to remedy that.

v2: fix up lantiq_etop, missed breakage due to drive not compiling on x86

CC: netdev@vger.kernel.org
Signed-off-by: Jarod Wilson &lt;jarod@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With centralized MTU checking, there's nothing productive done by
eth_change_mtu that isn't already done in dev_set_mtu, so mark it as
deprecated and remove all usage of it in the kernel. All callers have been
audited for calls to alloc_etherdev* or ether_setup directly, which means
they all have a valid dev-&gt;min_mtu and dev-&gt;max_mtu. Now eth_change_mtu
prints out a netdev_warn about being deprecated, for the benefit of
out-of-tree drivers that might be utilizing it.

Of note, dvb_net.c actually had dev-&gt;mtu = 4096, while using
eth_change_mtu, meaning that if you ever tried changing it's mtu, you
couldn't set it above 1500 anymore. It's now getting dev-&gt;max_mtu also set
to 4096 to remedy that.

v2: fix up lantiq_etop, missed breakage due to drive not compiling on x86

CC: netdev@vger.kernel.org
Signed-off-by: Jarod Wilson &lt;jarod@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: r6040: add in missing white space in error message text</title>
<updated>2016-09-19T02:22:16+00:00</updated>
<author>
<name>Colin Ian King</name>
<email>colin.king@canonical.com</email>
</author>
<published>2016-09-16T09:43:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=22da73492541736eff5f6a6634c732e36c52a133'/>
<id>22da73492541736eff5f6a6634c732e36c52a133</id>
<content type='text'>
A couple of dev_err messages span two lines and the literal
string is missing a white space between words. Add the white
space and join the two lines into one.

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Acked-by: FLorian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A couple of dev_err messages span two lines and the literal
string is missing a white space between words. Add the white
space and join the two lines into one.

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Acked-by: FLorian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: r6040: Bump version and date</title>
<updated>2016-07-05T07:10:30+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=9da280413a2a7e03b38c880cf3e7e0c16dd7371b'/>
<id>9da280413a2a7e03b38c880cf3e7e0c16dd7371b</id>
<content type='text'>
Bump version to 0.28 and date to 4th of July 2016.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bump version to 0.28 and date to 4th of July 2016.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: r6040: Update my email</title>
<updated>2016-07-05T07:10:29+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com<