<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/ti, branch linux-4.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2015-10-27T05:08:10Z</updated>
<entry>
<title>net: netcp: add missing of_node_put</title>
<updated>2015-10-27T05:08:10Z</updated>
<author>
<name>Julia Lawall</name>
<email>julia.lawall@lip6.fr</email>
</author>
<published>2015-10-25T13:57:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bd252796852193277a07da505601a2f407c70e0b'/>
<id>urn:sha1:bd252796852193277a07da505601a2f407c70e0b</id>
<content type='text'>
for_each_child_of_node performs an of_node_get on each iteration, so
a break out of the loop requires an of_node_put.

A simplified version of the semantic patch that fixes this problem is as
follows (http://coccinelle.lip6.fr):

// &lt;smpl&gt;
@@
local idexpression r.n;
expression r,e;
@@

 for_each_child_of_node(r,n) {
   ...
(
   of_node_put(n);
|
   e = n
|
+  of_node_put(n);
?  break;
)
   ...
 }
... when != n
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;Julia.Lawall@lip6.fr&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>drivers: net: cpsw: add phy-handle parsing</title>
<updated>2015-10-21T13:41:42Z</updated>
<author>
<name>Heiko Schocher</name>
<email>hs@denx.de</email>
</author>
<published>2015-10-17T04:04:35Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9e42f715264ff158478fa30eaed847f6e131366b'/>
<id>urn:sha1:9e42f715264ff158478fa30eaed847f6e131366b</id>
<content type='text'>
add the ability to parse "phy-handle". This
is needed for phys, which have a DT node, and
need to parse DT properties.

Signed-off-by: Heiko Schocher &lt;hs@denx.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: fix deadlock reported by lockup detector</title>
<updated>2015-09-23T21:37:37Z</updated>
<author>
<name>Karicheri, Muralidharan</name>
<email>m-karicheri2@ti.com</email>
</author>
<published>2015-09-23T17:37:11Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8ceaf361ffd131e835aef1e6cdb1d5ba70702617'/>
<id>urn:sha1:8ceaf361ffd131e835aef1e6cdb1d5ba70702617</id>
<content type='text'>
A deadlock trace is seen in netcp driver with lockup detector enabled.
The trace log is provided below for reference. This patch fixes the
bug by removing the usage of netcp_modules_lock within ndo_ops functions.
ndo_{open/close/ioctl)() is already called with rtnl_lock held. So there
is no need to hold another mutex for serialization across processes on
multiple cores.  So remove use of netcp_modules_lock mutex from these
ndo ops functions.

ndo_set_rx_mode() shouldn't be using a mutex as it is called from atomic
context. In the case of ndo_set_rx_mode(), there can be call to this API
without rtnl_lock held from an atomic context. As the underlying modules
are expected to add address to a hardware table, it is to be protected
across concurrent updates and hence a spin lock is used to synchronize
the access. Same with ndo_vlan_rx_add_vid() &amp; ndo_vlan_rx_kill_vid().

Probably the netcp_modules_lock is used to protect the module not being
removed as part of rmmod. Currently this is not fully implemented and
assumes the interface is brought down before doing rmmod of modules.
The support for rmmmod while interface is up is expected in a future
patch set when additional modules such as pa, qos are added. For now
all of the tests such as if up/down, reboot, iperf works fine with this
patch applied.

Deadlock trace seen with lockup detector enabled is shown below for
reference.

[   16.863014] ======================================================
[   16.869183] [ INFO: possible circular locking dependency detected ]
[   16.875441] 4.1.6-01265-gfb1e101 #1 Tainted: G        W
[   16.881176] -------------------------------------------------------
[   16.887432] ifconfig/1662 is trying to acquire lock:
[   16.892386]  (netcp_modules_lock){+.+.+.}, at: [&lt;c03e8110&gt;]
netcp_ndo_open+0x168/0x518
[   16.900321]
[   16.900321] but task is already holding lock:
[   16.906144]  (rtnl_mutex){+.+.+.}, at: [&lt;c053a418&gt;] devinet_ioctl+0xf8/0x7e4
[   16.913206]
[   16.913206] which lock already depends on the new lock.
[   16.913206]
[   16.921372]
[   16.921372] the existing dependency chain (in reverse order) is:
[   16.928844]
-&gt; #1 (rtnl_mutex){+.+.+.}:
[   16.932865]        [&lt;c06023f0&gt;] mutex_lock_nested+0x68/0x4a8
[   16.938521]        [&lt;c04c5758&gt;] register_netdev+0xc/0x24
[   16.943831]        [&lt;c03e65c0&gt;] netcp_module_probe+0x214/0x2ec
[   16.949660]        [&lt;c03e8a54&gt;] netcp_register_module+0xd4/0x140
[   16.955663]        [&lt;c089654c&gt;] keystone_gbe_init+0x10/0x28
[   16.961233]        [&lt;c000977c&gt;] do_one_initcall+0xb8/0x1f8
[   16.966714]        [&lt;c0867e04&gt;] kernel_init_freeable+0x148/0x1e8
[   16.972720]        [&lt;c05f9994&gt;] kernel_init+0xc/0xe8
[   16.977682]        [&lt;c0010038&gt;] ret_from_fork+0x14/0x3c
[   16.982905]
-&gt; #0 (netcp_modules_lock){+.+.+.}:
[   16.987619]        [&lt;c006eab0&gt;] lock_acquire+0x118/0x320
[   16.992928]        [&lt;c06023f0&gt;] mutex_lock_nested+0x68/0x4a8
[   16.998582]        [&lt;c03e8110&gt;] netcp_ndo_open+0x168/0x518
[   17.004064]        [&lt;c04c48f0&gt;] __dev_open+0xa8/0x10c
[   17.009112]        [&lt;c04c4b74&gt;] __dev_change_flags+0x94/0x144
[   17.014853]        [&lt;c04c4c3c&gt;] dev_change_flags+0x18/0x48
[   17.020334]        [&lt;c053a9fc&gt;] devinet_ioctl+0x6dc/0x7e4
[   17.025729]        [&lt;c04a59ec&gt;] sock_ioctl+0x1d0/0x2a8
[   17.030865]        [&lt;c0142844&gt;] do_vfs_ioctl+0x41c/0x688
[   17.036173]        [&lt;c0142ae4&gt;] SyS_ioctl+0x34/0x5c
[   17.041046]        [&lt;c000ff60&gt;] ret_fast_syscall+0x0/0x54
[   17.046441]
[   17.046441] other info that might help us debug this:
[   17.046441]
[   17.054434]  Possible unsafe locking scenario:
[   17.054434]
[   17.060343]        CPU0                    CPU1
[   17.064862]        ----                    ----
[   17.069381]   lock(rtnl_mutex);
[   17.072522]                                lock(netcp_modules_lock);
[   17.078875]                                lock(rtnl_mutex);
[   17.084532]   lock(netcp_modules_lock);
[   17.088366]
[   17.088366]  *** DEADLOCK ***
[   17.088366]
[   17.094279] 1 lock held by ifconfig/1662:
[   17.098278]  #0:  (rtnl_mutex){+.+.+.}, at: [&lt;c053a418&gt;]
devinet_ioctl+0xf8/0x7e4
[   17.105774]
[   17.105774] stack backtrace:
[   17.110124] CPU: 1 PID: 1662 Comm: ifconfig Tainted: G        W
4.1.6-01265-gfb1e101 #1
[   17.118637] Hardware name: Keystone
[   17.122123] [&lt;c00178e4&gt;] (unwind_backtrace) from [&lt;c0013cbc&gt;]
(show_stack+0x10/0x14)
[   17.129862] [&lt;c0013cbc&gt;] (show_stack) from [&lt;c05ff450&gt;]
(dump_stack+0x84/0xc4)
[   17.137079] [&lt;c05ff450&gt;] (dump_stack) from [&lt;c0068e34&gt;]
(print_circular_bug+0x210/0x330)
[   17.145161] [&lt;c0068e34&gt;] (print_circular_bug) from [&lt;c006ab7c&gt;]
(validate_chain.isra.35+0xf98/0x13ac)
[   17.154372] [&lt;c006ab7c&gt;] (validate_chain.isra.35) from [&lt;c006da60&gt;]
(__lock_acquire+0x52c/0xcc0)
[   17.163149] [&lt;c006da60&gt;] (__lock_acquire) from [&lt;c006eab0&gt;]
(lock_acquire+0x118/0x320)
[   17.171058] [&lt;c006eab0&gt;] (lock_acquire) from [&lt;c06023f0&gt;]
(mutex_lock_nested+0x68/0x4a8)
[   17.179140] [&lt;c06023f0&gt;] (mutex_lock_nested) from [&lt;c03e8110&gt;]
(netcp_ndo_open+0x168/0x518)
[   17.187484] [&lt;c03e8110&gt;] (netcp_ndo_open) from [&lt;c04c48f0&gt;]
(__dev_open+0xa8/0x10c)
[   17.195133] [&lt;c04c48f0&gt;] (__dev_open) from [&lt;c04c4b74&gt;]
(__dev_change_flags+0x94/0x144)
[   17.203129] [&lt;c04c4b74&gt;] (__dev_change_flags) from [&lt;c04c4c3c&gt;]
(dev_change_flags+0x18/0x48)
[   17.211560] [&lt;c04c4c3c&gt;] (dev_change_flags) from [&lt;c053a9fc&gt;]
(devinet_ioctl+0x6dc/0x7e4)
[   17.219729] [&lt;c053a9fc&gt;] (devinet_ioctl) from [&lt;c04a59ec&gt;]
(sock_ioctl+0x1d0/0x2a8)
[   17.227378] [&lt;c04a59ec&gt;] (sock_ioctl) from [&lt;c0142844&gt;]
(do_vfs_ioctl+0x41c/0x688)
[   17.234939] [&lt;c0142844&gt;] (do_vfs_ioctl) from [&lt;c0142ae4&gt;]
(SyS_ioctl+0x34/0x5c)
[   17.242242] [&lt;c0142ae4&gt;] (SyS_ioctl) from [&lt;c000ff60&gt;]
(ret_fast_syscall+0x0/0x54)
[   17.258855] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow
control off
[   17.271282] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:616
[   17.279712] in_atomic(): 1, irqs_disabled(): 0, pid: 1662, name: ifconfig
[   17.286500] INFO: lockdep is turned off.
[   17.290413] Preemption disabled at:[&lt;  (null)&gt;]   (null)
[   17.295728]
[   17.297214] CPU: 1 PID: 1662 Comm: ifconfig Tainted: G        W
4.1.6-01265-gfb1e101 #1
[   17.305735] Hardware name: Keystone
[   17.309223] [&lt;c00178e4&gt;] (unwind_backtrace) from [&lt;c0013cbc&gt;]
(show_stack+0x10/0x14)
[   17.316970] [&lt;c0013cbc&gt;] (show_stack) from [&lt;c05ff450&gt;]
(dump_stack+0x84/0xc4)
[   17.324194] [&lt;c05ff450&gt;] (dump_stack) from [&lt;c06023b0&gt;]
(mutex_lock_nested+0x28/0x4a8)
[   17.332112] [&lt;c06023b0&gt;] (mutex_lock_nested) from [&lt;c03e9840&gt;]
(netcp_set_rx_mode+0x160/0x210)
[   17.340724] [&lt;c03e9840&gt;] (netcp_set_rx_mode) from [&lt;c04c483c&gt;]
(dev_set_rx_mode+0x1c/0x28)
[   17.348982] [&lt;c04c483c&gt;] (dev_set_rx_mode) from [&lt;c04c490c&gt;]
(__dev_open+0xc4/0x10c)
[   17.356724] [&lt;c04c490c&gt;] (__dev_open) from [&lt;c04c4b74&gt;]
(__dev_change_flags+0x94/0x144)
[   17.364729] [&lt;c04c4b74&gt;] (__dev_change_flags) from [&lt;c04c4c3c&gt;]
(dev_change_flags+0x18/0x48)
[   17.373166] [&lt;c04c4c3c&gt;] (dev_change_flags) from [&lt;c053a9fc&gt;]
(devinet_ioctl+0x6dc/0x7e4)
[   17.381344] [&lt;c053a9fc&gt;] (devinet_ioctl) from [&lt;c04a59ec&gt;]
(sock_ioctl+0x1d0/0x2a8)
[   17.388994] [&lt;c04a59ec&gt;] (sock_ioctl) from [&lt;c0142844&gt;]
(do_vfs_ioctl+0x41c/0x688)
[   17.396563] [&lt;c0142844&gt;] (do_vfs_ioctl) from [&lt;c0142ae4&gt;]
(SyS_ioctl+0x34/0x5c)
[   17.403873] [&lt;c0142ae4&gt;] (SyS_ioctl) from [&lt;c000ff60&gt;]
(ret_fast_syscall+0x0/0x54)
[   17.413772] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc (v1.20.2) started
Sending discover...
[   18.690666] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow
control off
Sending discover...
[   22.250972] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow
control off
[   22.258721] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   22.265458] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:616
[   22.273896] in_atomic(): 1, irqs_disabled(): 0, pid: 342, name: kworker/1:1
[   22.280854] INFO: lockdep is turned off.
[   22.284767] Preemption disabled at:[&lt;  (null)&gt;]   (null)
[   22.290074]
[   22.291568] CPU: 1 PID: 342 Comm: kworker/1:1 Tainted: G        W
4.1.6-01265-gfb1e101 #1
[   22.300255] Hardware name: Keystone
[   22.303750] Workqueue: ipv6_addrconf addrconf_dad_work
[   22.308895] [&lt;c00178e4&gt;] (unwind_backtrace) from [&lt;c0013cbc&gt;]
(show_stack+0x10/0x14)
[   22.316643] [&lt;c0013cbc&gt;] (show_stack) from [&lt;c05ff450&gt;]
(dump_stack+0x84/0xc4)
[   22.323867] [&lt;c05ff450&gt;] (dump_stack) from [&lt;c06023b0&gt;]
(mutex_lock_nested+0x28/0x4a8)
[   22.331786] [&lt;c06023b0&gt;] (mutex_lock_nested) from [&lt;c03e9840&gt;]
(netcp_set_rx_mode+0x160/0x210)
[   22.340394] [&lt;c03e9840&gt;] (netcp_set_rx_mode) from [&lt;c04c9d18&gt;]
(__dev_mc_add+0x54/0x68)
[   22.348401] [&lt;c04c9d18&gt;] (__dev_mc_add) from [&lt;c05ab358&gt;]
(igmp6_group_added+0x168/0x1b4)
[   22.356580] [&lt;c05ab358&gt;] (igmp6_group_added) from [&lt;c05ad2cc&gt;]
(ipv6_dev_mc_inc+0x4f0/0x5a8)
[   22.365019] [&lt;c05ad2cc&gt;] (ipv6_dev_mc_inc) from [&lt;c058f0d0&gt;]
(addrconf_dad_work+0x21c/0x33c)
[   22.373460] [&lt;c058f0d0&gt;] (addrconf_dad_work) from [&lt;c0042850&gt;]
(process_one_work+0x214/0x8d0)
[   22.381986] [&lt;c0042850&gt;] (process_one_work) from [&lt;c0042f54&gt;]
(worker_thread+0x48/0x4bc)
[   22.390071] [&lt;c0042f54&gt;] (worker_thread) from [&lt;c004868c&gt;]
(kthread+0xf0/0x108)
[   22.397381] [&lt;c004868c&gt;] (kthread) from [&lt;c0010038&gt;]

