<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/wireless/realtek, branch v4.4.86</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>rtlwifi: rtl8821ae: setup 8812ae RFE according to device type</title>
<updated>2017-05-25T12:30:08+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2017-04-17T00:32:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e367d1b00f813c70894b7e560618f78715be88ae'/>
<id>e367d1b00f813c70894b7e560618f78715be88ae</id>
<content type='text'>
commit 46cfa2148e7371c537efff1a1c693e58f523089d upstream.

Current channel switch implementation sets 8812ae RFE reg value assuming
that device always has type 2.

Extend possible RFE types set and write corresponding reg values.

Source for new code is
http://dlcdnet.asus.com/pub/ASUS/wireless/PCE-AC51/DR_PCE_AC51_20232801152016.zip

Signed-off-by: Maxim Samoylov &lt;max7255@gmail.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Cc: Yan-Hsuan Chuang &lt;yhchuang@realtek.com&gt;
Cc: Pkshih &lt;pkshih@realtek.com&gt;
Cc: Birming Chiu &lt;birming@realtek.com&gt;
Cc: Shaofu &lt;shaofu@realtek.com&gt;
Cc: Steven Ting &lt;steventing@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 46cfa2148e7371c537efff1a1c693e58f523089d upstream.

Current channel switch implementation sets 8812ae RFE reg value assuming
that device always has type 2.

Extend possible RFE types set and write corresponding reg values.

Source for new code is
http://dlcdnet.asus.com/pub/ASUS/wireless/PCE-AC51/DR_PCE_AC51_20232801152016.zip

Signed-off-by: Maxim Samoylov &lt;max7255@gmail.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Cc: Yan-Hsuan Chuang &lt;yhchuang@realtek.com&gt;
Cc: Pkshih &lt;pkshih@realtek.com&gt;
Cc: Birming Chiu &lt;birming@realtek.com&gt;
Cc: Shaofu &lt;shaofu@realtek.com&gt;
Cc: Steven Ting &lt;steventing@realtek.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: pass block ack session timeout to to driver</title>
<updated>2017-05-20T12:27:03+00:00</updated>
<author>
<name>Sara Sharon</name>
<email>sarasharon1@gmail.com</email>
</author>
<published>2015-12-30T14:06:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d13333edbcc7e931e63bd94feb7f81d7d990986a'/>
<id>d13333edbcc7e931e63bd94feb7f81d7d990986a</id>
<content type='text'>
commit 50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1 upstream.

Currently mac80211 does not inform the driver of the session
block ack timeout when starting a rx aggregation session.
Drivers that manage the reorder buffer need to know this
parameter.
Seeing that there are now too many arguments for the
drv_ampdu_action() function, wrap them inside a structure.

Signed-off-by: Sara Sharon &lt;sara.sharon@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Amit Pundir &lt;amit.pundir@linaro.org&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 50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1 upstream.

Currently mac80211 does not inform the driver of the session
block ack timeout when starting a rx aggregation session.
Drivers that manage the reorder buffer need to know this
parameter.
Seeing that there are now too many arguments for the
drv_ampdu_action() function, wrap them inside a structure.

Signed-off-by: Sara Sharon &lt;sara.sharon@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Amit Pundir &lt;amit.pundir@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: rtl8192c-common: Fix "BUG: KASAN:</title>
<updated>2017-03-12T05:37:30+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2017-02-05T16:24:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=781e6a08381de1e042cdedc4002183548299f90b'/>
<id>781e6a08381de1e042cdedc4002183548299f90b</id>
<content type='text'>
commit 6773386f977ce5af339f9678fa2918909a946c6b upstream.

Kernels built with CONFIG_KASAN=y report the following BUG for rtl8192cu
and rtl8192c-common:

==================================================================
BUG: KASAN: slab-out-of-bounds in rtl92c_dm_bt_coexist+0x858/0x1e40
     [rtl8192c_common] at addr ffff8801c90edb08
Read of size 1 by task kworker/0:1/38
page:ffffea0007243800 count:1 mapcount:0 mapping:          (null)
     index:0x0 compound_mapcount: 0
