<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/tx.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-02-17T23:13:52Z</updated>
<entry>
<title>mac80211: fix initialization of skb-&gt;cb in ieee80211_subif_start_xmit</title>
<updated>2011-02-17T23:13:52Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2010-12-18T18:30:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0cac77b3e9419631f66067228b71628d8945cfd'/>
<id>urn:sha1:a0cac77b3e9419631f66067228b71628d8945cfd</id>
<content type='text'>
commit 489ee9195a7de9e6bc833d639ff6b553ffdad90e upstream.

The change 'mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs'
added a check for copying the skb if it's shared, however the tx info variable
still points at the cb of the old skb

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Acked-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: fix a crash in ieee80211_beacon_get_tim on change_interface</title>
<updated>2011-02-17T23:13:51Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2011-01-24T18:28:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=04e0f5f7ed4fe711325d4d62b80f1f2031db9614'/>
<id>urn:sha1:04e0f5f7ed4fe711325d4d62b80f1f2031db9614</id>
<content type='text'>
commit eb3e554b4b3a56386ef5214dbe0e3935a350178b upstream.

Some drivers (e.g. ath9k) do not always disable beacons when they're
supposed to. When an interface is changed using the change_interface op,
the mode specific sdata part is in an undefined state and trying to
get a beacon at this point can produce weird crashes.

To fix this, add a check for ieee80211_sdata_running before using
anything from the sdata.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs</title>
<updated>2010-12-08T20:23:48Z</updated>
<author>
<name>Helmut Schaa</name>
</author>
<published>2010-12-02T17:44:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e2447075690860e2cea96b119fc9cadbaa7e83c'/>
<id>urn:sha1:7e2447075690860e2cea96b119fc9cadbaa7e83c</id>
<content type='text'>
mac80211 doesn't handle shared skbs correctly at the moment. As a result
a possible resize can trigger a BUG in pskb_expand_head.

