<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net, branch v3.12.6</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>igb: Fix for issue where values could be too high for udelay function.</title>
<updated>2013-12-20T15:49:00+00:00</updated>
<author>
<name>Carolyn Wyborny</name>
<email>carolyn.wyborny@intel.com</email>
</author>
<published>2013-12-14T11:26:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e0f9268694020091449449fe4e58d422aacce48b'/>
<id>e0f9268694020091449449fe4e58d422aacce48b</id>
<content type='text'>
commit df29df92adda751ac04ca5149d30014b5199db81 upstream.

This patch changes the igb_phy_has_link function to check the value of the
parameter before deciding to use udelay or mdelay in order to be sure that
the value is not too high for udelay function.

Signed-off-by: Sunil K Pandey &lt;sunil.k.pandey@intel.com&gt;
Signed-off-by: Kevin B Smith &lt;kevin.b.smith@intel.com&gt;
Signed-off-by: Carolyn Wyborny &lt;carolyn.wyborny@intel.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

This patch changes the igb_phy_has_link function to check the value of the
parameter before deciding to use udelay or mdelay in order to be sure that
the value is not too high for udelay function.

Signed-off-by: Sunil K Pandey &lt;sunil.k.pandey@intel.com&gt;
Signed-off-by: Kevin B Smith &lt;kevin.b.smith@intel.com&gt;
Signed-off-by: Carolyn Wyborny &lt;carolyn.wyborny@intel.com&gt;
Tested-by: Aaron Brown &lt;aaron.f.brown@intel.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net: allwinner: emac: Add missing free_irq</title>
<updated>2013-12-20T15:49:00+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime.ripard@free-electrons.com</email>
</author>
<published>2013-12-10T18:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=028d3234cb84a11c6c183bbffcecc726d45c8cfd'/>
<id>028d3234cb84a11c6c183bbffcecc726d45c8cfd</id>
<content type='text'>
commit e9c56f8d2f851fb6d6ce6794c0f5463b862a878e upstream.

The sun4i-emac driver uses devm_request_irq at .ndo_open time, but relies on
the managed device mechanism to actually free it. This causes an issue whenever
someone wants to restart the interface, the interrupt still being held, and not
yet released.

Fall back to using the regular request_irq at .ndo_open time, and introduce a
free_irq during .ndo_stop.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

The sun4i-emac driver uses devm_request_irq at .ndo_open time, but relies on
the managed device mechanism to actually free it. This causes an issue whenever
someone wants to restart the interface, the interrupt still being held, and not
yet released.

Fall back to using the regular request_irq at .ndo_open time, and introduce a
free_irq during .ndo_stop.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>mwifiex: fix memory leak issue for ibss join</title>
<updated>2013-12-20T15:49:00+00:00</updated>
<author>
<name>Ujjal Roy</name>
<email>royujjal@gmail.com</email>
</author>
<published>2013-11-21T19:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f0d64a5e19ffc678c156454bab9ae0a46771159f'/>
<id>f0d64a5e19ffc678c156454bab9ae0a46771159f</id>
<content type='text'>
commit 517543fd72d577dde2ebd9505dc4abf26d589f9a upstream.

For IBSS join if the requested SSID matches current SSID,
it returns without freeing the allocated beacon IE buffer.

Signed-off-by: Ujjal Roy &lt;royujjal@gmail.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

For IBSS join if the requested SSID matches current SSID,
it returns without freeing the allocated beacon IE buffer.

Signed-off-by: Ujjal Roy &lt;royujjal@gmail.com&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: mvm: check sta_id/drain values in debugfs</title>
<updated>2013-12-20T15:49:00+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-10-25T11:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1d87f36045d9b040bcad76cf35a49ea7300e6ce6'/>
<id>1d87f36045d9b040bcad76cf35a49ea7300e6ce6</id>
<content type='text'>
commit 60765a47a433d54e4744c285ad127f182dcd80aa upstream.

