<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/atm, branch v2.6.32.58</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>atm/solos-pci: Don't include frame pseudo-header on transmit hex-dump</title>
<updated>2011-04-14T23:53:44+00:00</updated>
<author>
<name>Philip A. Prindeville</name>
<email>philipp@redfish-solutions.com</email>
</author>
<published>2011-03-30T12:59:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=483cb5a1a2b21a239fb8ed0dfb5f99cdaddf4a3e'/>
<id>483cb5a1a2b21a239fb8ed0dfb5f99cdaddf4a3e</id>
<content type='text'>
commit 18b429e74eeafe42e947b1b0f9a760c7153a0b5c upstream.

Omit pkt_hdr preamble when dumping transmitted packet as hex-dump;
we can pull this up because the frame has already been sent, and
dumping it is the last thing we do with it before freeing it.

Also include the size, vpi, and vci in the debug as is done on
receive.

Use "port" consistently instead of "device" intermittently.

Signed-off-by: Philip Prindeville &lt;philipp@redfish-solutions.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 18b429e74eeafe42e947b1b0f9a760c7153a0b5c upstream.

Omit pkt_hdr preamble when dumping transmitted packet as hex-dump;
we can pull this up because the frame has already been sent, and
dumping it is the last thing we do with it before freeing it.

Also include the size, vpi, and vci in the debug as is done on
receive.

Use "port" consistently instead of "device" intermittently.

Signed-off-by: Philip Prindeville &lt;philipp@redfish-solutions.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>solos-pci: Fix race condition in tasklet RX handling</title>
<updated>2010-08-13T20:19:34+00:00</updated>
<author>
<name>David Woodhouse</name>
<email>David.Woodhouse@intel.com</email>
</author>
<published>2010-08-08T06:02:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0d2952b49bf8ce20c93da5e515e90841b4e66765'/>
<id>0d2952b49bf8ce20c93da5e515e90841b4e66765</id>
<content type='text'>
commit 1f6ea6e511e5ec730d8e88651da1b7b6e8fd1333 upstream.

We were seeing faults in the solos-pci receive tasklet when packets
arrived for a VCC which was currently being closed:

[18842.727906] EIP: [&lt;e082f490&gt;] br2684_push+0x19/0x234 [br2684] SS:ESP 0068:dfb89d14

[18845.090712] [&lt;c13ecff3&gt;] ? do_page_fault+0x0/0x2e1
[18845.120042] [&lt;e082f490&gt;] ? br2684_push+0x19/0x234 [br2684]
[18845.153530] [&lt;e084fa13&gt;] solos_bh+0x28b/0x7c8 [solos_pci]
[18845.186488] [&lt;e084f711&gt;] ? solos_irq+0x2d/0x51 [solos_pci]
[18845.219960] [&lt;c100387b&gt;] ? handle_irq+0x3b/0x48
[18845.247732] [&lt;c10265cb&gt;] ? irq_exit+0x34/0x57
[18845.274437] [&lt;c1025720&gt;] tasklet_action+0x42/0x69
[18845.303247] [&lt;c102643f&gt;] __do_softirq+0x8e/0x129
[18845.331540] [&lt;c10264ff&gt;] do_softirq+0x25/0x2a
[18845.358274] [&lt;c102664c&gt;] _local_bh_enable_ip+0x5e/0x6a
[18845.389677] [&lt;c102666d&gt;] local_bh_enable+0xb/0xe
[18845.417944] [&lt;e08490a8&gt;] ppp_unregister_channel+0x32/0xbb [ppp_generic]
[18845.458193] [&lt;e08731ad&gt;] pppox_unbind_sock+0x18/0x1f [pppox]

This patch uses an RCU-inspired approach to fix it. In the RX tasklet's
find_vcc() function we first refuse to use a VCC which already has the
ATM_VF_READY bit cleared. And in the VCC close function, we synchronise
with the tasklet to ensure that it can't still be using the VCC before
we continue and allow the VCC to be destroyed.

Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Tested-by: Nathan Williams &lt;nathan@traverse.com.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1f6ea6e511e5ec730d8e88651da1b7b6e8fd1333 upstream.

