<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch imx-android-r10.4</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>net: Reorder incoming packets in PPPoLAC and PPPoPNS.</title>
<updated>2011-09-05T02:01:19+00:00</updated>
<author>
<name>Chia-chi Yeh</name>
<email>chiachi@android.com</email>
</author>
<published>2011-04-15T22:22:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c1e09e5cce158d76e0a641c5bd829c142ee686c8'/>
<id>c1e09e5cce158d76e0a641c5bd829c142ee686c8</id>
<content type='text'>
PPP handles packet loss but does not work with out of order packets.
This change performs reordering of incoming data packets within a
sliding window of one second. Since sequence number is optional,
receiving a packet without it will drop all queued packets.

Currently the logic is triggered by incoming packets, so queued
packets have to wait till another packet is arrived. It is done for
simplicity since no additional locks or threads are required. For
reliable protocols, a retransmission will kick it. For unreliable
protocols, queued packets just seem like packet loss. Time-critical
protocols might be broken, but they never work with queueing anyway.

Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PPP handles packet loss but does not work with out of order packets.
This change performs reordering of incoming data packets within a
sliding window of one second. Since sequence number is optional,
receiving a packet without it will drop all queued packets.

Currently the logic is triggered by incoming packets, so queued
packets have to wait till another packet is arrived. It is done for
simplicity since no additional locks or threads are required. For
reliable protocols, a retransmission will kick it. For unreliable
protocols, queued packets just seem like packet loss. Time-critical
protocols might be broken, but they never work with queueing anyway.

Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00151519 FEC: Fix compile warning about incompatible pointer type</title>
<updated>2011-06-14T10:09:34+00:00</updated>
<author>
<name>Zeng Zhaoming</name>
<email>b32542@freescale.com</email>
</author>
<published>2011-06-13T09:59:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7117aafb1b6fb9e7d0f94778d3d4515200f2bb77'/>
<id>7117aafb1b6fb9e7d0f94778d3d4515200f2bb77</id>
<content type='text'>
kernel compilation with a warning about fec.
drivers/net/fec.c:929: warning: initialization from incompatible pointer type.

This is caused by wrongly define get_link callback return type to int.

Signed-off-by: Zeng Zhaoming &lt;b32542@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
kernel compilation with a warning about fec.
drivers/net/fec.c:929: warning: initialization from incompatible pointer type.

This is caused by wrongly define get_link callback return type to int.

Signed-off-by: Zeng Zhaoming &lt;b32542@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00143384 Fec: fix get wrong carrier status when ethx down</title>
<updated>2011-05-13T05:15:08+00:00</updated>
<author>
<name>Zeng Zhaoming</name>
<email>b32542@freescale.com</email>
</author>
<published>2011-05-11T00:39:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=05958821296c6066f16b63f109144fbafbd7b71b'/>
<id>05958821296c6066f16b63f109144fbafbd7b71b</id>
<content type='text'>
using ioctl() to get interface carrier status, when ethx down,
will get wrong status, accroding to linux net subsystem, this case
should return EINVAL since phy not start and no carrier status can
get.

Signed-off-by: Zeng Zhaoming &lt;b32542@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
using ioctl() to get interface carrier status, when ethx down,
will get wrong status, accroding to linux net subsystem, this case
should return EINVAL since phy not start and no carrier status can
get.

Signed-off-by: Zeng Zhaoming &lt;b32542@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: PPPoPNS and PPPoLAC fixes for android.</title>
<updated>2011-05-05T02:40:39+00:00</updated>
<author>
<name>Chia-chi Yeh</name>
<email>chiachi@android.com</email>
</author>
<published>2011-05-05T02:33:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=317aa4ef986a6dbd69cefdf8b0be1a3442b85853'/>
<id>317aa4ef986a6dbd69cefdf8b0be1a3442b85853</id>
<content type='text'>
* Fix a bitmask in PPPoPNS and rename constants in PPPoPNS and PPPoLAC.
* Fix a potential deadlock while releasing PPPoLAC/PPPoPNS socket.