Trace related to incorrect usage of mutex inside ndo_set_rx_mode

[   24.086066] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:616
[   24.094506] in_atomic(): 1, irqs_disabled(): 0, pid: 1682, name: ifconfig
[   24.101291] INFO: lockdep is turned off.
[   24.105203] Preemption disabled at:[&lt;  (null)&gt;]   (null)
[   24.110511]
[   24.112005] CPU: 2 PID: 1682 Comm: ifconfig Tainted: G        W
4.1.6-01265-gfb1e101 #1
[   24.120518] Hardware name: Keystone
[   24.124018] [&lt;c00178e4&gt;] (unwind_backtrace) from [&lt;c0013cbc&gt;]
(show_stack+0x10/0x14)
[   24.131772] [&lt;c0013cbc&gt;] (show_stack) from [&lt;c05ff450&gt;]
(dump_stack+0x84/0xc4)
[   24.138989] [&lt;c05ff450&gt;] (dump_stack) from [&lt;c06023b0&gt;]
(mutex_lock_nested+0x28/0x4a8)
[   24.146908] [&lt;c06023b0&gt;] (mutex_lock_nested) from [&lt;c03e9840&gt;]
(netcp_set_rx_mode+0x160/0x210)
[   24.155523] [&lt;c03e9840&gt;] (netcp_set_rx_mode) from [&lt;c04c483c&gt;]
(dev_set_rx_mode+0x1c/0x28)
[   24.163787] [&lt;c04c483c&gt;] (dev_set_rx_mode) from [&lt;c04c490c&gt;]
(__dev_open+0xc4/0x10c)
[   24.171531] [&lt;c04c490c&gt;] (__dev_open) from [&lt;c04c4b74&gt;]
(__dev_change_flags+0x94/0x144)
[   24.179528] [&lt;c04c4b74&gt;] (__dev_change_flags) from [&lt;c04c4c3c&gt;]
(dev_change_flags+0x18/0x48)
[   24.187966] [&lt;c04c4c3c&gt;] (dev_change_flags) from [&lt;c053a9fc&gt;]
(devinet_ioctl+0x6dc/0x7e4)
[   24.196145] [&lt;c053a9fc&gt;] (devinet_ioctl) from [&lt;c04a59ec&gt;]
(sock_ioctl+0x1d0/0x2a8)
[   24.203803] [&lt;c04a59ec&gt;] (sock_ioctl) from [&lt;c0142844&gt;]
(do_vfs_ioctl+0x41c/0x688)
[   24.211373] [&lt;c0142844&gt;] (do_vfs_ioctl) from [&lt;c0142ae4&gt;]
(SyS_ioctl+0x34/0x5c)
[   24.218676] [&lt;c0142ae4&gt;] (SyS_ioctl) from [&lt;c000ff60&gt;]
(ret_fast_syscall+0x0/0x54)
[   24.227156] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready

Signed-off-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: allocate buffers to desc before re-enable interrupt</title>
<updated>2015-09-23T21:37:37Z</updated>
<author>
<name>Karicheri, Muralidharan</name>
<email>m-karicheri2@ti.com</email>
</author>
<published>2015-09-23T17:37:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=99f8ef5dc6546ac28cc7a03ff8301bc72fe5527e'/>
<id>urn:sha1:99f8ef5dc6546ac28cc7a03ff8301bc72fe5527e</id>
<content type='text'>
Currently netcp_rxpool_refill() that refill descriptors and attached
buffers to fdq while interrupt is enabled as part of NAPI poll. Doing
it while interrupt is disabled could be beneficial as hardware will
not be starved when CPU is busy with processing interrupt.

Signed-off-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: check for interface handle in netcp_module_probe()</title>
<updated>2015-09-23T21:37:37Z</updated>
<author>
<name>Karicheri, Muralidharan</name>
<email>m-karicheri2@ti.com</email>
</author>
<published>2015-09-23T17:37:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=915c5857874fc211874de1363e88f902e581e6eb'/>
<id>urn:sha1:915c5857874fc211874de1363e88f902e581e6eb</id>
<content type='text'>
Currently netcp_module_probe() doesn't check the return value of
of_parse_phandle() that points to the interface data for the
module and then pass the node ptr to the module which is incorrect.
Check for return value and free the intf_modpriv if there is error.