We were seeing faults in the solos-pci receive tasklet when packets
arrived for a VCC which was currently being closed:

[18842.727906] EIP: [&lt;e082f490&gt;] br2684_push+0x19/0x234 [br2684] SS:ESP 0068:dfb89d14

[18845.090712] [&lt;c13ecff3&gt;] ? do_page_fault+0x0/0x2e1
[18845.120042] [&lt;e082f490&gt;] ? br2684_push+0x19/0x234 [br2684]
[18845.153530] [&lt;e084fa13&gt;] solos_bh+0x28b/0x7c8 [solos_pci]
[18845.186488] [&lt;e084f711&gt;] ? solos_irq+0x2d/0x51 [solos_pci]
[18845.219960] [&lt;c100387b&gt;] ? handle_irq+0x3b/0x48
[18845.247732] [&lt;c10265cb&gt;] ? irq_exit+0x34/0x57
[18845.274437] [&lt;c1025720&gt;] tasklet_action+0x42/0x69
[18845.303247] [&lt;c102643f&gt;] __do_softirq+0x8e/0x129
[18845.331540] [&lt;c10264ff&gt;] do_softirq+0x25/0x2a
[18845.358274] [&lt;c102664c&gt;] _local_bh_enable_ip+0x5e/0x6a
[18845.389677] [&lt;c102666d&gt;] local_bh_enable+0xb/0xe
[18845.417944] [&lt;e08490a8&gt;] ppp_unregister_channel+0x32/0xbb [ppp_generic]
[18845.458193] [&lt;e08731ad&gt;] pppox_unbind_sock+0x18/0x1f [pppox]

This patch uses an RCU-inspired approach to fix it. In the RX tasklet's
find_vcc() function we first refuse to use a VCC which already has the
ATM_VF_READY bit cleared. And in the VCC close function, we synchronise
with the tasklet to ensure that it can't still be using the VCC before
we continue and allow the VCC to be destroyed.

Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
Tested-by: Nathan Williams &lt;nathan@traverse.com.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net: Make setsockopt() optlen be unsigned.</title>
<updated>2009-09-30T23:12:20+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-09-30T23:12:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b7058842c940ad2c08dd829b21e5c92ebe3b8758'/>
<id>b7058842c940ad2c08dd829b21e5c92ebe3b8758</id>
<content type='text'>
This provides safety against negative optlen at the type
level instead of depending upon (sometimes non-trivial)
checks against this sprinkled all over the the place, in
each and every implementation.

Based upon work done by Arjan van de Ven and feedback
from Linus Torvalds.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This provides safety against negative optlen at the type
level instead of depending upon (sometimes non-trivial)
checks against this sprinkled all over the the place, in
each and every implementation.

Based upon work done by Arjan van de Ven and feedback
from Linus Torvalds.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>atm: dereference of he_dev-&gt;rbps_virt in he_init_group()</title>
<updated>2009-09-28T19:45:29+00:00</updated>
<author>
<name>Juha Leppanen</name>
<email>juha_motorsportcom@luukku.com</email>
</author>
<published>2009-09-28T19:45:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1b66c1ef2fd86082d49b1e005bd86fd0c60ad552'/>
<id>1b66c1ef2fd86082d49b1e005bd86fd0c60ad552</id>
<content type='text'>
The prefix decrement causes a very long loop if pci_pool_alloc() failed
in the first iteration. Also I swapped rbps and rbpl arguments.

Reported-by: Juha Leppanen &lt;juha_motorsportcom@luukku.com&gt;
Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The prefix decrement causes a very long loop if pci_pool_alloc() failed
in the first iteration. Also I swapped rbps and rbpl arguments.