flags: 0x8000000000004000(head)
page dumped because: kasan: bad access detected
CPU: 0 PID: 38 Comm: kworker/0:1 Not tainted 4.9.7-gentoo #3
Hardware name: Gigabyte Technology Co., Ltd. To be filled by
     O.E.M./Z77-DS3H, BIOS F11a 11/13/2013
Workqueue: rtl92c_usb rtl_watchdog_wq_callback [rtlwifi]
  0000000000000000 ffffffff829eea33 ffff8801d7f0fa30 ffff8801c90edb08
  ffffffff824c0f09 ffff8801d4abee80 0000000000000004 0000000000000297
  ffffffffc070b57c ffff8801c7aa7c48 ffff880100000004 ffffffff000003e8
Call Trace:
  [&lt;ffffffff829eea33&gt;] ? dump_stack+0x5c/0x79
  [&lt;ffffffff824c0f09&gt;] ? kasan_report_error+0x4b9/0x4e0
  [&lt;ffffffffc070b57c&gt;] ? _usb_read_sync+0x15c/0x280 [rtl_usb]
  [&lt;ffffffff824c0f75&gt;] ? __asan_report_load1_noabort+0x45/0x50
  [&lt;ffffffffc06d7a88&gt;] ? rtl92c_dm_bt_coexist+0x858/0x1e40 [rtl8192c_common]
  [&lt;ffffffffc06d7a88&gt;] ? rtl92c_dm_bt_coexist+0x858/0x1e40 [rtl8192c_common]
  [&lt;ffffffffc06d0cbe&gt;] ? rtl92c_dm_rf_saving+0x96e/0x1330 [rtl8192c_common]
...

The problem is due to rtl8192ce and rtl8192cu sharing routines, and having
different layouts of struct rtl_pci_priv, which is used by rtl8192ce, and
struct rtl_usb_priv, which is used by rtl8192cu. The problem was resolved
by placing the struct bt_coexist_info at the head of each of those private
areas.

Reported-and-tested-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Cc: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 6773386f977ce5af339f9678fa2918909a946c6b upstream.

Kernels built with CONFIG_KASAN=y report the following BUG for rtl8192cu
and rtl8192c-common:

==================================================================
BUG: KASAN: slab-out-of-bounds in rtl92c_dm_bt_coexist+0x858/0x1e40
     [rtl8192c_common] at addr ffff8801c90edb08
Read of size 1 by task kworker/0:1/38
page:ffffea0007243800 count:1 mapcount:0 mapping:          (null)
     index:0x0 compound_mapcount: 0
flags: 0x8000000000004000(head)
page dumped because: kasan: bad access detected
CPU: 0 PID: 38 Comm: kworker/0:1 Not tainted 4.9.7-gentoo #3
Hardware name: Gigabyte Technology Co., Ltd. To be filled by
     O.E.M./Z77-DS3H, BIOS F11a 11/13/2013
Workqueue: rtl92c_usb rtl_watchdog_wq_callback [rtlwifi]
  0000000000000000 ffffffff829eea33 ffff8801d7f0fa30 ffff8801c90edb08
  ffffffff824c0f09 ffff8801d4abee80 0000000000000004 0000000000000297
  ffffffffc070b57c ffff8801c7aa7c48 ffff880100000004 ffffffff000003e8
Call Trace:
  [&lt;ffffffff829eea33&gt;] ? dump_stack+0x5c/0x79
  [&lt;ffffffff824c0f09&gt;] ? kasan_report_error+0x4b9/0x4e0
  [&lt;ffffffffc070b57c&gt;] ? _usb_read_sync+0x15c/0x280 [rtl_usb]
  [&lt;ffffffff824c0f75&gt;] ? __asan_report_load1_noabort+0x45/0x50
  [&lt;ffffffffc06d7a88&gt;] ? rtl92c_dm_bt_coexist+0x858/0x1e40 [rtl8192c_common]
  [&lt;ffffffffc06d7a88&gt;] ? rtl92c_dm_bt_coexist+0x858/0x1e40 [rtl8192c_common]
  [&lt;ffffffffc06d0cbe&gt;] ? rtl92c_dm_rf_saving+0x96e/0x1330 [rtl8192c_common]
