<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/mac80211/key.c, branch v3.1</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>mac80211: let key iteration get keys in install order</title>
<updated>2011-07-15T17:38:33+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-07-13T17:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f850e00fcd7767d01101e2f0a6d464bee8e48b47'/>
<id>f850e00fcd7767d01101e2f0a6d464bee8e48b47</id>
<content type='text'>
ieee80211_iter_keys() currently returns keys in
the backward order they were installed in, which
is a bit confusing. Add them to the tail of the
key list to make sure iterations go in the same
order that keys were originally installed in.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ieee80211_iter_keys() currently returns keys in
the backward order they were installed in, which
is a bit confusing. Add them to the tail of the
key list to make sure iterations go in the same
order that keys were originally installed in.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: allow drivers to access key sequence counter</title>
<updated>2011-07-08T15:42:22+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-07-07T16:58:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3ea542d3c2862142ae511fac5ce2dfc7419dcc53'/>
<id>3ea542d3c2862142ae511fac5ce2dfc7419dcc53</id>
<content type='text'>
In order to implement GTK rekeying, the device needs
to be able to encrypt frames with the right PN/IV and
check the PN/IV in RX frames. To be able to tell it
about all those counters, we need to be able to get
them from mac80211, this adds the required API.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to implement GTK rekeying, the device needs
to be able to encrypt frames with the right PN/IV and
check the PN/IV in RX frames. To be able to tell it
about all those counters, we need to be able to get
them from mac80211, this adds the required API.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix TKIP races, make API easier to use</title>
<updated>2011-07-08T15:11:19+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-07-07T20:28:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=523b02ea23b175dd3e46e3daf1bc9354376640a3'/>
<id>523b02ea23b175dd3e46e3daf1bc9354376640a3</id>
<content type='text'>
Our current TKIP code races against itself on TX
since we can process multiple packets at the same
time on different ACs, but they all share the TX
context for TKIP. This can lead to bad IVs etc.

Also, the crypto offload helper code just obtains
the P1K/P2K from the cache, and can update it as
well, but there's no guarantee that packets are
really processed in order.

To fix these issues, first introduce a spinlock
that will protect the IV16/IV32 values in the TX
context. This first step makes sure that we don't
assign the same IV multiple times or get confused
in other ways.

Secondly, change the way the P1K cache works. I
add a field "p1k_iv32" that stores the value of
the IV32 when the P1K was last recomputed, and
if different from the last time, then a new P1K
is recomputed. This can cause the P1K computation
to flip back and forth if packets are processed
out of order. All this also happens under the new
spinlock.

Finally, because there are argument differences,
split up the ieee80211_get_tkip_key() API into
ieee80211_get_tkip_p1k() and ieee80211_get_tkip_p2k()
and give them the correct arguments.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our current TKIP code races against itself on TX
since we can process multiple packets at the same
time on different ACs, but they all share the TX
context for TKIP. This can lead to bad IVs etc.

Also, the crypto offload helper code just obtains
the P1K/P2K from the cache, and can update it as
well, but there's no guarantee that packets are
really processed in order.

To fix these issues, first introduce a spinlock
that will protect the IV16/IV32 values in the TX
context. This first step makes sure that we don't
assign the same IV multiple times or get confused
in other ways.

Secondly, change the way the P1K cache works. I
add a field "p1k_iv32" that stores the value of
the IV32 when the P1K was last recomputed, and
if different from the last time, then a new P1K
is recomputed. This can cause the P1K computation
to flip back and forth if packets are processed
out of order. All this also happens under the new
spinlock.

Finally, because there are argument differences,
split up the ieee80211_get_tkip_key() API into
ieee80211_get_tkip_p1k() and ieee80211_get_tkip_p2k()
and give them the correct arguments.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: support GTK rekey offload</title>
<updated>2011-07-06T19:05:43+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-07-05T14:35:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c68f4b892c241bdddeb6f1c1864ac26197229471'/>
<id>c68f4b892c241bdddeb6f1c1864ac26197229471</id>
<content type='text'>
This adds the necessary mac80211 APIs to support
GTK rekey offload, mirroring the functionality
from cfg80211.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the necessary mac80211 APIs to support
GTK rekey offload, mirroring the functionality
from cfg80211.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: allow driver to iterate keys</title>
<updated>2011-07-06T19:05:41+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-07-05T14:35:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=830af02f24fbc087999b757b8eca51829c67fa6f'/>
<id>830af02f24fbc087999b757b8eca51829c67fa6f</id>
<content type='text'>
When in suspend/wowlan, devices might implement crypto
offload differently (more features), and might require
reprogramming keys for the WoWLAN (as it is the case
for Intel devices that use another uCode image). Thus
allow the driver to iterate all keys in this context.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When in suspend/wowlan, devices might implement crypto
offload differently (more features), and might require
reprogramming keys for the WoWLAN (as it is the case
for Intel devices that use another uCode image). Thus
allow the driver to iterate all keys in this context.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: Skip tailroom reservation for full HW-crypto devices with race fix</title>
<updated>2011-07-05T19:26:50+00:00</updated>
<author>
<name>Yogesh Ashok Powar</name>
<email>yogeshp@marvell.com</email>
</author>
<published>2011-06-28T13:11:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3bff1865186c6bb97855f0c13e3850543dce9cef'/>
<id>3bff1865186c6bb97855f0c13e3850543dce9cef</id>
<content type='text'>
Based on inputs from Johannes Berg &lt;johannes@sipsolutions.net&gt;
from http://article.gmane.org/gmane.linux.kernel.wireless.general/68193
and http://article.gmane.org/gmane.linux.kernel.wireless.general/71702