The station ID must be valid, if it's out of range then
the array access may crash. Validate the station ID to
the array length, and also validate the drain value even
if that doesn't matter all that much.

Fixes: 8ca151b568b6 ("iwlwifi: add the MVM driver")
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

The station ID must be valid, if it's out of range then
the array access may crash. Validate the station ID to
the array length, and also validate the drain value even
if that doesn't matter all that much.

Fixes: 8ca151b568b6 ("iwlwifi: add the MVM driver")
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: fix duration calculation for non-aggregated packets</title>
<updated>2013-12-20T15:48:58+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2013-12-05T14:20:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7f79e506a4521b58fcba80b49cd40c2037de6d2b'/>
<id>7f79e506a4521b58fcba80b49cd40c2037de6d2b</id>
<content type='text'>
commit bbf807bc0697e577c137a5fffb30fca7c6a45da1 upstream.

When not aggregating packets, fi-&gt;framelen should be passed in as length
to calculate the duration. Before the tx path rework, ath_tx_fill_desc
was called for either one aggregate, or one single frame, with the
length of the packet or the aggregate as a parameter.
After the rework, ath_tx_sched_aggr can pass a burst of single frames to
ath_tx_fill_desc and sets len=0.
Fix broken duration calculation by overriding the length in ath_tx_fill_desc
before passing it to ath_buf_set_rate.

Reported-by: Simon Wunderlich &lt;sw@simonwunderlich.de&gt;
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@linuxfoundation.org&gt;

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

When not aggregating packets, fi-&gt;framelen should be passed in as length
to calculate the duration. Before the tx path rework, ath_tx_fill_desc
was called for either one aggregate, or one single frame, with the
length of the packet or the aggregate as a parameter.
After the rework, ath_tx_sched_aggr can pass a burst of single frames to
ath_tx_fill_desc and sets len=0.
Fix broken duration calculation by overriding the length in ath_tx_fill_desc
before passing it to ath_buf_set_rate.

Reported-by: Simon Wunderlich &lt;sw@simonwunderlich.de&gt;
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@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: Fix XLNA bias strength</title>
<updated>2013-12-20T15:48:58+00:00</updated>
<author>
<name>Sujith Manoharan</name>
<email>c_manoha@qca.qualcomm.com</email>
</author>
<published>2013-11-26T01:51:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1c8eac0555fdfd33d0039ac27da9fdfb3ae775b1'/>
<id>1c8eac0555fdfd33d0039ac27da9fdfb3ae775b1</id>
<content type='text'>
commit a1783a7b0846fc6414483e6caf646db72023fffd upstream.

The EEPROM parameter to determine whether the bias
strength values for XLNA have to be applied is part
of the miscConfiguration field and not featureEnable.

Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

The EEPROM parameter to determine whether the bias
strength values for XLNA have to be applied is part
of the miscConfiguration field and not featureEnable.

Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: Fix QuickDrop usage</title>
<updated>2013-12-20T15:48:58+00:00</updated>
<author>
<name>Sujith Manoharan</name>
<email>c_manoha@qca.qualcomm.com</email>
</author>
<published>2013-11-26T01:51:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4edfe34cca9f16624ff91df203c2322ed20279e2'/>
<id>4edfe34cca9f16624ff91df203c2322ed20279e2</id>
<content type='text'>
commit 93c1cfbe598f72cfa7be49e4a7d2a1d482e15119 upstream.

Bit 5 in the miscConfiguration field of the base EEPROM
header denotes whether QuickDrop is enabled or not. Fix
the incorrect usage of BIT(1) and also make sure that
this is done only for the required chips.

Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