...

The problem is due to rtl8192ce and rtl8192cu sharing routines, and having
different layouts of struct rtl_pci_priv, which is used by rtl8192ce, and
struct rtl_usb_priv, which is used by rtl8192cu. The problem was resolved
by placing the struct bt_coexist_info at the head of each of those private
areas.

Reported-and-tested-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Cc: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: Fix alignment issues</title>
<updated>2017-03-12T05:37:30+00:00</updated>
<author>
<name>Ping-Ke Shih</name>
<email>pkshih@realtek.com</email>
</author>
<published>2016-12-28T21:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e10c33cb87a82e804aa8e52cf15dc052295e9fe'/>
<id>6e10c33cb87a82e804aa8e52cf15dc052295e9fe</id>
<content type='text'>
commit 40b368af4b750863b2cb66a3a9513241db2f0793 upstream.

The addresses of Wlan NIC registers are natural alignment, but some
drivers have bugs. These are evident on platforms that need natural
alignment to access registers.  This change contains the following:
 1. Function _rtl8821ae_dbi_read() is used to read one byte from DBI,
    thus it should use rtl_read_byte().
 2. Register 0x4C7 of 8192ee is single byte.

Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 40b368af4b750863b2cb66a3a9513241db2f0793 upstream.

The addresses of Wlan NIC registers are natural alignment, but some
drivers have bugs. These are evident on platforms that need natural
alignment to access registers.  This change contains the following:
 1. Function _rtl8821ae_dbi_read() is used to read one byte from DBI,
    thus it should use rtl_read_byte().
 2. Register 0x4C7 of 8192ee is single byte.

Signed-off-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: rtl_usb: Fix for URB leaking when doing ifconfig up/down</title>
<updated>2017-02-26T10:07:51+00:00</updated>
<author>
<name>Michael Schenk</name>
<email>michael.schenk@albis-elcon.com</email>
</author>
<published>2017-01-26T17:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=151d4c0fb55bd12cc501f0a9158afc82820e30cd'/>
<id>151d4c0fb55bd12cc501f0a9158afc82820e30cd</id>
<content type='text'>
commit 575ddce0507789bf9830d089557d2199d2f91865 upstream.

In the function rtl_usb_start we pre-allocate a certain number of urbs
for RX path but they will not be freed when calling rtl_usb_stop. This
results in leaking urbs when doing ifconfig up and down. Eventually,
the system has no available urbs.

Signed-off-by: Michael Schenk &lt;michael.schenk@albis-elcon.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 575ddce0507789bf9830d089557d2199d2f91865 upstream.

In the function rtl_usb_start we pre-allocate a certain number of urbs
for RX path but they will not be freed when calling rtl_usb_stop. This
results in leaking urbs when doing ifconfig up and down. Eventually,
the system has no available urbs.

Signed-off-by: Michael Schenk &lt;michael.schenk@albis-elcon.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: rtl_usb: Fix missing entry in USB driver's private data</title>
<updated>2017-02-26T10:07:49+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2016-12-21T17:18:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a82ac399bcf289d5152613afa644846ae2320e23'/>
<id>a82ac399bcf289d5152613afa644846ae2320e23</id>
<content type='text'>
commit 60f59ce0278557f7896d5158ae6d12a4855a72cc upstream.

These drivers need to be able to reference "struct ieee80211_hw" from
the driver's private data, and vice versa. The USB driver failed to
store the address of ieee80211_hw in the private data. Although this
bug has been present for a long time, it was not exposed until
commit ba9f93f82aba ("rtlwifi: Fix enter/exit power_save").

Fixes: ba9f93f82aba ("rtlwifi: Fix enter/exit power_save")
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Cc: Takashi Iwai &lt;tiwai@suse.de&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 60f59ce0278557f7896d5158ae6d12a4855a72cc upstream.

