<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/rdc, branch linux-5.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-5.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-09-13T03:24:20Z</updated>
<entry>
<title>net: ethernet: Use phy_set_max_speed() to limit advertised speed</title>
<updated>2018-09-13T03:24:20Z</updated>
<author>
<name>Andrew Lunn</name>
<email>andrew@lunn.ch</email>
</author>
<published>2018-09-11T23:53:11Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=58056c1e1b0e4951f3486bd552d8278194f8b84b'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>r6040: move spinlock in r6040_close as SOFTIRQ-unsafe lock order detected</title>
<updated>2016-12-18T02:35:12Z</updated>
<author>
<name>Manuel Bessler</name>
<email>manuel.bessler@sensus.com</email>
</author>
<published>2016-12-16T03:55:00Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c762eaa777b789540e3fe33581d6d0e593dbb22e'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>net: deprecate eth_change_mtu, remove usage</title>
<updated>2016-10-13T13:36:57Z</updated>
<author>
<name>Jarod Wilson</name>
<email>jarod@redhat.com</email>
</author>
<published>2016-10-08T02:04:34Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a52ad514fdf3b8a57ca4322c92d2d8d5c6182485'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>net: r6040: add in missing white space in error message text</title>
<updated>2016-09-19T02:22:16Z</updated>
<author>
<name>Colin Ian King</name>
<email>colin.king@canonical.com</email>
</author>
<published>2016-09-16T09:43:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=22da73492541736eff5f6a6634c732e36c52a133'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>net: r6040: Bump version and date</title>
<updated>2016-07-05T07:10:30Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9da280413a2a7e03b38c880cf3e7e0c16dd7371b'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>net: r6040: Update my email</title>
<updated>2016-07-05T07:10:29Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=35566e9687af6cce72eee8466dd7173780fdd671'/>
<id>urn:sha1:35566e9687af6cce72eee8466dd7173780fdd671</id>
<content type='text'>
Update my email address in the driver and MAINTAINERS file.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: r6040: Utilize napi_complete_done()</title>
<updated>2016-07-05T07:10:29Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:07Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0305efff117ddc6671f5eaf4e4fefd7418116224'/>
<id>urn:sha1:0305efff117ddc6671f5eaf4e4fefd7418116224</id>
<content type='text'>
We maintain how much work we did in NAPI context, so provide that with
napi_complete_done().

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: r6040: Utilize __napi_schedule_irqoff</title>
<updated>2016-07-05T07:10:29Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ffb5bce0bfd7f196dcfb3263596202cef7b4b92c'/>
<id>urn:sha1:ffb5bce0bfd7f196dcfb3263596202cef7b4b92c</id>
<content type='text'>
We are already in hard IRQ context, so we can use
__napi_schedule_irqoff() to save a few operations.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: r6040: Check for skb-&gt;xmit_more</title>
<updated>2016-07-05T07:10:29Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9507ffc2acf04c9b1aa02e346225d268c07d79f0'/>
<id>urn:sha1:9507ffc2acf04c9b1aa02e346225d268c07d79f0</id>
<content type='text'>
Kick the transmission only if this is the last SKB to transmit or the
queue is not already stopped.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: r6040: Reclaim transmitted buffers in NAPI</title>
<updated>2016-07-05T07:10:29Z</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-04T21:36:04Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=58e6b056b0daa8f0287061cff2989e9d5e9a9b7c'/>
<id>urn:sha1:58e6b056b0daa8f0287061cff2989e9d5e9a9b7c</id>
<content type='text'>
Instead of taking one interrupt per packet transmitted, re-use the same
NAPI context to free transmitted buffers. Since we are no longer in hard
IRQ context replace dev_kfree_skb_irq() by dev_kfree_skb().

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