PPP driver guarantees that no thread will be executing start_xmit() after
returning from ppp_unregister_channel(). To achieve this, a spinlock (downl)
is used. In pppolac_release(), ppp_unregister_channel() is called after sk_udp
is locked. At the same time, another thread might be running in pppolac_xmit()
with downl. Thus a deadlock will occur if the thread tries to lock sk_udp.
The same situation might happen on sk_raw in pppopns_release().

* Force PPPoLAC and PPPoPNS to bind an interface before creating PPP channel.

It is common to manipulate the routing table after configuring PPP device.
Since both PPPoLAC and PPPoPNS run over IP, care must be taken to make sure
that there is no loop in the routing table.
Although this can be done by adding a host route, it might still cause
problems when the interface is down for some reason.

To solve this, this patch forces both drivers to bind an interface before
creating PPP channel, so the system will not re-route the tunneling sockets
to another interface when the original one is down. Another benefit is that
now the host route is no longer required, so there is no need to remove it
when PPP channel is closed.

* Avoid sleep-inside-spinlock in PPPoLAC and PPPoPNS.

Since recv() and xmit() are called with a spinlock held, routines which might
sleep cannot be used. This issue is solved by following changes:

Incoming packets are now processed in backlog handler, recv_core(), instead of
recv(). Since backlog handler is always executed with socket spinlock held, the
requirement of ppp_input() is still satisfied.

Outgoing packets are now processed in workqueue handler, xmit_core(), instead of
xmit(). Note that kernel_sendmsg() is no longer used to prevent touching dead
sockets.

In release(), lock_sock() and pppox_unbind_sock() ensure that no thread is in
recv_core() or xmit(). Then socket handlers are restored before release_sock(),
so no packets will leak in backlog queue.

* Fix msg_iovlen in PPPoLAC and PPPoPNS.

Although any positive value should work (which is always true in both drivers),
the correct value should be 1.

Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix a bitmask in PPPoPNS and rename constants in PPPoPNS and PPPoLAC.
* Fix a potential deadlock while releasing PPPoLAC/PPPoPNS socket.

PPP driver guarantees that no thread will be executing start_xmit() after
returning from ppp_unregister_channel(). To achieve this, a spinlock (downl)
is used. In pppolac_release(), ppp_unregister_channel() is called after sk_udp
is locked. At the same time, another thread might be running in pppolac_xmit()
with downl. Thus a deadlock will occur if the thread tries to lock sk_udp.
The same situation might happen on sk_raw in pppopns_release().

* Force PPPoLAC and PPPoPNS to bind an interface before creating PPP channel.

It is common to manipulate the routing table after configuring PPP device.
Since both PPPoLAC and PPPoPNS run over IP, care must be taken to make sure
that there is no loop in the routing table.
Although this can be done by adding a host route, it might still cause
problems when the interface is down for some reason.

To solve this, this patch forces both drivers to bind an interface before
creating PPP channel, so the system will not re-route the tunneling sockets
to another interface when the original one is down. Another benefit is that
now the host route is no longer required, so there is no need to remove it
when PPP channel is closed.

* Avoid sleep-inside-spinlock in PPPoLAC and PPPoPNS.

Since recv() and xmit() are called with a spinlock held, routines which might
sleep cannot be used. This issue is solved by following changes:

Incoming packets are now processed in backlog handler, recv_core(), instead of
recv(). Since backlog handler is always executed with socket spinlock held, the
requirement of ppp_input() is still satisfied.

Outgoing packets are now processed in workqueue handler, xmit_core(), instead of
xmit(). Note that kernel_sendmsg() is no longer used to prevent touching dead
sockets.

In release(), lock_sock() and pppox_unbind_sock() ensure that no thread is in
recv_core() or xmit(). Then socket handlers are restored before release_sock(),
so no packets will leak in backlog queue.

* Fix msg_iovlen in PPPoLAC and PPPoPNS.