In xmit path, devices that do full hardware crypto (including
MMIC and ICV) need no tailroom. For such devices, tailroom
reservation can be skipped if all the keys are programmed into
the hardware (i.e software crypto is not used for any of the
keys) and none of the keys wants software to generate Michael
MIC and IV.

v2: Added check for IV along with MMIC.
Reported-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Tested-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Signed-off-by: Mohammed Shafi Shajakhan &lt;mshajakhan@atheros.com&gt;
Cc: Mohammed Shafi Shajakhan &lt;mshajakhan@atheros.com&gt;

v3: Fixing races to avoid WARNING: at net/mac80211/wpa.c:397
    ccmp_encrypt_skb+0xc4/0x1f0
Reported-by: Andreas Hartmann &lt;andihartmann@01019freenet.de&gt;
Tested-by: Andreas Hartmann &lt;andihartmann@01019freenet.de&gt;

v4: Added links with message ID

Signed-off-by: Yogesh Ashok Powar &lt;yogeshp@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on inputs from Johannes Berg &lt;johannes@sipsolutions.net&gt;
from http://article.gmane.org/gmane.linux.kernel.wireless.general/68193
and http://article.gmane.org/gmane.linux.kernel.wireless.general/71702

In xmit path, devices that do full hardware crypto (including
MMIC and ICV) need no tailroom. For such devices, tailroom
reservation can be skipped if all the keys are programmed into
the hardware (i.e software crypto is not used for any of the
keys) and none of the keys wants software to generate Michael
MIC and IV.

v2: Added check for IV along with MMIC.
Reported-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Tested-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Signed-off-by: Mohammed Shafi Shajakhan &lt;mshajakhan@atheros.com&gt;
Cc: Mohammed Shafi Shajakhan &lt;mshajakhan@atheros.com&gt;

v3: Fixing races to avoid WARNING: at net/mac80211/wpa.c:397
    ccmp_encrypt_skb+0xc4/0x1f0
Reported-by: Andreas Hartmann &lt;andihartmann@01019freenet.de&gt;
Tested-by: Andreas Hartmann &lt;andihartmann@01019freenet.de&gt;

v4: Added links with message ID

Signed-off-by: Yogesh Ashok Powar &lt;yogeshp@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "mac80211: Skip tailroom reservation for full HW-crypto devices"</title>
<updated>2011-06-06T19:23:53+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-06-06T18:35:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ab6a44ce1da48d35fe7ec95fa068aa617bd7e8dd'/>
<id>ab6a44ce1da48d35fe7ec95fa068aa617bd7e8dd</id>
<content type='text'>
This reverts commit aac6af5534fade2b18682a0b9efad1a6c04c34c6.

Conflicts:

	net/mac80211/key.c

That commit has a race that causes a warning, as documented in the thread
here:

	http://marc.info/?l=linux-wireless&amp;m=130717684914101&amp;w=2

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit aac6af5534fade2b18682a0b9efad1a6c04c34c6.

Conflicts:

	net/mac80211/key.c

That commit has a race that causes a warning, as documented in the thread
here:

	http://marc.info/?l=linux-wireless&amp;m=130717684914101&amp;w=2

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: sparse RCU annotations</title>
<updated>2011-05-16T18:10:41+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-05-13T12:15:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=40b275b69ee660274b77fb612b0db31fd282fc3f'/>
<id>40b275b69ee660274b77fb612b0db31fd282fc3f</id>
<content type='text'>
This adds sparse RCU annotations to most of
mac80211, only the mesh code remains to be
done.

Due the the previous patches, the annotations
are pretty simple. The only thing that this
actually changes is removing the RCU usage of
key-&gt;sta in debugfs since this pointer isn't
actually an RCU-managed pointer (it only has
a single assignment done before the key even
goes live). As that is otherwise harmless, I
decided to make it part of this patch.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds sparse RCU annotations to most of
mac80211, only the mesh code remains to be
done.