Bit 5 in the miscConfiguration field of the base EEPROM
header denotes whether QuickDrop is enabled or not. Fix
the incorrect usage of BIT(1) and also make sure that
this is done only for the required chips.

Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: pcie: fix interrupt coalescing for 7260 / 3160</title>
<updated>2013-12-20T15:48:54+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2013-11-11T13:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=755ca0109f973f23fced94f8dcd8c60e013f270a'/>
<id>755ca0109f973f23fced94f8dcd8c60e013f270a</id>
<content type='text'>
commit 6960a059b2c618f32fe549f13287b3d2278c09e9 upstream.

We changed the timeout for the interrupt coealescing for
calibration, but that wasn't effective since we changed
that value back before loading the firmware. Since
calibrations are notification from firmware and not Rx
packets, this doesn't change anyway - the firmware will
fire an interrupt straight away regardless of the interrupt
coalescing value.
Also, a HW issue has been discovered in 7000 devices series.
The work around is to disable the new interrupt coalescing
timeout feature - do this by setting bit 31 in
CSR_INT_COALESCING.
This has been fixed in 7265 which means that we can't rely
on the device family and must have a hint in the iwl_cfg
structure.

Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration")
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

We changed the timeout for the interrupt coealescing for
calibration, but that wasn't effective since we changed
that value back before loading the firmware. Since
calibrations are notification from firmware and not Rx
packets, this doesn't change anyway - the firmware will
fire an interrupt straight away regardless of the interrupt
coalescing value.
Also, a HW issue has been discovered in 7000 devices series.
The work around is to disable the new interrupt coalescing
timeout feature - do this by setting bit 31 in
CSR_INT_COALESCING.
This has been fixed in 7265 which means that we can't rely
on the device family and must have a hint in the iwl_cfg
structure.

Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration")
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: avoid double-freeing of rx data memory</title>
<updated>2013-12-12T06:37:55+00:00</updated>
<author>
<name>Ivan Vecera</name>
<email>ivecera@redhat.com</email>
</author>
<published>2013-11-06T13:02:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4412b433d6a5c990f69d763c9ed5d187d49bc63a'/>
<id>4412b433d6a5c990f69d763c9ed5d187d49bc63a</id>
<content type='text'>
commit 85aec73d595b8847f9c4ea571deb127913f0d508 upstream.

If build_skb fails the memory associated with the ring buffer is freed but
the ri-&gt;data member is not zeroed in this case. This causes a double-free
of this memory in tg3_free_rings-&gt;... path. The patch moves this block after
setting ri-&gt;data to NULL.
It would be nice to fix this bug also in stable &gt;= v3.4 trees.

Cc: Nithin Nayak Sujir &lt;nsujir@broadcom.com&gt;
Cc: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Ivan Vecera &lt;ivecera@redhat.com&gt;
Acked-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

If build_skb fails the memory associated with the ring buffer is freed but
the ri-&gt;data member is not zeroed in this case. This causes a double-free
of this memory in tg3_free_rings-&gt;... path. The patch moves this block after
setting ri-&gt;data to NULL.
It would be nice to fix this bug also in stable &gt;= v3.4 trees.

Cc: Nithin Nayak Sujir &lt;nsujir@broadcom.com&gt;
Cc: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Ivan Vecera &lt;ivecera@redhat.com&gt;
Acked-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: dvm: don't override mac80211's queue setting</title>
<updated>2013-12-12T06:37:55+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2013-10-15T19:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=92a74362266f7fd5107ce3728452538824b1fa06'/>
<id>92a74362266f7fd5107ce3728452538824b1fa06</id>
<content type='text'>
commit f6b129527ca15bae29ffb9417ddaa1c9d99ffc5d upstream.

Since we set IEEE80211_HW_QUEUE_CONTROL, we can let
mac80211 do the queue assignement and don't need to
override its decisions.
While reassiging the same values is harmless of course,
it triggered  a WARNING when iwlwifi and mac80211 came
to different conclusions. This happened when mac80211 set
IEEE80211_TX_CTL_SEND_AFTER_DTIM, but didn't route the
packet to the cab_queue because no stations were asleep.