Reported-by: Juha Leppanen &lt;juha_motorsportcom@luukku.com&gt;
Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.infradead.org/users/dwmw2/solos-2.6</title>
<updated>2009-09-22T22:18:59+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-09-22T22:18:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=efb064dec6e35618ddc04f3ba49f70e528fbe069'/>
<id>efb064dec6e35618ddc04f3ba49f70e528fbe069</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>atm: dereference of he_dev-&gt;rbps_virt in he_init_group()</title>
<updated>2009-09-22T21:00:12+00:00</updated>
<author>
<name>roel kluin</name>
<email>roel.kluin@gmail.com</email>
</author>
<published>2009-09-20T07:11:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5d5baa92664e66f63b75abc51fbcd0b96d81f5d8'/>
<id>5d5baa92664e66f63b75abc51fbcd0b96d81f5d8</id>
<content type='text'>
he_dev-&gt;rbps_virt or he_dev-&gt;rbpl_virt allocation may fail, s
them. Make sure that he_init_group() cleans up after errors.

Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
he_dev-&gt;rbps_virt or he_dev-&gt;rbpl_virt allocation may fail, s
them. Make sure that he_init_group() cleans up after errors.

Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/atm: Use DIV_ROUND_CLOSEST</title>
<updated>2009-08-02T19:54:22+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-08-01T22:48:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8b97c7c283c5ba8f9f4dabd418fd7dcfcc8a387e'/>
<id>8b97c7c283c5ba8f9f4dabd418fd7dcfcc8a387e</id>
<content type='text'>
The kernel.h macro DIV_ROUND_CLOSEST performs the computation (x + d/2)/d
but is perhaps more readable.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@haskernel@
@@

#include &lt;linux/kernel.h&gt;

@depends on haskernel@
expression x,__divisor;
@@

- (((x) + ((__divisor) / 2)) / (__divisor))
+ DIV_ROUND_CLOSEST(x,__divisor)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The kernel.h macro DIV_ROUND_CLOSEST performs the computation (x + d/2)/d
but is perhaps more readable.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@haskernel@
@@

#include &lt;linux/kernel.h&gt;

@depends on haskernel@
expression x,__divisor;
@@

- (((x) + ((__divisor) / 2)) / (__divisor))
+ DIV_ROUND_CLOSEST(x,__divisor)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/atm: Correct redundant test</title>
<updated>2009-07-27T18:38:52+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-07-27T18:38:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6cf5767c7107c606644503f3e95bc1855386a70f'/>
<id>6cf5767c7107c606644503f3e95bc1855386a70f</id>
<content type='text'>
str has already been tested.  It seems that this test should be on the
recently returned value snr.

A simplified version of the semantic match that finds this problem is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@r exists@
local idexpression x;
expression E;
@@

if (x == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&amp;=E\|&amp;x\)
(
*x == NULL
|
*x != NULL
)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
str has already been tested.  It seems that this test should be on the
recently returned value snr.

A simplified version of the semantic match that finds this problem is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// &lt;smpl&gt;
@r exists@
local idexpression x;
expression E;
@@

if (x == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&amp;=E\|&amp;x\)
(
*x == NULL
|
*x != NULL
)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>solos: Show Interleaving details for ADSL2 and 2+</title>
<updated>2009-05-07T18:49:44+00:00</updated>
<author>
<name>Simon Farnsworth</name>
<email>simon@farnz.org.uk</email>
</author>
<published>2009-05-07T18:43:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=69a9ceab83928e743fafbba5b98bd09aed7c0e0d'/>
<id>69a9ceab83928e743fafbba5b98bd09aed7c0e0d</id>
<content type='text'>
InterleaveRDn and InterleaveRUp only apply to G.dmt. The equivalents for ADSL2
and 2+ are BisRDn and BisRUp. In addition, the INPdown and INPup statuses are
useful when trying to track down instability on a line.

Signed-off-by: Simon Farnsworth &lt;simon@farnz.org.uk&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
InterleaveRDn and InterleaveRUp only apply to G.dmt. The equivalents for ADSL2
and 2+ are BisRDn and BisRUp. In addition, the INPdown and INPup statuses are
useful when trying to track down instability on a line.

Signed-off-by: Simon Farnsworth &lt;simon@farnz.org.uk&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>solos: Add some margin-related parameters</title>
<updated>2009-04-30T14:38:01+00:00</updated>
<author>
<name>David Woodhouse</name>
<email>David.Woodhouse@intel.com</email>
</author>
<published>2009-04-30T14:38:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a3434660e5b47ab90387b017e311437bb3a88083'/>
<id>a3434660e5b47ab90387b017e311437bb3a88083</id>
<content type='text'>
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