Signed-off-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: add error check to netcp_allocate_rx_buf()</title>
<updated>2015-09-23T21:37:37Z</updated>
<author>
<name>Karicheri, Muralidharan</name>
<email>m-karicheri2@ti.com</email>
</author>
<published>2015-09-23T17:37:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e558b1fbf5f43da83f91a31e595a6d65e663b100'/>
<id>urn:sha1:e558b1fbf5f43da83f91a31e595a6d65e663b100</id>
<content type='text'>
Currently, if netcp_allocate_rx_buf() fails due no descriptors
in the rx free descriptor queue, inside the netcp_rxpool_refill() function
the iterative loop to fill buffers doesn't terminate right away. So modify
the netcp_allocate_rx_buf() to return an error code and use it break the
loop when there is error.

Signed-off-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: move netcp_register_interface() to after attach module</title>
<updated>2015-09-23T21:37:36Z</updated>
<author>
<name>Karicheri, Muralidharan</name>
<email>m-karicheri2@ti.com</email>
</author>
<published>2015-09-23T17:37:07Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=736532a0705ffc27c14f712fa2758a7f8b15e8b4'/>
<id>urn:sha1:736532a0705ffc27c14f712fa2758a7f8b15e8b4</id>
<content type='text'>
The netcp interface is not fully initialized before attach the module
to the interface. For example, the tx pipe/rx pipe is initialized
in ethss module as part of attach(). So until this is complete, the
interface can't be registered.  So move registration of interface to
net device outside the current loop that attaches the modules to the
interface.