[  676.030000] Kernel bug detected[#1]:
[  676.030000] Cpu 0
[  676.030000] $ 0   : 00000000 00000000 819662ff 00000002
[  676.030000] $ 4   : 81966200 00000020 00000000 00000020
[  676.030000] $ 8   : 819662e0 800043c0 00000002 00020000
[  676.030000] $12   : 3b9aca00 00000000 00000000 00470000
[  676.030000] $16   : 80ea2000 00000000 00000000 00000000
[  676.030000] $20   : 818aa200 80ea2018 80ea2000 00000008
[  676.030000] $24   : 00000002 800ace5c
[  676.030000] $28   : 8199a000 8199bd20 81938f88 80f180d4
[  676.030000] Hi    : 0000026e
[  676.030000] Lo    : 0000757e
[  676.030000] epc   : 801245e4 pskb_expand_head+0x44/0x1d8
[  676.030000]     Not tainted
[  676.030000] ra    : 80f180d4 ieee80211_skb_resize+0xb0/0x114 [mac80211]
[  676.030000] Status: 1000a403    KERNEL EXL IE
[  676.030000] Cause : 10800024
[  676.030000] PrId  : 0001964c (MIPS 24Kc)
[  676.030000] Modules linked in: mac80211_hwsim rt2800lib rt2x00soc rt2x00pci rt2x00lib mac80211 crc_itu_t crc_ccitt cfg80211 compat arc4 aes_generic deflate ecb cbc [last unloaded: rt2800pci]
[  676.030000] Process kpktgend_0 (pid: 97, threadinfo=8199a000, task=81879f48, tls=00000000)
[  676.030000] Stack : ffffffff 00000000 00000000 00000014 00000004 80ea2000 00000000 00000000
[  676.030000]         818aa200 80f180d4 ffffffff 0000000a 81879f78 81879f48 81879f48 00000018
[  676.030000]         81966246 80ea2000 818432e0 80f1a420 80203050 81814d98 00000001 81879f48
[  676.030000]         81879f48 00000018 81966246 818432e0 0000001a 8199bdd4 0000001c 80f1b72c
[  676.030000]         80203020 8001292c 80ef4aa2 7f10b55d 801ab5b8 81879f48 00000188 80005c90
[  676.030000]         ...
[  676.030000] Call Trace:
[  676.030000] [&lt;801245e4&gt;] pskb_expand_head+0x44/0x1d8
[  676.030000] [&lt;80f180d4&gt;] ieee80211_skb_resize+0xb0/0x114 [mac80211]
[  676.030000] [&lt;80f1a420&gt;] ieee80211_xmit+0x150/0x22c [mac80211]
[  676.030000] [&lt;80f1b72c&gt;] ieee80211_subif_start_xmit+0x6f4/0x73c [mac80211]
[  676.030000] [&lt;8014361c&gt;] pktgen_thread_worker+0xfac/0x16f8
[  676.030000] [&lt;8002ebe8&gt;] kthread+0x7c/0x88
[  676.030000] [&lt;80008e0c&gt;] kernel_thread_helper+0x10/0x18
[  676.030000]
[  676.030000]
[  676.030000] Code: 24020001  10620005  2502001f &lt;0200000d&gt; 0804917a  00000000  2502001f  00441023  00531021

Fix this by making a local copy of shared skbs prior to mangeling them.
To avoid copying the skb unnecessarily move the skb_copy call below the
checks that don't need write access to the skb.

Also, move the assignment of nh_pos and h_pos below the skb_copy to point
to the correct skb.

It would be possible to avoid another resize of the copied skb by using
skb_copy_expand instead of skb_copy but that would make the patch more
complex. Also, shared skbs are a corner case right now, so the resize
shouldn't matter much.

Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Cc: stable@kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Fix frame injection using non-AP vif</title>
<updated>2010-11-29T19:41:28Z</updated>
<author>
<name>Jouni Malinen</name>
</author>
<published>2010-11-26T18:41:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7dff3125534c1d035a910052335a3a39fbb31aa7'/>
<id>urn:sha1:7dff3125534c1d035a910052335a3a39fbb31aa7</id>
<content type='text'>
In order for frame injection to work properly for some use cases
(e.g., finding the station entry and keys for encryption), mac80211
needs to find the correct sdata entry. This works when the main vif
is in AP mode, but commit a2c1e3dad516618cb0fbfb1a62c36d0b0744573a
broke this particular use case for station main vif. While this type of
injection is quite unusual operation, it has some uses and we should fix
it. Do this by changing the monitor vif sdata selection to allow station
vif to be selected instead of limiting it to just AP vifs. We still need
to skip some iftypes to avoid selecting unsuitable vif for injection.

Signed-off-by: Jouni Malinen &lt;jouni.malinen@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>cfg80211/mac80211: allow per-station GTKs</title>
<updated>2010-10-06T20:30:40Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-10-05T17:39:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e31b82136d1adc7a599b6e99d3321e5831841f5a'/>
<id>urn:sha1:e31b82136d1adc7a599b6e99d3321e5831841f5a</id>
<content type='text'>
This adds API to allow adding per-station GTKs,
updates mac80211 to support it, and also allows
drivers to remove a key from hwaccel again when
this may be necessary due to multiple GTKs.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix for WDS interfaces</title>
<updated>2010-10-05T17:35:25Z</updated>
<author>
<name>Bill Jordan</name>
</author>
<published>2010-10-01T15:20:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1be7fe8de9f25e173282f8f989f83bc5b5decfe9'/>
<id>urn:sha1:1be7fe8de9f25e173282f8f989f83bc5b5decfe9</id>
<content type='text'>
Initialize the rate table for WDS interfaces, and
add cases to allow WDS packets to pass the xmit and receive
tests.

Signed-off-by: Bill Jordan &lt;bjordan@rajant.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Fix dangling pointer in ieee80211_xmit</title>
<updated>2010-09-14T20:08:03Z</updated>
<author>
<name>Steve deRosier</name>
</author>
<published>2010-09-12T03:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=740c1aa3b01251c3c324743f395621749b099065'/>
<id>urn:sha1:740c1aa3b01251c3c324743f395621749b099065</id>
<content type='text'>
hdr pointer is left dangling after call to ieee80211_skb_resize. This
can cause guards around mesh path selection to fail.

Signed-off-by: Steve deRosier &lt;steve@cozybit.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: use subqueue helpers</title>
<updated>2010-08-27T17:27:08Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-08-27T11:36:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2337db8db845ece2d4ab7673a343e285f1bfda85'/>
<id>urn:sha1:2337db8db845ece2d4ab7673a343e285f1bfda85</id>
<content type='text'>
There are subqueue helpers so that we don't
need to get the TX queue and then wake/stop
it, use those helpers.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: allow changing port control protocol</title>
<updated>2010-08-27T17:27:07Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-08-27T11:26:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a621fa4d6a7fdf9d34938d2e129a72624833eeeb'/>
<id>urn:sha1:a621fa4d6a7fdf9d34938d2e129a72624833eeeb</id>
<content type='text'>
Some vendor specified mechanisms for 802.1X-style
functionality use a different protocol than EAP
(even if EAP is vendor-extensible). Support this
in mac80211 via the cfg80211 API for it.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: allow vendor specific cipher suites</title>
<updated>2010-08-27T17:27:07Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-08-27T11:26:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3ffc2a905b1faae4c0fe39d66f0752c3a4cbb3c7'/>
<id>urn:sha1:3ffc2a905b1faae4c0fe39d66f0752c3a4cbb3c7</id>
<content type='text'>
Allow drivers to specify their own set of cipher
suites to advertise vendor-specific ciphers. The
driver is then required to implement hardware
crypto offload for it.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