These drivers need to be able to reference "struct ieee80211_hw" from
the driver's private data, and vice versa. The USB driver failed to
store the address of ieee80211_hw in the private data. Although this
bug has been present for a long time, it was not exposed until
commit ba9f93f82aba ("rtlwifi: Fix enter/exit power_save").

Fixes: ba9f93f82aba ("rtlwifi: Fix enter/exit power_save")
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Cc: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: Fix enter/exit power_save</title>
<updated>2017-01-09T07:07:42+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2016-11-26T20:43:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=05f4183ab5a450de5fd0033c8cfd41223cbd942d'/>
<id>05f4183ab5a450de5fd0033c8cfd41223cbd942d</id>
<content type='text'>
commit ba9f93f82abafe2552eac942ebb11c2df4f8dd7f upstream.

In commit a5ffbe0a1993 ("rtlwifi: Fix scheduling while atomic bug") and
commit a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter()
to use work queue"), an error was introduced in the power-save routines
due to the fact that leaving PS was delayed by the use of a work queue.

This problem is fixed by detecting if the enter or leave routines are
in interrupt mode. If so, the workqueue is used to place the request.
If in normal mode, the enter or leave routines are called directly.

Fixes: a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
Reported-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 ba9f93f82abafe2552eac942ebb11c2df4f8dd7f upstream.

In commit a5ffbe0a1993 ("rtlwifi: Fix scheduling while atomic bug") and
commit a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter()
to use work queue"), an error was introduced in the power-save routines
due to the fact that leaving PS was delayed by the use of a work queue.

This problem is fixed by detecting if the enter or leave routines are
in interrupt mode. If so, the workqueue is used to place the request.
If in normal mode, the enter or leave routines are called directly.

Fixes: a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
Reported-by: Ping-Ke Shih &lt;pkshih@realtek.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: Fix missing country code for Great Britain</title>
<updated>2016-10-28T07:01:26+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2016-08-22T19:27:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7dcd1cd07760224f046713e7234113d08f151f06'/>
<id>7dcd1cd07760224f046713e7234113d08f151f06</id>
<content type='text'>
commit 0c9d3491530773858ff9d705ec2a9c382f449230 upstream.

Some RTL8821AE devices sold in Great Britain have the country code of
0x25 encoded in their EEPROM. This value is not tested in the routine
that establishes the regulatory info for the chip. The fix is to set
this code to have the same capabilities as the EU countries. In addition,
the channels allowed for COUNTRY_CODE_ETSI were more properly suited
for China and Israel, not the EU. This problem has also been fixed.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 0c9d3491530773858ff9d705ec2a9c382f449230 upstream.

Some RTL8821AE devices sold in Great Britain have the country code of
0x25 encoded in their EEPROM. This value is not tested in the routine
that establishes the regulatory info for the chip. The fix is to set
this code to have the same capabilities as the EU countries. In addition,
the channels allowed for COUNTRY_CODE_ETSI were more properly suited
for China and Israel, not the EU. This problem has also been fixed.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: pci: use dev_kfree_skb_irq instead of kfree_skb in rtl_pci_reset_trx_ring</title>
<updated>2016-06-08T01:14:33+00:00</updated>
<author>
<name>wang yanqing</name>
<email>udknight@gmail.com</email>
</author>
<published>2016-05-06T16:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=04a6bcca2f76f7aa5b8749644e3a2947a3cf040d'/>
<id>04a6bcca2f76f7aa5b8749644e3a2947a3cf040d</id>
<content type='text'>
commit cf968937d27751296920e6b82ffa89735e3a0023 upstream.

We can't use kfree_skb in irq disable context, because spin_lock_irqsave
make sure we are always in irq disable context, use dev_kfree_skb_irq
instead of kfree_skb is better than dev_kfree_skb_any.

