<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch v2.6.16.61</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>[CASSINI]: Set skb-&gt;truesize properly on receive packets.</title>
<updated>2008-01-20T20:02:20+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-01-20T20:02:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fdd75e9bc2cb0a54bd435645dc7e8522b1c6a945'/>
<id>fdd75e9bc2cb0a54bd435645dc7e8522b1c6a945</id>
<content type='text'>
[ Upstream commit: d011a231675b240157a3c335dd53e9b849d7d30d ]

skb-&gt;truesize was not being incremented at all to
reflect the page based data added to RX SKBs.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit: d011a231675b240157a3c335dd53e9b849d7d30d ]

skb-&gt;truesize was not being incremented at all to
reflect the page based data added to RX SKBs.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[CASSINI]: Fix endianness bug.</title>
<updated>2008-01-20T20:00:26+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2008-01-20T20:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cffb92d239bd8a236fea210f09a791aae222a50a'/>
<id>cffb92d239bd8a236fea210f09a791aae222a50a</id>
<content type='text'>
[ Upstream commit: e5e025401f6e926c1d9dc3f3f2813cf98a2d8708 ]

Here's proposed fix for RX checksum handling in cassini; it affects
little-endian working with half-duplex gigabit, but obviously needs
testing on big-endian too.

The problem is, we need to convert checksum to fixed-endian *before*
correcting for (unstripped) FCS.  On big-endian it won't matter
(conversion is no-op), on little-endian it will, but only if FCS is
not stripped by hardware; i.e. in half-duplex gigabit mode when
-&gt;crc_size is set.

cassini.c part is that fix, cassini.h one consists of trivial
endianness annotations.  With that applied the sucker is endian-clean,
according to sparse.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit: e5e025401f6e926c1d9dc3f3f2813cf98a2d8708 ]

Here's proposed fix for RX checksum handling in cassini; it affects
little-endian working with half-duplex gigabit, but obviously needs
testing on big-endian too.

The problem is, we need to convert checksum to fixed-endian *before*
correcting for (unstripped) FCS.  On big-endian it won't matter
(conversion is no-op), on little-endian it will, but only if FCS is
not stripped by hardware; i.e. in half-duplex gigabit mode when
-&gt;crc_size is set.

cassini.c part is that fix, cassini.h one consists of trivial
endianness annotations.  With that applied the sucker is endian-clean,
according to sparse.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PPPOE: fix memory leak (local DoS) (CVE-2007-2525)</title>
<updated>2007-11-13T10:12:46+00:00</updated>
<author>
<name>Florian Zumbiehl</name>
<email>florz@florz.de</email>
</author>
<published>2007-11-13T10:12:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=624e4ff675005168e71d297185f4b75dbdf650af'/>
<id>624e4ff675005168e71d297185f4b75dbdf650af</id>
<content type='text'>
This patch fixes a memory leak when a PPPoE socket is release()d after
it has been connect()ed, but before the PPPIOCGCHAN ioctl ever has been
called on it.

This is somewhat of a security problem, too, since PPPoE sockets can be
created by any user, so any user can easily allocate all the machine's
RAM to non-swappable address space and thus DoS the system.

Is there any specific reason for PPPoE sockets being available to any
unprivileged process, BTW? After all, you need a packet socket for the
discovery stage anyway, so it's unlikely that any unprivileged process
will ever need to create a PPPoE socket, no? Allocating all session IDs
for a known AC is a kind of DoS, too, after all - with Juniper ERXes,
this is really easy, actually, since they don't ever assign session ids
above 8000 ...

Signed-off-by: Florian Zumbiehl &lt;florz@florz.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a memory leak when a PPPoE socket is release()d after
it has been connect()ed, but before the PPPIOCGCHAN ioctl ever has been
called on it.

This is somewhat of a security problem, too, since PPPoE sockets can be
created by any user, so any user can easily allocate all the machine's
RAM to non-swappable address space and thus DoS the system.

Is there any specific reason for PPPoE sockets being available to any
unprivileged process, BTW? After all, you need a packet socket for the
discovery stage anyway, so it's unlikely that any unprivileged process
will ever need to create a PPPoE socket, no? Allocating all session IDs
for a known AC is a kind of DoS, too, after all - with Juniper ERXes,
this is really easy, actually, since they don't ever assign session ids
above 8000 ...

