<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/ethernet/xilinx, branch linux-3.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-11-11T13:33:51Z</updated>
<entry>
<title>xilinx: Fix compiler warning</title>
<updated>2017-11-11T13:33:51Z</updated>
<author>
<name>Manuel Schölling</name>
</author>
<published>2014-06-22T11:24:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31a10eaad05b8d124edbe72eca137f4ebd86444b'/>
<id>urn:sha1:31a10eaad05b8d124edbe72eca137f4ebd86444b</id>
<content type='text'>
commit 9f8b93cb32e088d3377c86fabb666b884bac0f12 upstream.

The time comparsion functions require arguments of type unsigned long
instead of (signed) long.

Signed-off-by: Manuel Schölling &lt;manuel.schoelling@gmx.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>net: xilinx_emaclite: fix freezes due to unordered I/O</title>
<updated>2017-03-16T02:27:14Z</updated>
<author>
<name>Anssi Hannula</name>
</author>
<published>2017-02-14T17:11:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c32ff59ab18cec7be8e427f140dd2e0426ebde41'/>
<id>urn:sha1:c32ff59ab18cec7be8e427f140dd2e0426ebde41</id>
<content type='text'>
commit acf138f1b00bdd1b7cd9894562ed0c2a1670888e upstream.

The xilinx_emaclite uses __raw_writel and __raw_readl for register
accesses. Those functions do not imply any kind of memory barriers and
they may be reordered.

The driver does not seem to take that into account, though, and the
driver does not satisfy the ordering requirements of the hardware.
For clear examples, see xemaclite_mdio_write() and xemaclite_mdio_read()
which try to set MDIO address before initiating the transaction.

I'm seeing system freezes with the driver with GCC 5.4 and current
Linux kernels on Zynq-7000 SoC immediately when trying to use the
interface.