This patch fix below kernel warning:
[ 7612.095528] ------------[ cut here ]------------
[ 7612.095546] WARNING: CPU: 3 PID: 4460 at kernel/softirq.c:150 __local_bh_enable_ip+0x58/0x80()
[ 7612.095550] Modules linked in: rtl8723be x86_pkg_temp_thermal btcoexist rtl_pci rtlwifi rtl8723_common
[ 7612.095567] CPU: 3 PID: 4460 Comm: ifconfig Tainted: G        W       4.4.0+ #4
[ 7612.095570] Hardware name: LENOVO 20DFA04FCD/20DFA04FCD, BIOS J5ET48WW (1.19 ) 08/27/2015
[ 7612.095574]  00000000 00000000 da37fc70 c12ce7c5 00000000 da37fca0 c104cc59 c19d4454
[ 7612.095584]  00000003 0000116c c19d4784 00000096 c10508a8 c10508a8 00000200 c1b42400
[ 7612.095594]  f29be780 da37fcb0 c104ccad 00000009 00000000 da37fcbc c10508a8 f21f08b8
[ 7612.095604] Call Trace:
[ 7612.095614]  [&lt;c12ce7c5&gt;] dump_stack+0x41/0x5c
[ 7612.095620]  [&lt;c104cc59&gt;] warn_slowpath_common+0x89/0xc0
[ 7612.095628]  [&lt;c10508a8&gt;] ? __local_bh_enable_ip+0x58/0x80
[ 7612.095634]  [&lt;c10508a8&gt;] ? __local_bh_enable_ip+0x58/0x80
[ 7612.095640]  [&lt;c104ccad&gt;] warn_slowpath_null+0x1d/0x20
[ 7612.095646]  [&lt;c10508a8&gt;] __local_bh_enable_ip+0x58/0x80
[ 7612.095653]  [&lt;c16b7d34&gt;] destroy_conntrack+0x64/0xa0
[ 7612.095660]  [&lt;c16b300f&gt;] nf_conntrack_destroy+0xf/0x20
[ 7612.095665]  [&lt;c1677565&gt;] skb_release_head_state+0x55/0xa0
[ 7612.095670]  [&lt;c16775bb&gt;] skb_release_all+0xb/0x20
[ 7612.095674]  [&lt;c167760b&gt;] __kfree_skb+0xb/0x60
[ 7612.095679]  [&lt;c16776f0&gt;] kfree_skb+0x30/0x70
[ 7612.095686]  [&lt;f81b869d&gt;] ? rtl_pci_reset_trx_ring+0x22d/0x370 [rtl_pci]
[ 7612.095692]  [&lt;f81b869d&gt;] rtl_pci_reset_trx_ring+0x22d/0x370 [rtl_pci]
[ 7612.095698]  [&lt;f81b87f9&gt;] rtl_pci_start+0x19/0x190 [rtl_pci]
[ 7612.095705]  [&lt;f81970e6&gt;] rtl_op_start+0x56/0x90 [rtlwifi]
[ 7612.095712]  [&lt;c17e3f16&gt;] drv_start+0x36/0xc0
[ 7612.095717]  [&lt;c17f5ab3&gt;] ieee80211_do_open+0x2d3/0x890
[ 7612.095725]  [&lt;c16820fe&gt;] ? call_netdevice_notifiers_info+0x2e/0x60
[ 7612.095730]  [&lt;c17f60bd&gt;] ieee80211_open+0x4d/0x50
[ 7612.095736]  [&lt;c16891b3&gt;] __dev_open+0xa3/0x130
[ 7612.095742]  [&lt;c183fa53&gt;] ? _raw_spin_unlock_bh+0x13/0x20
[ 7612.095748]  [&lt;c1689499&gt;] __dev_change_flags+0x89/0x140
[ 7612.095753]  [&lt;c127c70d&gt;] ? selinux_capable+0xd/0x10
[ 7612.095759]  [&lt;c1689589&gt;] dev_change_flags+0x29/0x60
[ 7612.095765]  [&lt;c1700b93&gt;] devinet_ioctl+0x553/0x670
[ 7612.095772]  [&lt;c12db758&gt;] ? _copy_to_user+0x28/0x40
[ 7612.095777]  [&lt;c17018b5&gt;] inet_ioctl+0x85/0xb0
[ 7612.095783]  [&lt;c166e647&gt;] sock_ioctl+0x67/0x260
[ 7612.095788]  [&lt;c166e5e0&gt;] ? sock_fasync+0x80/0x80
[ 7612.095795]  [&lt;c115c99b&gt;] do_vfs_ioctl+0x6b/0x550
[ 7612.095800]  [&lt;c127c812&gt;] ? selinux_file_ioctl+0x102/0x1e0
[ 7612.095807]  [&lt;c10a8914&gt;] ? timekeeping_suspend+0x294/0x320
[ 7612.095813]  [&lt;c10a256a&gt;] ? __hrtimer_run_queues+0x14a/0x210
[ 7612.095820]  [&lt;c1276e24&gt;] ? security_file_ioctl+0x34/0x50
[ 7612.095827]  [&lt;c115cef0&gt;] SyS_ioctl+0x70/0x80
[ 7612.095832]  [&lt;c1001804&gt;] do_fast_syscall_32+0x84/0x120
[ 7612.095839]  [&lt;c183ff91&gt;] sysenter_past_esp+0x36/0x55
[ 7612.095844] ---[ end trace 97e9c637a20e8348 ]---

Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 cf968937d27751296920e6b82ffa89735e3a0023 upstream.