Due the the previous patches, the annotations
are pretty simple. The only thing that this
actually changes is removing the RCU usage of
key-&gt;sta in debugfs since this pointer isn't
actually an RCU-managed pointer (it only has
a single assignment done before the key even
goes live). As that is otherwise harmless, I
decided to make it part of this patch.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: make key locking clearer</title>
<updated>2011-05-12T18:10:53+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-05-12T12:31:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5c0c36412b2dc6b1e243c7e9115306fe286583b7'/>
<id>5c0c36412b2dc6b1e243c7e9115306fe286583b7</id>
<content type='text'>
The code in ieee80211_del_key() doesn't acquire the
key_mtx properly when it dereferences the keys. It
turns out that isn't actually necessary since the
key_mtx itself seems to be redundant since all key
manipulations are done under the RTNL, but as long
as we have the key_mtx we should use it the right
way too.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code in ieee80211_del_key() doesn't acquire the
key_mtx properly when it dereferences the keys. It
turns out that isn't actually necessary since the
key_mtx itself seems to be redundant since all key
manipulations are done under the RTNL, but as long
as we have the key_mtx we should use it the right
way too.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: Fix a warning due to skipping tailroom reservation for IV</title>
<updated>2011-05-05T14:57:23+00:00</updated>
<author>
<name>Mohammed Shafi Shajakhan</name>
<email>mshajakhan@atheros.com</email>
</author>
<published>2011-05-05T05:29:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=eaef6a93bd52a2cc47b9fce201310010707afdb4'/>
<id>eaef6a93bd52a2cc47b9fce201310010707afdb4</id>
<content type='text'>
The devices that require IV generation in software need tailroom
reservation  for ICVs used in TKIP or WEP encryptions.
Currently, decision to skip the tailroom reservation in the tx
path was taken only on whether driver wants MMIC to be generated
in software or not. Following patch appends IV generation check for
such decisions and fixes the following warning.

WARNING: at net/mac80211/wep.c:101 ieee80211_wep_add_iv+0x56/0xf3()
Hardware name: 64756D6
Modules linked in: ath9k ath9k_common ath9k_hw
Pid: 0, comm: swapper Tainted: G        W   2.6.39-rc5-wl
 Call Trace:
[&lt;c102fd29&gt;] warn_slowpath_common+0x65/0x7a
[&lt;c1465c4e&gt;] ? ieee80211_wep_add_iv+0x56/0xf3
[&lt;c102fd4d&gt;] warn_slowpath_null+0xf/0x13
[&lt;c1465c4e&gt;] ieee80211_wep_add_iv+0x56/0xf3
[&lt;c1466007&gt;] ieee80211_crypto_wep_encrypt+0x63/0x88
[&lt;c1478bf3&gt;] ieee80211_tx_h_encrypt+0x2f/0x63
[&lt;c1478cba&gt;] invoke_tx_handlers+0x93/0xe1
[&lt;c1478eda&gt;] ieee80211_tx+0x4b/0x6d
[&lt;c147907c&gt;] ieee80211_xmit+0x180/0x188
[&lt;c147779d&gt;] ? ieee80211_skb_resize+0x95/0xd9
[&lt;c1479edf&gt;] ieee80211_subif_start_xmit+0x64f/0x668
[&lt;c13956fc&gt;] dev_hard_start_xmit+0x368/0x48c
[&lt;c13a8bd6&gt;] sch_direct_xmit+0x4d/0x101
[&lt;c1395ae1&gt;] dev_queue_xmit+0x2c1/0x43f
[&lt;c13a74a2&gt;] ? eth_header+0x1e/0x90
[&lt;c13a7400&gt;] ? eth_type_trans+0x91/0xc2
[&lt;c13a7484&gt;] ? eth_rebuild_header+0x53/0x53
[&lt;c139f079&gt;] neigh_resolve_output+0x223/0x27e
[&lt;c13c6b23&gt;] ip_finish_output2+0x1d4/0x1fe
[&lt;c13c6bc6&gt;] ip_finish_output+0x79/0x7d
[&lt;c13c6cbe&gt;] T.1075+0x43/0x48
[&lt;c13c6e6e&gt;] ip_output+0x75/0x7b
[&lt;c13c4970&gt;] dst_output+0xc/0xe
[&lt;c13c62c9&gt;] ip_local_out+0x17/0x1a
[&lt;c13c67bb&gt;] ip_queue_xmit+0x2aa/0x2f8
[&lt;c138b742&gt;] ? sk_setup_caps+0x21/0x92
[&lt;c13d95ea&gt;] ? __tcp_v4_send_check+0x7e/0xb7
[&lt;c13d5d2e&gt;] tcp_transmit_skb+0x6a1/0x6d7
[&lt;c13d533b&gt;] ? tcp_established_options+0x20/0x8b
[&lt;c13d6f28&gt;] tcp_retransmit_skb+0x43a/0x527
[&lt;c13d8d6d&gt;] tcp_retransmit_timer+0x32e/0x45d
[&lt;c13d8f23&gt;] tcp_write_timer+0x87/0x16c
[&lt;c103a030&gt;] run_timer_softirq+0x156/0x1f9
[&lt;c13d8e9c&gt;] ? tcp_retransmit_timer+0x45d/0x45d
[&lt;c1034d65&gt;] __do_softirq+0x97/0x14a
[&lt;c1034cce&gt;] ? irq_enter+0x4d/0x4d

