<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/ethernet/rdc, branch linux-5.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2023-01-18T10:41:32Z</updated>
<entry>
<title>r6040: Fix kmemleak in probe and remove</title>
<updated>2023-01-18T10:41:32Z</updated>
<author>
<name>Li Zetao</name>
</author>
<published>2022-12-13T12:56:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b0a61359026b57a287a48fbb4ba1d097023eca3e'/>
<id>urn:sha1:b0a61359026b57a287a48fbb4ba1d097023eca3e</id>
<content type='text'>
[ Upstream commit 7e43039a49c2da45edc1d9d7c9ede4003ab45a5f ]

There is a memory leaks reported by kmemleak:

  unreferenced object 0xffff888116111000 (size 2048):
    comm "modprobe", pid 817, jiffies 4294759745 (age 76.502s)
    hex dump (first 32 bytes):
      00 c4 0a 04 81 88 ff ff 08 10 11 16 81 88 ff ff  ................
      08 10 11 16 81 88 ff ff 00 00 00 00 00 00 00 00  ................
    backtrace:
      [&lt;ffffffff815bcd82&gt;] kmalloc_trace+0x22/0x60
      [&lt;ffffffff827e20ee&gt;] phy_device_create+0x4e/0x90
      [&lt;ffffffff827e6072&gt;] get_phy_device+0xd2/0x220
      [&lt;ffffffff827e7844&gt;] mdiobus_scan+0xa4/0x2e0
      [&lt;ffffffff827e8be2&gt;] __mdiobus_register+0x482/0x8b0
      [&lt;ffffffffa01f5d24&gt;] r6040_init_one+0x714/0xd2c [r6040]
      ...

The problem occurs in probe process as follows:
  r6040_init_one:
    mdiobus_register
      mdiobus_scan    &lt;- alloc and register phy_device,
                         the reference count of phy_device is 3
    r6040_mii_probe
      phy_connect     &lt;- connect to the first phy_device,
                         so the reference count of the first
                         phy_device is 4, others are 3
    register_netdev   &lt;- fault inject succeeded, goto error handling path

    // error handling path
    err_out_mdio_unregister:
      mdiobus_unregister(lp-&gt;mii_bus);
    err_out_mdio:
      mdiobus_free(lp-&gt;mii_bus);    &lt;- the reference count of the first
                                       phy_device is 1, it is not released
                                       and other phy_devices are released
  // similarly, the remove process also has the same problem

The root cause is traced to the phy_device is not disconnected when
removes one r6040 device in r6040_remove_one() or on error handling path
after r6040_mii probed successfully. In r6040_mii_probe(), a net ethernet
device is connected to the first PHY device of mii_bus, in order to
notify the connected driver when the link status changes, which is the
default behavior of the PHY infrastructure to handle everything.
Therefore the phy_device should be disconnected when removes one r6040
device or on error handling path.

Fix it by adding phy_disconnect() when removes one r6040 device or on
error handling path after r6040_mii probed successfully.

Fixes: 3831861b4ad8 ("r6040: implement phylib")
Signed-off-by: Li Zetao &lt;lizetao1@huawei.com&gt;
Reviewed-by: Leon Romanovsky &lt;leonro@nvidia.com&gt;
Link: https://lore.kernel.org/r/20221213125614.927754-1-lizetao1@huawei.com
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>r6040: Restore MDIO clock frequency after MAC reset</title>
<updated>2021-09-22T10:26:41Z</updated>
<author>
<name>Florian Fainelli</name>
</author>
<published>2021-09-09T17:33:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=678787dcfe9256b70c7f8f42ab7df4d601f2797c'/>
<id>urn:sha1:678787dcfe9256b70c7f8f42ab7df4d601f2797c</id>
<content type='text'>
commit e3f0cc1a945fcefec0c7c9d9dfd028a51daa1846 upstream.

A number of users have reported that they were not able to get the PHY
to successfully link up, especially after commit c36757eb9dee ("net:
phy: consider AN_RESTART status when reading link status") where we
stopped reading just BMSR, but we also read BMCR to determine the link
status.

Andrius at NetBSD did a wonderful job at debugging the problem
and found out that the MDIO bus clock frequency would be incorrectly set
back to its default value which would prevent the MDIO bus controller
from reading PHY registers properly. Back when we only read BMSR, if we
read all 1s, we could falsely indicate a link status, though in general
there is a cable plugged in, so this went unnoticed. After a second read
of BMCR was added, a wrong read will lead to the inability to determine
a link UP condition which is when it started to be visibly broken, even
if it was long before that.

The fix consists in restoring the value of the MD_CSR register that was
set prior to the MAC reset.

Link: http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=53494
Fixes: 90f750a81a29 ("r6040: consolidate MAC reset to its own function")
Reported-by: Andrius V &lt;vezhlys@gmail.com&gt;
Reported-by: Darek Strugacz &lt;darek.strugacz@op.pl&gt;
Tested-by: Darek Strugacz &lt;darek.strugacz@op.pl&gt;
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1</title>
<updated>2019-05-21T09:28:39Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2019-05-19T13:51:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16216333235adf51093d0330a934a7e4a03134fe'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>treewide: Add SPDX license identifier - Makefile/Kconfig</title>
<updated>2019-05-21T08:50:46Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2019-05-19T12:07:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>net: move skb-&gt;xmit_more hint to softnet data</title>
<updated>2019-04-02T01:35:02Z</updated>
<author>
<name>Florian Westphal</name>
</author>
<published>2019-04-01T14:42:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6b16f9ee89b8d5709f24bc3ac89ae8b5452c0d7c'/>
<id>urn:sha1: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>
</entry>
<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>
</author>
<published>2018-09-11T23:53:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</author>
<published>2016-12-16T03:55:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</author>
<published>2016-10-08T02:04:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</author>
<published>2016-09-16T09:43:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</author>
<published>2016-07-04T21:36:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/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>
</feed>