iwlwifi should not override mac80211's decicions for
offchannel packets and packets to  be sent after DTIM,
but it should override mac80211's decision for AMPDUs
since we have a special queue for them. So for AMPDU,
we still override info-&gt;hw_queue by the AMPDU queue.

This avoids:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 2531 at drivers/net/wireless/iwlwifi/dvm/tx.c:456 iwlagn_tx_skb+0x6c5/0x883()
Modules linked in:
CPU: 0 PID: 2531 Comm: hostapd Not tainted 3.12.0-rc5+ #1
Hardware name:                  /D53427RKE, BIOS RKPPT10H.86A.0017.2013.0425.1251 04/25/2013
 0000000000000000 0000000000000009 ffffffff8189aa62 0000000000000000
 ffffffff8105a4f2 ffff880058339a48 ffffffff815f8a04 0000000000000000
 ffff8800560097b0 0000000000000208 0000000000000000 ffff8800561a9e5e
Call Trace:
 [&lt;ffffffff8189aa62&gt;] ? dump_stack+0x41/0x51
 [&lt;ffffffff8105a4f2&gt;] ? warn_slowpath_common+0x78/0x90
 [&lt;ffffffff815f8a04&gt;] ? iwlagn_tx_skb+0x6c5/0x883
 [&lt;ffffffff815f8a04&gt;] ? iwlagn_tx_skb+0x6c5/0x883
 [&lt;ffffffff818a0040&gt;] ? put_cred+0x15/0x15
 [&lt;ffffffff815f6db4&gt;] ? iwlagn_mac_tx+0x19/0x2f
 [&lt;ffffffff8186cc45&gt;] ? __ieee80211_tx+0x226/0x29b
 [&lt;ffffffff8186e6bd&gt;] ? ieee80211_tx+0xa6/0xb5
 [&lt;ffffffff8186e98b&gt;] ? ieee80211_monitor_start_xmit+0x1e9/0x204
 [&lt;ffffffff8171ce5f&gt;] ? dev_hard_start_xmit+0x271/0x3ec
 [&lt;ffffffff817351ac&gt;] ? sch_direct_xmit+0x66/0x164
 [&lt;ffffffff8171d1bf&gt;] ? dev_queue_xmit+0x1e5/0x3c8
 [&lt;ffffffff817fac5a&gt;] ? packet_sendmsg+0xac5/0xb3d
 [&lt;ffffffff81709a09&gt;] ? sock_sendmsg+0x37/0x52
 [&lt;ffffffff810f9e0c&gt;] ? __do_fault+0x338/0x36b
 [&lt;ffffffff81713820&gt;] ? verify_iovec+0x44/0x94
 [&lt;ffffffff81709e63&gt;] ? ___sys_sendmsg+0x1f1/0x283
 [&lt;ffffffff81140a73&gt;] ? __inode_wait_for_writeback+0x67/0xae
 [&lt;ffffffff8111735e&gt;] ? __cache_free.isra.46+0x178/0x187
 [&lt;ffffffff811173b1&gt;] ? kmem_cache_free+0x44/0x84
 [&lt;ffffffff81132c22&gt;] ? dentry_kill+0x13d/0x149
 [&lt;ffffffff81132f6f&gt;] ? dput+0xe5/0xef
 [&lt;ffffffff81136e04&gt;] ? fget_light+0x2e/0x7c
 [&lt;ffffffff8170ae62&gt;] ? __sys_sendmsg+0x39/0x57
 [&lt;ffffffff818a7e39&gt;] ? system_call_fastpath+0x16/0x1b
---[ end trace 1b3eb79359c1d1e6 ]---

Reported-by: Sander Eikelenboom &lt;linux@eikelenboom.it&gt;
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

Since we set IEEE80211_HW_QUEUE_CONTROL, we can let
mac80211 do the queue assignement and don't need to
override its decisions.
While reassiging the same values is harmless of course,
it triggered  a WARNING when iwlwifi and mac80211 came
to different conclusions. This happened when mac80211 set
IEEE80211_TX_CTL_SEND_AFTER_DTIM, but didn't route the
packet to the cab_queue because no stations were asleep.