Signed-off-by: Florian Zumbiehl &lt;florz@florz.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PPP_MPPE]: Don't put InterimKey on the stack</title>
<updated>2007-11-13T06:48:46+00:00</updated>
<author>
<name>Michal Schmidt</name>
<email>mschmidt@redhat.com</email>
</author>
<published>2007-11-13T06:48:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6833f471eca59e676aa103001c82eb027e74ac7c'/>
<id>6833f471eca59e676aa103001c82eb027e74ac7c</id>
<content type='text'>
ppp_mppe puts a crypto key on the kernel stack, then passes the
address of that into the crypto layer.  That doesn't work because the
crypto layer needs to be able to do virt_to_*() on the address which
does not universally work for the kernel stack on all platforms.

Adrian Bunk:
Backported to 2.6.16.

Signed-off-by: Michal Schmidt &lt;mschmidt@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ppp_mppe puts a crypto key on the kernel stack, then passes the
address of that into the crypto layer.  That doesn't work because the
crypto layer needs to be able to do virt_to_*() on the address which
does not universally work for the kernel stack on all platforms.

Adrian Bunk:
Backported to 2.6.16.

Signed-off-by: Michal Schmidt &lt;mschmidt@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PPP]: Fix output buffer size in ppp_decompress_frame().</title>
<updated>2007-09-24T21:02:46+00:00</updated>
<author>
<name>Konstantin Sharlaimov</name>
<email>konstantin.sharlaimov@gmail.com</email>
</author>
<published>2007-08-30T04:17:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=725ad2a8f1358bff885414f5e91d253c99921ddc'/>
<id>725ad2a8f1358bff885414f5e91d253c99921ddc</id>
<content type='text'>
This patch addresses the issue with "osize too small" errors in mppe
encryption.  The patch fixes the issue with wrong output buffer size
being passed to ppp decompression routine.

--------------------
As pointed out by Suresh Mahalingam, the issue addressed by
ppp-fix-osize-too-small-errors-when-decoding patch is not fully resolved yet.
The size of allocated output buffer is correct, however it size passed to
ppp-&gt;rcomp-&gt;decompress in ppp_generic.c if wrong. The patch fixes that.
--------------------

Signed-off-by: Konstantin Sharlaimov &lt;konstantin.sharlaimov@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch addresses the issue with "osize too small" errors in mppe
encryption.  The patch fixes the issue with wrong output buffer size
being passed to ppp decompression routine.

--------------------
As pointed out by Suresh Mahalingam, the issue addressed by
ppp-fix-osize-too-small-errors-when-decoding patch is not fully resolved yet.
The size of allocated output buffer is correct, however it size passed to
ppp-&gt;rcomp-&gt;decompress in ppp_generic.c if wrong. The patch fixes that.
--------------------

Signed-off-by: Konstantin Sharlaimov &lt;konstantin.sharlaimov@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PPP]: Fix osize too small errors when decoding mppe.</title>
<updated>2007-09-24T21:01:54+00:00</updated>
<author>
<name>Konstantin Sharlaimov</name>
<email>konstantin.sharlaimov@gmail.com</email>
</author>
<published>2007-09-24T21:01:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=44315cc76567e2d911d56091665637e305af182d'/>
<id>44315cc76567e2d911d56091665637e305af182d</id>
<content type='text'>
The mppe_decompress() function required a buffer that is 1 byte too
small when receiving a message of mru size. This fixes buffer
allocation to prevent this from occurring.

Signed-off-by: Konstantin Sharlaimov &lt;konstantin.sharlaimov@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The mppe_decompress() function required a buffer that is 1 byte too
small when receiving a message of mru size. This fixes buffer
allocation to prevent this from occurring.