Signed-off-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: remove dead code from the driver</title>
<updated>2015-09-23T21:37:36Z</updated>
<author>
<name>Karicheri, Muralidharan</name>
<email>m-karicheri2@ti.com</email>
</author>
<published>2015-09-23T17:37:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=156e3c21f89655f099228577005a6c656b3ceb3d'/>
<id>urn:sha1:156e3c21f89655f099228577005a6c656b3ceb3d</id>
<content type='text'>
netcp_core is the first driver that will get initialized and the modules
(ethss, pa etc) will then get initialized. So the code at the end of
netcp_probe() that iterate over the modules is a dead code as the module
list will be always be empty. So remove this code.

Signed-off-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: netcp: ethss: fix error in calling sgmii api with incorrect offset</title>
<updated>2015-09-23T21:37:36Z</updated>
<author>
<name>WingMan Kwok</name>
<email>w-kwok2@ti.com</email>
</author>
<published>2015-09-23T17:37:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8c85151ddec66f78fbf997e35be005a322fbb9c9'/>
<id>urn:sha1:8c85151ddec66f78fbf997e35be005a322fbb9c9</id>
<content type='text'>
On K2HK, sgmii module registers of slave 0 and 1 are mem
mapped to one contiguous block, while those of slave 2
and 3 are mapped to another contiguous block.  However,
on K2E and K2L, sgmii module registers of all slaves are
mem mapped to one contiguous block.  SGMII APIs expect
slave 0 sgmii base when API is invoked for slave 0 and 1,
and slave 2 sgmii base when invoked for other slaves.
Before this patch, slave 0 sgmii base is always passed to
sgmii API for K2E regardless which slave is the API invoked
for.  This patch fixes the problem.