In commit 123c1407af87 ("net: emaclite: Do not use microblaze and ppc
IO functions") the driver was switched from non-generic
in_be32/out_be32 (memory barriers, big endian) to
__raw_readl/__raw_writel (no memory barriers, native endian), so
apparently the device follows system endianness and the driver was
originally written with the assumption of memory barriers.

Rather than try to hunt for each case of missing barrier, just switch
the driver to use iowrite32/ioread32/iowrite32be/ioread32be depending
on endianness instead.

Tested on little-endian Zynq-7000 ARM SoC FPGA.

Signed-off-by: Anssi Hannula &lt;anssi.hannula@bitwise.fi&gt;
Fixes: 123c1407af87 ("net: emaclite: Do not use microblaze and ppc IO
functions")
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>net: xilinx_emaclite: fix receive buffer overflow</title>
<updated>2017-03-16T02:27:14Z</updated>
<author>
<name>Anssi Hannula</name>
</author>
<published>2017-02-14T17:11:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7a7ba2248b91b7cf06370fd6fe6e9f5c0728ae72'/>
<id>urn:sha1:7a7ba2248b91b7cf06370fd6fe6e9f5c0728ae72</id>
<content type='text'>
commit cd224553641848dd17800fe559e4ff5d208553e8 upstream.

xilinx_emaclite looks at the received data to try to determine the
Ethernet packet length but does not properly clamp it if
proto_type == ETH_P_IP or 1500 &lt; proto_type &lt;= 1518, causing a buffer
overflow and a panic via skb_panic() as the length exceeds the allocated
skb size.

Fix those cases.

Also add an additional unconditional check with WARN_ON() at the end.

Signed-off-by: Anssi Hannula &lt;anssi.hannula@bitwise.fi&gt;
Fixes: bb81b2ddfa19 ("net: add Xilinx emac lite device driver")
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>xilinx: Use time_before_eq()</title>
<updated>2014-05-22T19:50:13Z</updated>
<author>
<name>Manuel Schölling</name>
</author>
<published>2014-05-22T19:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3aeea53f0a372a8adbfc150b37319bff3d24fd04'/>
<id>urn:sha1:3aeea53f0a372a8adbfc150b37319bff3d24fd04</id>
<content type='text'>
To be future-proof and for better readability the time comparisons are modified
to use time_before_eq() instead of plain, error-prone math.

Signed-off-by: Manuel Schölling &lt;manuel.schoelling@gmx.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: emaclite: remove empty MDIO bus reset function</title>
<updated>2014-03-28T05:38:02Z</updated>
<author>
<name>Florian Fainelli</name>
</author>
<published>2014-03-27T01:07:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33c0431ea67d1f6f3bf061a5cd2a5c52a07bb165'/>
<id>urn:sha1:33c0431ea67d1f6f3bf061a5cd2a5c52a07bb165</id>
<content type='text'>
xemaclite_mdio_reset() does nothing useful and is optional for the MDIO
bus code, so let's just remove it.

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>xilinx_emaclite: Call dev_consume_skb_any instead of dev_kfree_skb.</title>
<updated>2014-03-25T04:19:22Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2014-03-16T01:27:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=69e73d2391e9fc0f2c5df3935197ccefafc5760f'/>
<id>urn:sha1:69e73d2391e9fc0f2c5df3935197ccefafc5760f</id>
<content type='text'>
Replace dev_kfree_skb with dev_consume_skb_any in xemaclite_send which
can be called in hard irq and other contexts.  xemacelite_send only
frees skbs that it has successfully transmitted.

Signed-off-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>xilinx: Convert uses of __constant_&lt;foo&gt; to &lt;foo&gt;</title>
<updated>2014-03-12T19:28:06Z</updated>
<author>
<name>Joe Perches</name>
</author>
<published>2014-03-12T17:22:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ceffc4acfc8c4cf4badaa93921f00e2b34e24a97'/>
<id>urn:sha1:ceffc4acfc8c4cf4badaa93921f00e2b34e24a97</id>
<content type='text'>
The use of __constant_&lt;foo&gt; has been unnecessary for quite awhile now.

Make these uses consistent with the rest of the kernel.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: axienet: Fix compilation warnings</title>
<updated>2014-02-13T23:07:40Z</updated>
<author>
<name>Michal Simek</name>
</author>
<published>2014-02-13T07:10:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=91ff37ff0b898e1ac8a1557b968a4918250f22ae'/>
<id>urn:sha1:91ff37ff0b898e1ac8a1557b968a4918250f22ae</id>
<content type='text'>
Warning log:
xilinx_axienet_main.c: In function 'axienet_start_xmit_done':
xilinx_axienet_main.c:617:16: warning: operation on 'lp-&gt;tx_bd_ci' may be undefined [-Wsequence-point]
xilinx_axienet_main.c: In function 'axienet_start_xmit':
xilinx_axienet_main.c:703:18: warning: operation on 'lp-&gt;tx_bd_tail' may be undefined [-Wsequence-point]
xilinx_axienet_main.c:719:17: warning: operation on 'lp-&gt;tx_bd_tail' may be undefined [-Wsequence-point]
xilinx_axienet_main.c: In function 'axienet_recv':
xilinx_axienet_main.c:792:16: warning: operation on 'lp-&gt;rx_bd_ci' may be undefined [-Wsequence-point]
xilinx_axienet_main.c: In function 'axienet_of_probe':
xilinx_axienet_main.c:1501:21: warning: unused variable 'rc' [-Wunused-variable]

Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: axienet: Fix compilation error</title>
<updated>2014-02-13T23:07:40Z</updated>
<author>
<name>Michal Simek</name>
</author>
<published>2014-02-13T07:10:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d5e8ec6571293cb8a5321176d74d559d2d38542'/>
<id>urn:sha1:9d5e8ec6571293cb8a5321176d74d559d2d38542</id>
<content type='text'>
Add missing header to fix compilation error.
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1575:22:
 error: undefined identifier 'irq_of_parse_and_map'
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1576:22:
 error: undefined identifier 'irq_of_parse_and_map'

Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>drivers/net: delete non-required instances of include &lt;linux/init.h&gt;</title>
<updated>2014-01-16T19:53:26Z</updated>
<author>
<name>Paul Gortmaker</name>
</author>
<published>2014-01-08T20:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a81ab36bf52d0ca3a32251a923be1dbced726141'/>
<id>urn:sha1:a81ab36bf52d0ca3a32251a923be1dbced726141</id>
<content type='text'>
None of these files are actually using any __init type directives
and hence don't need to include &lt;linux/init.h&gt;.   Most are just a
left over from __devinit and __cpuinit removal, or simply due to
code getting copied from one driver to the next.

This covers everything under drivers/net except for wireless, which
has been submitted separately.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