iwlwifi should not override mac80211's decicions for
offchannel packets and packets to  be sent after DTIM,
but it should override mac80211's decision for AMPDUs
since we have a special queue for them. So for AMPDU,
we still override info-&gt;hw_queue by the AMPDU queue.

This avoids:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 2531 at drivers/net/wireless/iwlwifi/dvm/tx.c:456 iwlagn_tx_skb+0x6c5/0x883()
Modules linked in:
CPU: 0 PID: 2531 Comm: hostapd Not tainted 3.12.0-rc5+ #1
Hardware name:                  /D53427RKE, BIOS RKPPT10H.86A.0017.2013.0425.1251 04/25/2013
 0000000000000000 0000000000000009 ffffffff8189aa62 0000000000000000
 ffffffff8105a4f2 ffff880058339a48 ffffffff815f8a04 0000000000000000
 ffff8800560097b0 0000000000000208 0000000000000000 ffff8800561a9e5e
Call Trace:
 [&lt;ffffffff8189aa62&gt;] ? dump_stack+0x41/0x51
 [&lt;ffffffff8105a4f2&gt;] ? warn_slowpath_common+0x78/0x90
 [&lt;ffffffff815f8a04&gt;] ? iwlagn_tx_skb+0x6c5/0x883
 [&lt;ffffffff815f8a04&gt;] ? iwlagn_tx_skb+0x6c5/0x883
 [&lt;ffffffff818a0040&gt;] ? put_cred+0x15/0x15
 [&lt;ffffffff815f6db4&gt;] ? iwlagn_mac_tx+0x19/0x2f
 [&lt;ffffffff8186cc45&gt;] ? __ieee80211_tx+0x226/0x29b
 [&lt;ffffffff8186e6bd&gt;] ? ieee80211_tx+0xa6/0xb5
 [&lt;ffffffff8186e98b&gt;] ? ieee80211_monitor_start_xmit+0x1e9/0x204
 [&lt;ffffffff8171ce5f&gt;] ? dev_hard_start_xmit+0x271/0x3ec
 [&lt;ffffffff817351ac&gt;] ? sch_direct_xmit+0x66/0x164
 [&lt;ffffffff8171d1bf&gt;] ? dev_queue_xmit+0x1e5/0x3c8
 [&lt;ffffffff817fac5a&gt;] ? packet_sendmsg+0xac5/0xb3d
 [&lt;ffffffff81709a09&gt;] ? sock_sendmsg+0x37/0x52
 [&lt;ffffffff810f9e0c&gt;] ? __do_fault+0x338/0x36b
 [&lt;ffffffff81713820&gt;] ? verify_iovec+0x44/0x94
 [&lt;ffffffff81709e63&gt;] ? ___sys_sendmsg+0x1f1/0x283
 [&lt;ffffffff81140a73&gt;] ? __inode_wait_for_writeback+0x67/0xae
 [&lt;ffffffff8111735e&gt;] ? __cache_free.isra.46+0x178/0x187
 [&lt;ffffffff811173b1&gt;] ? kmem_cache_free+0x44/0x84
 [&lt;ffffffff81132c22&gt;] ? dentry_kill+0x13d/0x149
 [&lt;ffffffff81132f6f&gt;] ? dput+0xe5/0xef
 [&lt;ffffffff81136e04&gt;] ? fget_light+0x2e/0x7c
 [&lt;ffffffff8170ae62&gt;] ? __sys_sendmsg+0x39/0x57
 [&lt;ffffffff818a7e39&gt;] ? system_call_fastpath+0x16/0x1b
---[ end trace 1b3eb79359c1d1e6 ]---

Reported-by: Sander Eikelenboom &lt;linux@eikelenboom.it&gt;
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
</feed>
