<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/arm, branch v3.0.86</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/net/arm?h=v3.0.86</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/net/arm?h=v3.0.86'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-06-11T23:25:16Z</updated>
<entry>
<title>net: ep93xx_eth: fix DMA API violations</title>
<updated>2011-06-11T23:25:16Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@iki.fi</email>
</author>
<published>2011-06-11T08:39:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f1c089e3192f1afdfa76226dc38ef81b08ac810d'/>
<id>urn:sha1:f1c089e3192f1afdfa76226dc38ef81b08ac810d</id>
<content type='text'>
Russell King said:
&gt;
&gt; So, to summarize what its doing:
&gt;
&gt; 1. It allocates buffers for rx and tx.
&gt; 2. It maps them with dma_map_single().
&gt;       This transfers ownership of the buffer to the DMA device.
&gt; 3. In ep93xx_xmit,
&gt; 3a. It copies the data into the buffer with skb_copy_and_csum_dev()
&gt;       This violates the DMA buffer ownership rules - the CPU should
&gt;       not be writing to this buffer while it is (in principle) owned
&gt;       by the DMA device.
&gt; 3b. It then calls dma_sync_single_for_cpu() for the buffer.
&gt;       This transfers ownership of the buffer to the CPU, which surely
&gt;       is the wrong direction.
&gt; 4. In ep93xx_rx,
&gt; 4a. It calls dma_sync_single_for_cpu() for the buffer.
&gt;       This at least transfers the DMA buffer ownership to the CPU
&gt;       before the CPU reads the buffer
&gt; 4b. It then uses skb_copy_to_linear_data() to copy the data out.
&gt;       At no point does it transfer ownership back to the DMA device.
&gt; 5. When the driver is removed, it dma_unmap_single()'s the buffer.
&gt;       This transfers ownership of the buffer to the CPU.
&gt; 6. It frees the buffer.
&gt;
&gt; While it may work on ep93xx, it's not respecting the DMA API rules,
&gt; and with DMA debugging enabled it will probably encounter quite a few
&gt; warnings.

This patch fixes these violations.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@iki.fi&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Tested-by: Petr Stetiar &lt;ynezz@true.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: ep93xx_eth: drop GFP_DMA from call to dma_alloc_coherent()</title>
<updated>2011-06-11T23:25:16Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@iki.fi</email>
</author>
<published>2011-06-11T08:39:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1f758a4341ac83289a549e6ba2d29a08cf639717'/>
<id>urn:sha1:1f758a4341ac83289a549e6ba2d29a08cf639717</id>
<content type='text'>
Commit a197b59ae6e8 (mm: fail GFP_DMA allocations when ZONE_DMA is not
configured) made page allocator to return NULL if GFP_DMA is set but
CONFIG_ZONE_DMA is disabled.

This causes ep93xx_eth to fail:

 WARNING: at mm/page_alloc.c:2251 __alloc_pages_nodemask+0x11c/0x638()
 Modules linked in:
 [&lt;c0035498&gt;] (unwind_backtrace+0x0/0xf4) from [&lt;c0043da4&gt;] (warn_slowpath_common+0x48/0x60)
 [&lt;c0043da4&gt;] (warn_slowpath_common+0x48/0x60) from [&lt;c0043dd8&gt;] (warn_slowpath_null+0x1c/0x24)
 [&lt;c0043dd8&gt;] (warn_slowpath_null+0x1c/0x24) from [&lt;c0083b6c&gt;] (__alloc_pages_nodemask+0x11c/0x638)
 [&lt;c0083b6c&gt;] (__alloc_pages_nodemask+0x11c/0x638) from [&lt;c00366fc&gt;] (__dma_alloc+0x8c/0x3ec)
 [&lt;c00366fc&gt;] (__dma_alloc+0x8c/0x3ec) from [&lt;c0036adc&gt;] (dma_alloc_coherent+0x54/0x60)
 [&lt;c0036adc&gt;] (dma_alloc_coherent+0x54/0x60) from [&lt;c0227808&gt;] (ep93xx_open+0x20/0x864)
 [&lt;c0227808&gt;] (ep93xx_open+0x20/0x864) from [&lt;c0283144&gt;] (__dev_open+0xb8/0x108)
 [&lt;c0283144&gt;] (__dev_open+0xb8/0x108) from [&lt;c0280528&gt;] (__dev_change_flags+0x70/0x128)
 [&lt;c0280528&gt;] (__dev_change_flags+0x70/0x128) from [&lt;c0283054&gt;] (dev_change_flags+0x10/0x48)
 [&lt;c0283054&gt;] (dev_change_flags+0x10/0x48) from [&lt;c001a720&gt;] (ip_auto_config+0x190/0xf68)
 [&lt;c001a720&gt;] (ip_auto_config+0x190/0xf68) from [&lt;c00233b0&gt;] (do_one_initcall+0x34/0x18c)
 [&lt;c00233b0&gt;] (do_one_initcall+0x34/0x18c) from [&lt;c0008400&gt;] (kernel_init+0x94/0x134)
 [&lt;c0008400&gt;] (kernel_init+0x94/0x134) from [&lt;c0030858&gt;] (kernel_thread_exit+0x0/0x8)

Since there is no restrictions for DMA on ep93xx, we can fix this by just
removing the GFP_DMA flag from the call.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@iki.fi&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Tested-by: Petr Stetiar &lt;ynezz@true.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: ep93xx_eth: allocate buffers using kmalloc()</title>
<updated>2011-06-11T23:25:15Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@iki.fi</email>
</author>
<published>2011-06-11T08:39:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3247a1fcee49b571b40c4bd723439ce5c64f56ad'/>
<id>urn:sha1:3247a1fcee49b571b40c4bd723439ce5c64f56ad</id>
<content type='text'>
We can use simply kmalloc() to allocate the buffers. This also simplifies the
code and allows us to perform DMA sync operations more easily.