Although any positive value should work (which is always true in both drivers),
the correct value should be 1.

Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: add PPP on PPTP Network Server (PPPoPNS) driver for Android VPN.</title>
<updated>2011-05-05T02:32:12+00:00</updated>
<author>
<name>Chia-chi Yeh</name>
<email>chiachi@android.com</email>
</author>
<published>2011-05-05T02:31:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2d2ff03f2ec40f894fd3c8d4fe38f38eb59deab3'/>
<id>2d2ff03f2ec40f894fd3c8d4fe38f38eb59deab3</id>
<content type='text'>
Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: add PPP on L2TP Access Concentrator (PPPoLAC) driver for Android VPN.</title>
<updated>2011-05-05T02:30:39+00:00</updated>
<author>
<name>Chia-chi Yeh</name>
<email>chiachi@android.com</email>
</author>
<published>2011-05-05T02:29:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=761af18a07b370ee521ddb6f4bad67bcc3c598ff'/>
<id>761af18a07b370ee521ddb6f4bad67bcc3c598ff</id>
<content type='text'>
Change-Id: I3ae3ee7520951ae24269db0ef2898c6455cf6bcc
Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I3ae3ee7520951ae24269db0ef2898c6455cf6bcc
Signed-off-by: Chia-chi Yeh &lt;chiachi@android.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00141486-2 i.mx drivers: remove building warning message</title>
<updated>2011-04-27T11:48:07+00:00</updated>
<author>
<name>Lily Zhang</name>
<email>r58066@freescale.com</email>
</author>
<published>2011-04-13T06:28:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=224dbd2169f577525297f296e427392f0504036b'/>
<id>224dbd2169f577525297f296e427392f0504036b</id>
<content type='text'>
remove building warning message in i.mx drivers

Signed-off-by: Lily Zhang &lt;r58066@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
remove building warning message in i.mx drivers

Signed-off-by: Lily Zhang &lt;r58066@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00140550-2 [AR6003 WIFI]remove old wifi driver</title>
<updated>2011-03-15T09:07:22+00:00</updated>
<author>
<name>Tony Lin</name>
<email>tony.lin@freescale.com</email>
</author>
<published>2011-03-15T02:51:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b992c115b74faab9bc7d94373ea5b9e4fe9e98c5'/>
<id>b992c115b74faab9bc7d94373ea5b9e4fe9e98c5</id>
<content type='text'>
remove old wifi driver code from driver/net/wireless/ath6kl/

Signed-off-by: Tony Lin &lt;tony.lin@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
remove old wifi driver code from driver/net/wireless/ath6kl/

Signed-off-by: Tony Lin &lt;tony.lin@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00137224 L2Switch: Fix L2Switch port learn not take effect issue.</title>
<updated>2011-02-03T22:44:59+00:00</updated>
<author>
<name>Fan Zhicheng</name>
<email>r32736@freescale.com</email>
</author>
<published>2010-12-28T06:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=65da4da27e7efa756b5902362ad86432fb2e1915'/>
<id>65da4da27e7efa756b5902362ad86432fb2e1915</id>
<content type='text'>
Fix Mx28 L2Switch port learning not works issue.

Signed-off-by: Fan Zhicheng &lt;r32736@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix Mx28 L2Switch port learning not works issue.

Signed-off-by: Fan Zhicheng &lt;r32736@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00136942 FEC: Fix resume fec trigger transmit timeout</title>
<updated>2011-02-03T22:35:04+00:00</updated>
<author>
<name>Zeng Zhaoming</name>
<email>b32542@freescale.com</email>
</author>
<published>2010-12-14T03:43:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=09d00f73af70b8d08aede9d913f82f07f82b5d09'/>
<id>09d00f73af70b8d08aede9d913f82f07f82b5d09</id>
<content type='text'>
Set carrier flag to off when suspend,
to avoid kernel warning about sending timeout.

Reported-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Tested-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Zeng Zhaoming &lt;b32542@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set carrier flag to off when suspend,
to avoid kernel warning about sending timeout.

Reported-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Tested-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Zeng Zhaoming &lt;b32542@freescale.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