Signed-off-by: Konstantin Sharlaimov &lt;konstantin.sharlaimov@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>8139too.c: fix netpoll deadlock</title>
<updated>2007-07-22T16:03:53+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2007-07-22T16:03:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8b9320927b5a4f7b506609d8c0aded13550e42a7'/>
<id>8b9320927b5a4f7b506609d8c0aded13550e42a7</id>
<content type='text'>
fix deadlock in the 8139too driver: poll handlers should never forcibly
enable local interrupts, because they might be used by netpoll/printk
from IRQ context.

  =================================
  [ INFO: inconsistent lock state ]
  2.6.19 #11
  ---------------------------------
  inconsistent {softirq-on-W} -&gt; {in-softirq-W} usage.
  swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
   (&amp;npinfo-&gt;poll_lock){-+..}, at: [&lt;c0350a41&gt;] net_rx_action+0x64/0x1de
  {softirq-on-W} state was registered at:
    [&lt;c0134c86&gt;] mark_lock+0x5b/0x39c
    [&lt;c0135012&gt;] mark_held_locks+0x4b/0x68
    [&lt;c01351e9&gt;] trace_hardirqs_on+0x115/0x139
    [&lt;c02879e6&gt;] rtl8139_poll+0x3d7/0x3f4
    [&lt;c035c85d&gt;] netpoll_poll+0x82/0x32f
    [&lt;c035c775&gt;] netpoll_send_skb+0xc9/0x12f
    [&lt;c035cdcc&gt;] netpoll_send_udp+0x253/0x25b
    [&lt;c0288463&gt;] write_msg+0x40/0x65
    [&lt;c011cead&gt;] __call_console_drivers+0x45/0x51
    [&lt;c011cf16&gt;] _call_console_drivers+0x5d/0x61
    [&lt;c011d4fb&gt;] release_console_sem+0x11f/0x1d8
    [&lt;c011d7d7&gt;] register_console+0x1ac/0x1b3
    [&lt;c02883f8&gt;] init_netconsole+0x55/0x67
    [&lt;c010040c&gt;] init+0x9a/0x24e
    [&lt;c01049cf&gt;] kernel_thread_helper+0x7/0x10
    [&lt;ffffffff&gt;] 0xffffffff
  irq event stamp: 819992
  hardirqs last  enabled at (819992): [&lt;c0350a16&gt;] net_rx_action+0x39/0x1de
  hardirqs last disabled at (819991): [&lt;c0350b1e&gt;] net_rx_action+0x141/0x1de
  softirqs last  enabled at (817552): [&lt;c01214e4&gt;] __do_softirq+0xa3/0xa8
  softirqs last disabled at (819987): [&lt;c0106051&gt;] do_softirq+0x5b/0xc9

  other info that might help us debug this:
  no locks held by swapper/1.

  stack backtrace:
   [&lt;c0104d88&gt;] dump_trace+0x63/0x1e8
   [&lt;c0104f26&gt;] show_trace_log_lvl+0x19/0x2e
   [&lt;c010532d&gt;] show_trace+0x12/0x14
   [&lt;c0105343&gt;] dump_stack+0x14/0x16
   [&lt;c0134980&gt;] print_usage_bug+0x23c/0x246
   [&lt;c0134d33&gt;] mark_lock+0x108/0x39c
   [&lt;c01356a7&gt;] __lock_acquire+0x361/0x9ed
   [&lt;c0136018&gt;] lock_acquire+0x56/0x72
   [&lt;c03aff1f&gt;] _spin_lock+0x35/0x42
   [&lt;c0350a41&gt;] net_rx_action+0x64/0x1de
   [&lt;c0121493&gt;] __do_softirq+0x52/0xa8
   [&lt;c0106051&gt;] do_softirq+0x5b/0xc9
   [&lt;c0121338&gt;] irq_exit+0x3c/0x48
   [&lt;c0106163&gt;] do_IRQ+0xa4/0xbd
   [&lt;c01047c6&gt;] common_interrupt+0x2e/0x34
   [&lt;c011db92&gt;] vprintk+0x2c0/0x309
   [&lt;c011dbf6&gt;] printk+0x1b/0x1d
   [&lt;c01003f2&gt;] init+0x80/0x24e
   [&lt;c01049cf&gt;] kernel_thread_helper+0x7/0x10
   =======================

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fix deadlock in the 8139too driver: poll handlers should never forcibly
enable local interrupts, because they might be used by netpoll/printk
from IRQ context.

  =================================
  [ INFO: inconsistent lock state ]
  2.6.19 #11
  ---------------------------------
  inconsistent {softirq-on-W} -&gt; {in-softirq-W} usage.
  swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
   (&amp;npinfo-&gt;poll_lock){-+..}, at: [&lt;c0350a41&gt;] net_rx_action+0x64/0x1de
  {softirq-on-W} state was registered at:
    [&lt;c0134c86&gt;] mark_lock+0x5b/0x39c
    [&lt;c0135012&gt;] mark_held_locks+0x4b/0x68
    [&lt;c01351e9&gt;] trace_hardirqs_on+0x115/0x139
    [&lt;c02879e6&gt;] rtl8139_poll+0x3d7/0x3f4
    [&lt;c035c85d&gt;] netpoll_poll+0x82/0x32f
    [&lt;c035c775&gt;] netpoll_send_skb+0xc9/0x12f
    [&lt;c035cdcc&gt;] netpoll_send_udp+0x253/0x25b
    [&lt;c0288463&gt;] write_msg+0x40/0x65
    [&lt;c011cead&gt;] __call_console_drivers+0x45/0x51
    [&lt;c011cf16&gt;] _call_console_drivers+0x5d/0x61
    [&lt;c011d4fb&gt;] release_console_sem+0x11f/0x1d8
    [&lt;c011d7d7&gt;] register_console+0x1ac/0x1b3
    [&lt;c02883f8&gt;] init_netconsole+0x55/0x67
    [&lt;c010040c&gt;] init+0x9a/0x24e
    [&lt;c01049cf&gt;] kernel_thread_helper+0x7/0x10
    [&lt;ffffffff&gt;] 0xffffffff
  irq event stamp: 819992
  hardirqs last  enabled at (819992): [&lt;c0350a16&gt;] net_rx_action+0x39/0x1de
  hardirqs last disabled at (819991): [&lt;c0350b1e&gt;] net_rx_action+0x141/0x1de
  softirqs last  enabled at (817552): [&lt;c01214e4&gt;] __do_softirq+0xa3/0xa8
  softirqs last disabled at (819987): [&lt;c0106051&gt;] do_softirq+0x5b/0xc9

  other info that might help us debug this:
  no locks held by swapper/1.

  stack backtrace:
   [&lt;c0104d88&gt;] dump_trace+0x63/0x1e8
   [&lt;c0104f26&gt;] show_trace_log_lvl+0x19/0x2e
   [&lt;c010532d&gt;] show_trace+0x12/0x14
   [&lt;c0105343&gt;] dump_stack+0x14/0x16
   [&lt;c0134980&gt;] print_usage_bug+0x23c/0x246
   [&lt;c0134d33&gt;] mark_lock+0x108/0x39c
   [&lt;c01356a7&gt;] __lock_acquire+0x361/0x9ed
   [&lt;c0136018&gt;] lock_acquire+0x56/0x72
   [&lt;c03aff1f&gt;] _spin_lock+0x35/0x42
   [&lt;c0350a41&gt;] net_rx_action+0x64/0x1de
   [&lt;c0121493&gt;] __do_softirq+0x52/0xa8
   [&lt;c0106051&gt;] do_softirq+0x5b/0xc9
   [&lt;c0121338&gt;] irq_exit+0x3c/0x48
   [&lt;c0106163&gt;] do_IRQ+0xa4/0xbd
   [&lt;c01047c6&gt;] common_interrupt+0x2e/0x34
   [&lt;c011db92&gt;] vprintk+0x2c0/0x309
   [&lt;c011dbf6&gt;] printk+0x1b/0x1d
   [&lt;c01003f2&gt;] init+0x80/0x24e
   [&lt;c01049cf&gt;] kernel_thread_helper+0x7/0x10
   =======================

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NETPOLL]: Remove CONFIG_NETPOLL_RX</title>
<updated>2007-05-22T22:43:37+00:00</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2007-05-22T22:43:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=00fd81fe55fbf464a952a43fd4dc3248601a5f87'/>
<id>00fd81fe55fbf464a952a43fd4dc3248601a5f87</id>
<content type='text'>
Get rid of the CONFIG_NETPOLL_RX option completely since all the
dependencies have been removed long ago...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Acked-by: Jeff Garzik &lt;jgarzik@pobox.com&gt;
Acked-by: Matt Mackall &lt;mpm@selenic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Get rid of the CONFIG_NETPOLL_RX option completely since all the
dependencies have been removed long ago...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Acked-by: Jeff Garzik &lt;jgarzik@pobox.com&gt;
Acked-by: Matt Mackall &lt;mpm@selenic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sky2: turn on clocks when doing resume</title>
<updated>2007-04-13T20:58:24+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@linux-foundation.org</email>
</author>
<published>2007-04-13T18:34:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d9b258c4bcf11ec912d95c8e61d7453b07f28c63'/>
<id>d9b258c4bcf11ec912d95c8e61d7453b07f28c63</id>
<content type='text'>
Some of these chips are disabled until clock is enabled.
This fixes:
     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=404107

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some of these chips are disabled until clock is enabled.
This fixes:
     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=404107

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sky2: turn carrier off when down</title>
<updated>2007-04-13T20:58:23+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@linux-foundation.org</email>
</author>
<published>2007-04-13T18:32:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e3bfdc5b2a5a2f4429e2bcd9123a39a361c18662'/>
<id>e3bfdc5b2a5a2f4429e2bcd9123a39a361c18662</id>
<content type='text'>
Driver needs to turn off carrier when down.

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Driver needs to turn off carrier when down.

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