Memory is allocated with only GFP_KERNEL since there are no DMA allocation
restrictions on this platform.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@iki.fi&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Acked-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Tested-by: Petr Stetiar &lt;ynezz@true.cz&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: ep93xx_eth: pass struct device to DMA API functions</title>
<updated>2011-06-11T23:25:15Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@iki.fi</email>
</author>
<published>2011-06-11T08:39:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fc9b4910b00039da054f221e2821be0519261101'/>
<id>urn:sha1:fc9b4910b00039da054f221e2821be0519261101</id>
<content type='text'>
We shouldn't use NULL for any DMA API functions, unless we are dealing with
ISA or EISA device. So pass correct struct dev pointer to these functions.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@iki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>NET: am79c961: fix assembler warnings</title>
<updated>2011-06-11T22:56:01Z</updated>
<author>
<name>Russell King - ARM Linux</name>
<email>linux@arm.linux.org.uk</email>
</author>
<published>2011-06-10T00:52:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f777737885a69d37132c956f1e8deab676693157'/>
<id>urn:sha1:f777737885a69d37132c956f1e8deab676693157</id>
<content type='text'>
Fix:
/tmp/ccvoZ6h8.s: Assembler messages:
/tmp/ccvoZ6h8.s:284: Warning: register range not in ascending order
/tmp/ccvoZ6h8.s:881: Warning: register range not in ascending order
/tmp/ccvoZ6h8.s:1087: Warning: register range not in ascending order

by ensuring that we have temporary variables placed into specific
registers.  Reorder the code a bit to allow the resulting assembly
to be slightly more optimal.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>NET: am79c961: ensure multicast filter is correctly set at open</title>
<updated>2011-06-11T22:56:00Z</updated>
<author>
<name>Russell King - ARM Linux</name>
<email>linux@arm.linux.org.uk</email>
</author>
<published>2011-06-10T00:52:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bfc6501324427a97814de1587f89d73bf8677057'/>
<id>urn:sha1:bfc6501324427a97814de1587f89d73bf8677057</id>
<content type='text'>
We were clearing out the multicast filter whenever the interface was
upped, and not setting the mode bits correctly.  This can cause
problems if there are any multicast addresses already set at this
point, or if ALLMULTI was set.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>NET: am79c961: ensure asm() statements are marked volatile</title>
<updated>2011-06-11T22:56:00Z</updated>
<author>
<name>Russell King - ARM Linux</name>
<email>linux@arm.linux.org.uk</email>
</author>
<published>2011-06-10T00:51:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d814dee0e1a5d9b2f858b91551a0dd0608f777a1'/>
<id>urn:sha1:d814dee0e1a5d9b2f858b91551a0dd0608f777a1</id>
<content type='text'>
Without this the compiler can (and does) optimize register reads away
from within loops, and other such optimizations.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ptp: Added a clock driver for the IXP46x.</title>
<updated>2011-05-23T20:10:19Z</updated>
<author>
<name>Richard Cochran</name>
<email>richardcochran@gmail.com</email>
</author>
<published>2011-04-22T10:04:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=32bd93e8f924c23b8cc2e2a12fef0d8cc9cda0c5'/>
<id>urn:sha1:32bd93e8f924c23b8cc2e2a12fef0d8cc9cda0c5</id>
<content type='text'>
This patch adds a driver for the hardware time stamping unit found on the
IXP465. The basic clock operations and an external trigger are implemented.

Signed-off-by: Richard Cochran &lt;richard.cochran@omicron.at&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Acked-by: John Stultz &lt;john.stultz@linaro.org&gt;
Acked-by: Krzysztof Halasa &lt;khc@pm.waw.pl&gt;
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6</title>
<updated>2011-05-20T20:43:21Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-20T20:43:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=06f4e926d256d902dd9a53dcb400fd74974ce087'/>
<id>urn:sha1:06f4e926d256d902dd9a53dcb400fd74974ce087</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits)
  macvlan: fix panic if lowerdev in a bond
  tg3: Add braces around 5906 workaround.
  tg3: Fix NETIF_F_LOOPBACK error
  macvlan: remove one synchronize_rcu() call
  networking: NET_CLS_ROUTE4 depends on INET
  irda: Fix error propagation in ircomm_lmp_connect_response()
  irda: Kill set but unused variable 'bytes' in irlan_check_command_param()
  irda: Kill set but unused variable 'clen' in ircomm_connect_indication()
  rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport()
  be2net: Kill set but unused variable 'req' in lancer_fw_download()
  irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication()
  atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined.
  rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer().
  rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler()
  rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection()
  rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window()
  pkt_sched: Kill set but unused variable 'protocol' in tc_classify()
  isdn: capi: Use pr_debug() instead of ifdefs.
  tg3: Update version to 3.119
  tg3: Apply rx_discards fix to 5719/5720
  ...

Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c
as per Davem.
</content>
</entry>
<entry>
<title>ARM: RiscPC: etherh: fix section mismatches</title>
<updated>2011-05-06T07:14:57Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2011-05-06T07:14:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=56f3aeb2c14b9d000dfc77f352250bc3b67af5c0'/>
<id>urn:sha1:56f3aeb2c14b9d000dfc77f352250bc3b67af5c0</id>
<content type='text'>
WARNING: drivers/net/arm/built-in.o(.data+0x0): Section mismatch in reference from the variable etherh_driver to the function .init.text:etherh_probe()
The variable etherh_driver references
the function __init etherh_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