Signed-off-by: WingMan Kwok &lt;w-kwok2@ti.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus</title>
<updated>2015-09-03T23:55:55Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-09-03T23:55:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=807249d3ada1ff28a47c4054ca4edd479421b671'/>
<id>urn:sha1:807249d3ada1ff28a47c4054ca4edd479421b671</id>
<content type='text'>
Pull MIPS updates from Ralf Baechle:
 "This is the main pull request for 4.3 for MIPS.  Here's the summary:

  Three fixes that didn't make 4.2-stable:

   - a -Os build might compile the kernel using the MIPS16 instruction
     set but the R2 optimized inline functions in &lt;uapi/asm/swab.h&gt; are
     implemented using 32-bit wide instructions which is invalid.

   - a build error in pgtable-bits.h for a particular kernel
     configuration.

   - accessing registers of the CM GCR might have been compiled to use
     64 bit accesses but these registers are onl 32 bit wide.

  And also a few new bits:

   - move the ATH79 GPIO driver to drivers/gpio

   - the definition of IRQCHIP_DECLARE has moved to linux/irqchip.h,
     change ATH79 accordingly.

   - fix definition of pgprot_writecombine

   - add an implementation of dma_map_ops.mmap

   - fix alignment of quiet build output for vmlinuz link

   - BCM47xx: Use kmemdup rather than duplicating its implementation

   - Netlogic: Fix 0x0x prefixes of constants.

   - merge Bjorn Helgaas' series to remove most of the weak keywords
     from function declarations.

   - CP0 and CP1 registers are best considered treated as unsigned
     values to avoid large values from becoming negative values.

   - improve support for the MIPS GIC timer.

   - enable common clock framework for Malta and SEAD3.

   - a number of improvments and fixes to dump_tlb().

   - document the MIPS TLB dump functionality in Magic SysRq.

   - Cavium Octeon CN68XX improvments.

   - NetLogic improvments.

   - irq: Use access helper irq_data_get_affinity_mask.

   - handle MSA unaligned accesses.

   - a number of R6-related math-emu fixes.

   - support for I6400.

   - improvments to MSA support.

   - add uprobes support.

   - move from deprecated __initcall to arch_initcall.

   - remove finish_arch_switch().

   - IRQ cleanups by Thomas Gleixner.

   - migrate to new 'set-state' interface.

   - random small cleanups"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (148 commits)
  MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16.
  MIPS: Fix alignment of quiet build output for vmlinuz link
  MIPS: math-emu: Remove unused handle_dsemul function declaration
  MIPS: math-emu: Add support for the MIPS R6 MAX{, A} FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 MIN{, A} FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 CLASS FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 RINT FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 MSUBF FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 MADDF FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 SELNEZ FPU instruction
  MIPS: math-emu: Add support for the MIPS R6 SELEQZ FPU instruction
  MIPS: math-emu: Add support for the CMP.condn.fmt R6 instruction
  MIPS: inst.h: Add new MIPS R6 FPU opcodes
  MIPS: Octeon: Fix management port MII address on Kontron S1901
  MIPS: BCM47xx: Use kmemdup rather than duplicating its implementation
  STAGING: Octeon: Use common helpers for determining interface and port
  MIPS: Octeon: Support interfaces 4 and 5
  MIPS: Octeon: Set up 1:1 mapping between CN68XX PKO queues and ports
  MIPS: Octeon: Initialize CN68XX PKO
  STAGING: Octeon: Support CN68XX style WQE
  ...
</content>
</entry>
</feed>