We can't use kfree_skb in irq disable context, because spin_lock_irqsave
make sure we are always in irq disable context, use dev_kfree_skb_irq
instead of kfree_skb is better than dev_kfree_skb_any.

This patch fix below kernel warning:
[ 7612.095528] ------------[ cut here ]------------
[ 7612.095546] WARNING: CPU: 3 PID: 4460 at kernel/softirq.c:150 __local_bh_enable_ip+0x58/0x80()
[ 7612.095550] Modules linked in: rtl8723be x86_pkg_temp_thermal btcoexist rtl_pci rtlwifi rtl8723_common
[ 7612.095567] CPU: 3 PID: 4460 Comm: ifconfig Tainted: G        W       4.4.0+ #4
[ 7612.095570] Hardware name: LENOVO 20DFA04FCD/20DFA04FCD, BIOS J5ET48WW (1.19 ) 08/27/2015
[ 7612.095574]  00000000 00000000 da37fc70 c12ce7c5 00000000 da37fca0 c104cc59 c19d4454
[ 7612.095584]  00000003 0000116c c19d4784 00000096 c10508a8 c10508a8 00000200 c1b42400
[ 7612.095594]  f29be780 da37fcb0 c104ccad 00000009 00000000 da37fcbc c10508a8 f21f08b8
[ 7612.095604] Call Trace:
[ 7612.095614]  [&lt;c12ce7c5&gt;] dump_stack+0x41/0x5c
[ 7612.095620]  [&lt;c104cc59&gt;] warn_slowpath_common+0x89/0xc0
[ 7612.095628]  [&lt;c10508a8&gt;] ? __local_bh_enable_ip+0x58/0x80
[ 7612.095634]  [&lt;c10508a8&gt;] ? __local_bh_enable_ip+0x58/0x80
[ 7612.095640]  [&lt;c104ccad&gt;] warn_slowpath_null+0x1d/0x20
[ 7612.095646]  [&lt;c10508a8&gt;] __local_bh_enable_ip+0x58/0x80
[ 7612.095653]  [&lt;c16b7d34&gt;] destroy_conntrack+0x64/0xa0
[ 7612.095660]  [&lt;c16b300f&gt;] nf_conntrack_destroy+0xf/0x20
[ 7612.095665]  [&lt;c1677565&gt;] skb_release_head_state+0x55/0xa0
[ 7612.095670]  [&lt;c16775bb&gt;] skb_release_all+0xb/0x20
[ 7612.095674]  [&lt;c167760b&gt;] __kfree_skb+0xb/0x60
[ 7612.095679]  [&lt;c16776f0&gt;] kfree_skb+0x30/0x70
[ 7612.095686]  [&lt;f81b869d&gt;] ? rtl_pci_reset_trx_ring+0x22d/0x370 [rtl_pci]
[ 7612.095692]  [&lt;f81b869d&gt;] rtl_pci_reset_trx_ring+0x22d/0x370 [rtl_pci]
[ 7612.095698]  [&lt;f81b87f9&gt;] rtl_pci_start+0x19/0x190 [rtl_pci]
[ 7612.095705]  [&lt;f81970e6&gt;] rtl_op_start+0x56/0x90 [rtlwifi]
[ 7612.095712]  [&lt;c17e3f16&gt;] drv_start+0x36/0xc0
[ 7612.095717]  [&lt;c17f5ab3&gt;] ieee80211_do_open+0x2d3/0x890
[ 7612.095725]  [&lt;c16820fe&gt;] ? call_netdevice_notifiers_info+0x2e/0x60
[ 7612.095730]  [&lt;c17f60bd&gt;] ieee80211_open+0x4d/0x50
[ 7612.095736]  [&lt;c16891b3&gt;] __dev_open+0xa3/0x130
[ 7612.095742]  [&lt;c183fa53&gt;] ? _raw_spin_unlock_bh+0x13/0x20
[ 7612.095748]  [&lt;c1689499&gt;] __dev_change_flags+0x89/0x140
[ 7612.095753]  [&lt;c127c70d&gt;] ? selinux_capable+0xd/0x10
[ 7612.095759]  [&lt;c1689589&gt;] dev_change_flags+0x29/0x60
[ 7612.095765]  [&lt;c1700b93&gt;] devinet_ioctl+0x553/0x670
[ 7612.095772]  [&lt;c12db758&gt;] ? _copy_to_user+0x28/0x40
[ 7612.095777]  [&lt;c17018b5&gt;] inet_ioctl+0x85/0xb0
[ 7612.095783]  [&lt;c166e647&gt;] sock_ioctl+0x67/0x260
[ 7612.095788]  [&lt;c166e5e0&gt;] ? sock_fasync+0x80/0x80
[ 7612.095795]  [&lt;c115c99b&gt;] do_vfs_ioctl+0x6b/0x550
[ 7612.095800]  [&lt;c127c812&gt;] ? selinux_file_ioctl+0x102/0x1e0
[ 7612.095807]  [&lt;c10a8914&gt;] ? timekeeping_suspend+0x294/0x320
[ 7612.095813]  [&lt;c10a256a&gt;] ? __hrtimer_run_queues+0x14a/0x210
[ 7612.095820]  [&lt;c1276e24&gt;] ? security_file_ioctl+0x34/0x50
[ 7612.095827]  [&lt;c115cef0&gt;] SyS_ioctl+0x70/0x80
[ 7612.095832]  [&lt;c1001804&gt;] do_fast_syscall_32+0x84/0x120
[ 7612.095839]  [&lt;c183ff91&gt;] sysenter_past_esp+0x36/0x55
[ 7612.095844] ---[ end trace 97e9c637a20e8348 ]---

Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: Fix logic error in enter/exit power-save mode</title>
<updated>2016-06-08T01:14:33+00:00</updated>
<author>
<name>wang yanqing</name>
<email>udknight@gmail.com</email>
</author>
<published>2016-05-02T16:38:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d896d805dbf5ebf6814c4e84d5321a8169304b19'/>
<id>d896d805dbf5ebf6814c4e84d5321a8169304b19</id>
<content type='text'>
commit 873ffe154ae074c46ed2d72dbd9a2a99f06f55b4 upstream.

In commit a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and
rtl_lps_enter() to use work queue"), the tests for enter/exit
power-save mode were inverted. With this change applied, the
wifi connection becomes much more stable.

Fixes: a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&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 873ffe154ae074c46ed2d72dbd9a2a99f06f55b4 upstream.

In commit a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and
rtl_lps_enter() to use work queue"), the tests for enter/exit
power-save mode were inverted. With this change applied, the
wifi connection becomes much more stable.

Fixes: a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
Signed-off-by: Wang YanQing &lt;udknight@gmail.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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