Cc: Yogesh Powar &lt;yogeshp@marvell.com&gt;
Reported-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Tested-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Signed-off-by: Mohammed Shafi Shajakhan &lt;mshajakhan@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The devices that require IV generation in software need tailroom
reservation  for ICVs used in TKIP or WEP encryptions.
Currently, decision to skip the tailroom reservation in the tx
path was taken only on whether driver wants MMIC to be generated
in software or not. Following patch appends IV generation check for
such decisions and fixes the following warning.

WARNING: at net/mac80211/wep.c:101 ieee80211_wep_add_iv+0x56/0xf3()
Hardware name: 64756D6
Modules linked in: ath9k ath9k_common ath9k_hw
Pid: 0, comm: swapper Tainted: G        W   2.6.39-rc5-wl
 Call Trace:
[&lt;c102fd29&gt;] warn_slowpath_common+0x65/0x7a
[&lt;c1465c4e&gt;] ? ieee80211_wep_add_iv+0x56/0xf3
[&lt;c102fd4d&gt;] warn_slowpath_null+0xf/0x13
[&lt;c1465c4e&gt;] ieee80211_wep_add_iv+0x56/0xf3
[&lt;c1466007&gt;] ieee80211_crypto_wep_encrypt+0x63/0x88
[&lt;c1478bf3&gt;] ieee80211_tx_h_encrypt+0x2f/0x63
[&lt;c1478cba&gt;] invoke_tx_handlers+0x93/0xe1
[&lt;c1478eda&gt;] ieee80211_tx+0x4b/0x6d
[&lt;c147907c&gt;] ieee80211_xmit+0x180/0x188
[&lt;c147779d&gt;] ? ieee80211_skb_resize+0x95/0xd9
[&lt;c1479edf&gt;] ieee80211_subif_start_xmit+0x64f/0x668
[&lt;c13956fc&gt;] dev_hard_start_xmit+0x368/0x48c
[&lt;c13a8bd6&gt;] sch_direct_xmit+0x4d/0x101
[&lt;c1395ae1&gt;] dev_queue_xmit+0x2c1/0x43f
[&lt;c13a74a2&gt;] ? eth_header+0x1e/0x90
[&lt;c13a7400&gt;] ? eth_type_trans+0x91/0xc2
[&lt;c13a7484&gt;] ? eth_rebuild_header+0x53/0x53
[&lt;c139f079&gt;] neigh_resolve_output+0x223/0x27e
[&lt;c13c6b23&gt;] ip_finish_output2+0x1d4/0x1fe
[&lt;c13c6bc6&gt;] ip_finish_output+0x79/0x7d
[&lt;c13c6cbe&gt;] T.1075+0x43/0x48
[&lt;c13c6e6e&gt;] ip_output+0x75/0x7b
[&lt;c13c4970&gt;] dst_output+0xc/0xe
[&lt;c13c62c9&gt;] ip_local_out+0x17/0x1a
[&lt;c13c67bb&gt;] ip_queue_xmit+0x2aa/0x2f8
[&lt;c138b742&gt;] ? sk_setup_caps+0x21/0x92
[&lt;c13d95ea&gt;] ? __tcp_v4_send_check+0x7e/0xb7
[&lt;c13d5d2e&gt;] tcp_transmit_skb+0x6a1/0x6d7
[&lt;c13d533b&gt;] ? tcp_established_options+0x20/0x8b
[&lt;c13d6f28&gt;] tcp_retransmit_skb+0x43a/0x527
[&lt;c13d8d6d&gt;] tcp_retransmit_timer+0x32e/0x45d
[&lt;c13d8f23&gt;] tcp_write_timer+0x87/0x16c
[&lt;c103a030&gt;] run_timer_softirq+0x156/0x1f9
[&lt;c13d8e9c&gt;] ? tcp_retransmit_timer+0x45d/0x45d
[&lt;c1034d65&gt;] __do_softirq+0x97/0x14a
[&lt;c1034cce&gt;] ? irq_enter+0x4d/0x4d

Cc: Yogesh Powar &lt;yogeshp@marvell.com&gt;
Reported-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Tested-by: Fabio Rossi &lt;rossi.f@inwind.it&gt;
Signed-off-by: Mohammed Shafi Shajakhan &lt;mshajakhan@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
