<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/wireless/ti, branch linux-4.12.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>wl1251: add a missing spin_lock_init()</title>
<updated>2017-09-07T06:37:16+00:00</updated>
<author>
<name>Cong Wang</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2017-08-31T14:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d767ccb7c387b0eed712ae38100aded44710ebe5'/>
<id>d767ccb7c387b0eed712ae38100aded44710ebe5</id>
<content type='text'>
commit f581a0dd744fe32b0a8805e279c59ec1ac676d60 upstream.

wl1251: add a missing spin_lock_init()

This fixes the following kernel warning:

 [ 5668.771453] BUG: spinlock bad magic on CPU#0, kworker/u2:3/9745
 [ 5668.771850]  lock: 0xce63ef20, .magic: 00000000, .owner: &lt;none&gt;/-1,
 .owner_cpu: 0
 [ 5668.772277] CPU: 0 PID: 9745 Comm: kworker/u2:3 Tainted: G        W
 4.12.0-03002-gec979a4-dirty #40
 [ 5668.772796] Hardware name: Nokia RX-51 board
 [ 5668.773071] Workqueue: phy1 wl1251_irq_work
 [ 5668.773345] [&lt;c010c9e4&gt;] (unwind_backtrace) from [&lt;c010a274&gt;]
 (show_stack+0x10/0x14)
 [ 5668.773803] [&lt;c010a274&gt;] (show_stack) from [&lt;c01545a4&gt;]
 (do_raw_spin_lock+0x6c/0xa0)
 [ 5668.774230] [&lt;c01545a4&gt;] (do_raw_spin_lock) from [&lt;c06ca578&gt;]
 (_raw_spin_lock_irqsave+0x10/0x18)
 [ 5668.774658] [&lt;c06ca578&gt;] (_raw_spin_lock_irqsave) from [&lt;c048c010&gt;]
 (wl1251_op_tx+0x38/0x5c)
 [ 5668.775115] [&lt;c048c010&gt;] (wl1251_op_tx) from [&lt;c06a12e8&gt;]
 (ieee80211_tx_frags+0x188/0x1c0)
 [ 5668.775543] [&lt;c06a12e8&gt;] (ieee80211_tx_frags) from [&lt;c06a138c&gt;]
 (__ieee80211_tx+0x6c/0x130)
 [ 5668.775970] [&lt;c06a138c&gt;] (__ieee80211_tx) from [&lt;c06a3dbc&gt;]
 (ieee80211_tx+0xdc/0x104)
 [ 5668.776367] [&lt;c06a3dbc&gt;] (ieee80211_tx) from [&lt;c06a4af0&gt;]
 (__ieee80211_subif_start_xmit+0x454/0x8c8)
 [ 5668.776824] [&lt;c06a4af0&gt;] (__ieee80211_subif_start_xmit) from
 [&lt;c06a4f94&gt;] (ieee80211_subif_start_xmit+0x30/0x2fc)
 [ 5668.777343] [&lt;c06a4f94&gt;] (ieee80211_subif_start_xmit) from
 [&lt;c0578848&gt;] (dev_hard_start_xmit+0x80/0x118)
...

    by adding the missing spin_lock_init().

Reported-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Cc: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Pavel Machek &lt;pavel@ucw.cz&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 f581a0dd744fe32b0a8805e279c59ec1ac676d60 upstream.

wl1251: add a missing spin_lock_init()

This fixes the following kernel warning:

 [ 5668.771453] BUG: spinlock bad magic on CPU#0, kworker/u2:3/9745
 [ 5668.771850]  lock: 0xce63ef20, .magic: 00000000, .owner: &lt;none&gt;/-1,
 .owner_cpu: 0
 [ 5668.772277] CPU: 0 PID: 9745 Comm: kworker/u2:3 Tainted: G        W
 4.12.0-03002-gec979a4-dirty #40
 [ 5668.772796] Hardware name: Nokia RX-51 board
 [ 5668.773071] Workqueue: phy1 wl1251_irq_work
 [ 5668.773345] [&lt;c010c9e4&gt;] (unwind_backtrace) from [&lt;c010a274&gt;]
 (show_stack+0x10/0x14)
 [ 5668.773803] [&lt;c010a274&gt;] (show_stack) from [&lt;c01545a4&gt;]
 (do_raw_spin_lock+0x6c/0xa0)
 [ 5668.774230] [&lt;c01545a4&gt;] (do_raw_spin_lock) from [&lt;c06ca578&gt;]
 (_raw_spin_lock_irqsave+0x10/0x18)
 [ 5668.774658] [&lt;c06ca578&gt;] (_raw_spin_lock_irqsave) from [&lt;c048c010&gt;]
 (wl1251_op_tx+0x38/0x5c)
 [ 5668.775115] [&lt;c048c010&gt;] (wl1251_op_tx) from [&lt;c06a12e8&gt;]
 (ieee80211_tx_frags+0x188/0x1c0)
 [ 5668.775543] [&lt;c06a12e8&gt;] (ieee80211_tx_frags) from [&lt;c06a138c&gt;]
 (__ieee80211_tx+0x6c/0x130)
 [ 5668.775970] [&lt;c06a138c&gt;] (__ieee80211_tx) from [&lt;c06a3dbc&gt;]
 (ieee80211_tx+0xdc/0x104)
 [ 5668.776367] [&lt;c06a3dbc&gt;] (ieee80211_tx) from [&lt;c06a4af0&gt;]
 (__ieee80211_subif_start_xmit+0x454/0x8c8)
 [ 5668.776824] [&lt;c06a4af0&gt;] (__ieee80211_subif_start_xmit) from
 [&lt;c06a4f94&gt;] (ieee80211_subif_start_xmit+0x30/0x2fc)
 [ 5668.777343] [&lt;c06a4f94&gt;] (ieee80211_subif_start_xmit) from
 [&lt;c0578848&gt;] (dev_hard_start_xmit+0x80/0x118)
...

    by adding the missing spin_lock_init().

Reported-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Cc: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Pavel Machek &lt;pavel@ucw.cz&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>wlcore: fix 64K page support</title>
<updated>2017-07-27T22:10:05+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2017-05-11T11:52:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1566e0592c90b141f0e0f881d0103331ec558650'/>
<id>1566e0592c90b141f0e0f881d0103331ec558650</id>
<content type='text'>
commit 4a4274bf2dbbd1c7a45be0c89a1687c9d2eef4a0 upstream.

In the stable linux-3.16 branch, I ran into a warning in the
wlcore driver:

drivers/net/wireless/ti/wlcore/spi.c: In function 'wl12xx_spi_raw_write':
drivers/net/wireless/ti/wlcore/spi.c:315:1: error: the frame size of 12848 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]

Newer kernels no longer show the warning, but the bug is still there,
as the allocation is based on the CPU page size rather than the
actual capabilities of the hardware.

This replaces the PAGE_SIZE macro with the SZ_4K macro, i.e. 4096 bytes
per buffer.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&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 4a4274bf2dbbd1c7a45be0c89a1687c9d2eef4a0 upstream.

In the stable linux-3.16 branch, I ran into a warning in the
wlcore driver:

drivers/net/wireless/ti/wlcore/spi.c: In function 'wl12xx_spi_raw_write':
drivers/net/wireless/ti/wlcore/spi.c:315:1: error: the frame size of 12848 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]

Newer kernels no longer show the warning, but the bug is still there,
as the allocation is based on the CPU page size rather than the
actual capabilities of the hardware.

This replaces the PAGE_SIZE macro with the SZ_4K macro, i.e. 4096 bytes
per buffer.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&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: separate encoding/bandwidth from flags</title>
<updated>2017-04-28T08:41:45+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2017-04-26T10:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=da6a4352e7c867f81d7336f6517e819b3cce06bf'/>
<id>da6a4352e7c867f81d7336f6517e819b3cce06bf</id>
<content type='text'>
We currently use a lot of flags that are mutually incompatible,
separate this out into actual encoding and bandwidth enum values.

Much of this again done with spatch, with manual post-editing,
mostly to add the switch statements and get rid of the conversions.

@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_80MHZ
+status-&gt;bw = RATE_INFO_BW_80
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_40MHZ
+status-&gt;bw = RATE_INFO_BW_40
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_20MHZ
+status-&gt;bw = RATE_INFO_BW_20
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_160MHZ
+status-&gt;bw = RATE_INFO_BW_160
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_5MHZ
+status-&gt;bw = RATE_INFO_BW_5
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_10MHZ
+status-&gt;bw = RATE_INFO_BW_10

@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_VHT
+status-&gt;encoding = RX_ENC_VHT
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_HT
+status-&gt;encoding = RX_ENC_HT
@@
expression status;
@@
-status.enc_flags |= RX_ENC_FLAG_VHT
+status.encoding = RX_ENC_VHT
@@
expression status;
@@
-status.enc_flags |= RX_ENC_FLAG_HT
+status.encoding = RX_ENC_HT

@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_HT)
+(status-&gt;encoding == RX_ENC_HT)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_VHT)
+(status-&gt;encoding == RX_ENC_VHT)

@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_5MHZ)
+(status-&gt;bw == RATE_INFO_BW_5)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_10MHZ)
+(status-&gt;bw == RATE_INFO_BW_10)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_40MHZ)
+(status-&gt;bw == RATE_INFO_BW_40)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_80MHZ)
+(status-&gt;bw == RATE_INFO_BW_80)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_160MHZ)
+(status-&gt;bw == RATE_INFO_BW_160)

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently use a lot of flags that are mutually incompatible,
separate this out into actual encoding and bandwidth enum values.

Much of this again done with spatch, with manual post-editing,
mostly to add the switch statements and get rid of the conversions.

@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_80MHZ
+status-&gt;bw = RATE_INFO_BW_80
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_40MHZ
+status-&gt;bw = RATE_INFO_BW_40
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_20MHZ
+status-&gt;bw = RATE_INFO_BW_20
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_160MHZ
+status-&gt;bw = RATE_INFO_BW_160
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_5MHZ
+status-&gt;bw = RATE_INFO_BW_5
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_10MHZ
+status-&gt;bw = RATE_INFO_BW_10

@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_VHT
+status-&gt;encoding = RX_ENC_VHT
@@
expression status;
@@
-status-&gt;enc_flags |= RX_ENC_FLAG_HT
+status-&gt;encoding = RX_ENC_HT
@@
expression status;
@@
-status.enc_flags |= RX_ENC_FLAG_VHT
+status.encoding = RX_ENC_VHT
@@
expression status;
@@
-status.enc_flags |= RX_ENC_FLAG_HT
+status.encoding = RX_ENC_HT

@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_HT)
+(status-&gt;encoding == RX_ENC_HT)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_VHT)
+(status-&gt;encoding == RX_ENC_VHT)

@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_5MHZ)
+(status-&gt;bw == RATE_INFO_BW_5)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_10MHZ)
+(status-&gt;bw == RATE_INFO_BW_10)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_40MHZ)
+(status-&gt;bw == RATE_INFO_BW_40)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_80MHZ)
+(status-&gt;bw == RATE_INFO_BW_80)
@@
expression status;
@@
-(status-&gt;enc_flags &amp; RX_ENC_FLAG_160MHZ)
+(status-&gt;bw == RATE_INFO_BW_160)

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: clean up rate encoding bits in RX status</title>
<updated>2017-04-28T08:41:38+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2017-04-26T09:13:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7fdd69c5af2160236e97668bc1fb7d70855c66ae'/>
<id>7fdd69c5af2160236e97668bc1fb7d70855c66ae</id>
<content type='text'>
In preparation for adding support for HE rates, clean up
the driver report encoding for rate/bandwidth reporting
on RX frames.

Much of this patch was done with the following spatch:

@@
expression status;
@@
-status-&gt;flag &amp; (RX_FLAG_HT | RX_FLAG_VHT)
+status-&gt;enc_flags &amp; (RX_ENC_FLAG_HT | RX_ENC_FLAG_VHT)

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_SHORTPRE
+status-&gt;enc_flags op RX_ENC_FLAG_SHORTPRE
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_SHORTPRE
+status-&gt;enc_flags &amp; RX_ENC_FLAG_SHORTPRE

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_HT
+status-&gt;enc_flags op RX_ENC_FLAG_HT
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_HT
+status-&gt;enc_flags &amp; RX_ENC_FLAG_HT

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_40MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_40MHZ
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_40MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_40MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_SHORT_GI
+status-&gt;enc_flags op RX_ENC_FLAG_SHORT_GI
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_SHORT_GI
+status-&gt;enc_flags &amp; RX_ENC_FLAG_SHORT_GI

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_HT_GF
+status-&gt;enc_flags op RX_ENC_FLAG_HT_GF
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_HT_GF
+status-&gt;enc_flags &amp; RX_ENC_FLAG_HT_GF

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_VHT
+status-&gt;enc_flags op RX_ENC_FLAG_VHT
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_VHT
+status-&gt;enc_flags &amp; RX_ENC_FLAG_VHT

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_STBC_MASK
+status-&gt;enc_flags op RX_ENC_FLAG_STBC_MASK
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_STBC_MASK
+status-&gt;enc_flags &amp; RX_ENC_FLAG_STBC_MASK

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_LDPC
+status-&gt;enc_flags op RX_ENC_FLAG_LDPC
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_LDPC
+status-&gt;enc_flags &amp; RX_ENC_FLAG_LDPC

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_10MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_10MHZ
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_10MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_10MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_5MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_5MHZ
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_5MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_5MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;vht_flag op RX_VHT_FLAG_80MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_80MHZ
@@
expression status;
@@
-status-&gt;vht_flag &amp; RX_VHT_FLAG_80MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_80MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;vht_flag op RX_VHT_FLAG_160MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_160MHZ
@@
expression status;
@@
-status-&gt;vht_flag &amp; RX_VHT_FLAG_160MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_160MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;vht_flag op RX_VHT_FLAG_BF
+status-&gt;enc_flags op RX_ENC_FLAG_BF
@@
expression status;
@@
-status-&gt;vht_flag &amp; RX_VHT_FLAG_BF
+status-&gt;enc_flags &amp; RX_ENC_FLAG_BF

@@
assignment operator op;
expression status, STBC;
@@
-status-&gt;flag op STBC &lt;&lt; RX_FLAG_STBC_SHIFT
+status-&gt;enc_flags op STBC &lt;&lt; RX_ENC_FLAG_STBC_SHIFT

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_SHORTPRE
+status.enc_flags op RX_ENC_FLAG_SHORTPRE
@@
expression status;
@@
-status.flag &amp; RX_FLAG_SHORTPRE
+status.enc_flags &amp; RX_ENC_FLAG_SHORTPRE

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_HT
+status.enc_flags op RX_ENC_FLAG_HT
@@
expression status;
@@
-status.flag &amp; RX_FLAG_HT
+status.enc_flags &amp; RX_ENC_FLAG_HT

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_40MHZ
+status.enc_flags op RX_ENC_FLAG_40MHZ
@@
expression status;
@@
-status.flag &amp; RX_FLAG_40MHZ
+status.enc_flags &amp; RX_ENC_FLAG_40MHZ

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_SHORT_GI
+status.enc_flags op RX_ENC_FLAG_SHORT_GI
@@
expression status;
@@
-status.flag &amp; RX_FLAG_SHORT_GI
+status.enc_flags &amp; RX_ENC_FLAG_SHORT_GI

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_HT_GF
+status.enc_flags op RX_ENC_FLAG_HT_GF
@@
expression status;
@@
-status.flag &amp; RX_FLAG_HT_GF
+status.enc_flags &amp; RX_ENC_FLAG_HT_GF

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_VHT
+status.enc_flags op RX_ENC_FLAG_VHT
@@
expression status;
@@
-status.flag &amp; RX_FLAG_VHT
+status.enc_flags &amp; RX_ENC_FLAG_VHT

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_STBC_MASK
+status.enc_flags op RX_ENC_FLAG_STBC_MASK
@@
expression status;
@@
-status.flag &amp; RX_FLAG_STBC_MASK
+status.enc_flags &amp; RX_ENC_FLAG_STBC_MASK

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_LDPC
+status.enc_flags op RX_ENC_FLAG_LDPC
@@
expression status;
@@
-status.flag &amp; RX_FLAG_LDPC
+status.enc_flags &amp; RX_ENC_FLAG_LDPC

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_10MHZ
+status.enc_flags op RX_ENC_FLAG_10MHZ
@@
expression status;
@@
-status.flag &amp; RX_FLAG_10MHZ
+status.enc_flags &amp; RX_ENC_FLAG_10MHZ

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_5MHZ
+status.enc_flags op RX_ENC_FLAG_5MHZ
@@
expression status;
@@
-status.flag &amp; RX_FLAG_5MHZ
+status.enc_flags &amp; RX_ENC_FLAG_5MHZ

@@
assignment operator op;
expression status;
@@
-status.vht_flag op RX_VHT_FLAG_80MHZ
+status.enc_flags op RX_ENC_FLAG_80MHZ
@@
expression status;
@@
-status.vht_flag &amp; RX_VHT_FLAG_80MHZ
+status.enc_flags &amp; RX_ENC_FLAG_80MHZ

@@
assignment operator op;
expression status;
@@
-status.vht_flag op RX_VHT_FLAG_160MHZ
+status.enc_flags op RX_ENC_FLAG_160MHZ
@@
expression status;
@@
-status.vht_flag &amp; RX_VHT_FLAG_160MHZ
+status.enc_flags &amp; RX_ENC_FLAG_160MHZ

@@
assignment operator op;
expression status;
@@
-status.vht_flag op RX_VHT_FLAG_BF
+status.enc_flags op RX_ENC_FLAG_BF
@@
expression status;
@@
-status.vht_flag &amp; RX_VHT_FLAG_BF
+status.enc_flags &amp; RX_ENC_FLAG_BF

@@
assignment operator op;
expression status, STBC;
@@
-status.flag op STBC &lt;&lt; RX_FLAG_STBC_SHIFT
+status.enc_flags op STBC &lt;&lt; RX_ENC_FLAG_STBC_SHIFT

@@
@@
-RX_FLAG_STBC_SHIFT
+RX_ENC_FLAG_STBC_SHIFT

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In preparation for adding support for HE rates, clean up
the driver report encoding for rate/bandwidth reporting
on RX frames.

Much of this patch was done with the following spatch:

@@
expression status;
@@
-status-&gt;flag &amp; (RX_FLAG_HT | RX_FLAG_VHT)
+status-&gt;enc_flags &amp; (RX_ENC_FLAG_HT | RX_ENC_FLAG_VHT)

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_SHORTPRE
+status-&gt;enc_flags op RX_ENC_FLAG_SHORTPRE
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_SHORTPRE
+status-&gt;enc_flags &amp; RX_ENC_FLAG_SHORTPRE

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_HT
+status-&gt;enc_flags op RX_ENC_FLAG_HT
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_HT
+status-&gt;enc_flags &amp; RX_ENC_FLAG_HT

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_40MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_40MHZ
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_40MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_40MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_SHORT_GI
+status-&gt;enc_flags op RX_ENC_FLAG_SHORT_GI
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_SHORT_GI
+status-&gt;enc_flags &amp; RX_ENC_FLAG_SHORT_GI

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_HT_GF
+status-&gt;enc_flags op RX_ENC_FLAG_HT_GF
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_HT_GF
+status-&gt;enc_flags &amp; RX_ENC_FLAG_HT_GF

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_VHT
+status-&gt;enc_flags op RX_ENC_FLAG_VHT
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_VHT
+status-&gt;enc_flags &amp; RX_ENC_FLAG_VHT

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_STBC_MASK
+status-&gt;enc_flags op RX_ENC_FLAG_STBC_MASK
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_STBC_MASK
+status-&gt;enc_flags &amp; RX_ENC_FLAG_STBC_MASK

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_LDPC
+status-&gt;enc_flags op RX_ENC_FLAG_LDPC
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_LDPC
+status-&gt;enc_flags &amp; RX_ENC_FLAG_LDPC

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_10MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_10MHZ
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_10MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_10MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;flag op RX_FLAG_5MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_5MHZ
@@
expression status;
@@
-status-&gt;flag &amp; RX_FLAG_5MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_5MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;vht_flag op RX_VHT_FLAG_80MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_80MHZ
@@
expression status;
@@
-status-&gt;vht_flag &amp; RX_VHT_FLAG_80MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_80MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;vht_flag op RX_VHT_FLAG_160MHZ
+status-&gt;enc_flags op RX_ENC_FLAG_160MHZ
@@
expression status;
@@
-status-&gt;vht_flag &amp; RX_VHT_FLAG_160MHZ
+status-&gt;enc_flags &amp; RX_ENC_FLAG_160MHZ

@@
assignment operator op;
expression status;
@@
-status-&gt;vht_flag op RX_VHT_FLAG_BF
+status-&gt;enc_flags op RX_ENC_FLAG_BF
@@
expression status;
@@
-status-&gt;vht_flag &amp; RX_VHT_FLAG_BF
+status-&gt;enc_flags &amp; RX_ENC_FLAG_BF

@@
assignment operator op;
expression status, STBC;
@@
-status-&gt;flag op STBC &lt;&lt; RX_FLAG_STBC_SHIFT
+status-&gt;enc_flags op STBC &lt;&lt; RX_ENC_FLAG_STBC_SHIFT

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_SHORTPRE
+status.enc_flags op RX_ENC_FLAG_SHORTPRE
@@
expression status;
@@
-status.flag &amp; RX_FLAG_SHORTPRE
+status.enc_flags &amp; RX_ENC_FLAG_SHORTPRE

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_HT
+status.enc_flags op RX_ENC_FLAG_HT
@@
expression status;
@@
-status.flag &amp; RX_FLAG_HT
+status.enc_flags &amp; RX_ENC_FLAG_HT

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_40MHZ
+status.enc_flags op RX_ENC_FLAG_40MHZ
@@
expression status;
@@
-status.flag &amp; RX_FLAG_40MHZ
+status.enc_flags &amp; RX_ENC_FLAG_40MHZ

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_SHORT_GI
+status.enc_flags op RX_ENC_FLAG_SHORT_GI
@@
expression status;
@@
-status.flag &amp; RX_FLAG_SHORT_GI
+status.enc_flags &amp; RX_ENC_FLAG_SHORT_GI

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_HT_GF
+status.enc_flags op RX_ENC_FLAG_HT_GF
@@
expression status;
@@
-status.flag &amp; RX_FLAG_HT_GF
+status.enc_flags &amp; RX_ENC_FLAG_HT_GF

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_VHT
+status.enc_flags op RX_ENC_FLAG_VHT
@@
expression status;
@@
-status.flag &amp; RX_FLAG_VHT
+status.enc_flags &amp; RX_ENC_FLAG_VHT

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_STBC_MASK
+status.enc_flags op RX_ENC_FLAG_STBC_MASK
@@
expression status;
@@
-status.flag &amp; RX_FLAG_STBC_MASK
+status.enc_flags &amp; RX_ENC_FLAG_STBC_MASK

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_LDPC
+status.enc_flags op RX_ENC_FLAG_LDPC
@@
expression status;
@@
-status.flag &amp; RX_FLAG_LDPC
+status.enc_flags &amp; RX_ENC_FLAG_LDPC

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_10MHZ
+status.enc_flags op RX_ENC_FLAG_10MHZ
@@
expression status;
@@
-status.flag &amp; RX_FLAG_10MHZ
+status.enc_flags &amp; RX_ENC_FLAG_10MHZ

@@
assignment operator op;
expression status;
@@
-status.flag op RX_FLAG_5MHZ
+status.enc_flags op RX_ENC_FLAG_5MHZ
@@
expression status;
@@
-status.flag &amp; RX_FLAG_5MHZ
+status.enc_flags &amp; RX_ENC_FLAG_5MHZ

@@
assignment operator op;
expression status;
@@
-status.vht_flag op RX_VHT_FLAG_80MHZ
+status.enc_flags op RX_ENC_FLAG_80MHZ
@@
expression status;
@@
-status.vht_flag &amp; RX_VHT_FLAG_80MHZ
+status.enc_flags &amp; RX_ENC_FLAG_80MHZ

@@
assignment operator op;
expression status;
@@
-status.vht_flag op RX_VHT_FLAG_160MHZ
+status.enc_flags op RX_ENC_FLAG_160MHZ
@@
expression status;
@@
-status.vht_flag &amp; RX_VHT_FLAG_160MHZ
+status.enc_flags &amp; RX_ENC_FLAG_160MHZ

@@
assignment operator op;
expression status;
@@
-status.vht_flag op RX_VHT_FLAG_BF
+status.enc_flags op RX_ENC_FLAG_BF
@@
expression status;
@@
-status.vht_flag &amp; RX_VHT_FLAG_BF
+status.enc_flags &amp; RX_ENC_FLAG_BF

@@
assignment operator op;
expression status, STBC;
@@
-status.flag op STBC &lt;&lt; RX_FLAG_STBC_SHIFT
+status.enc_flags op STBC &lt;&lt; RX_ENC_FLAG_STBC_SHIFT

@@
@@
-RX_FLAG_STBC_SHIFT
+RX_ENC_FLAG_STBC_SHIFT

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nl80211: allow multiple active scheduled scan requests</title>
<updated>2017-04-26T21:17:38+00:00</updated>
<author>
<name>Arend Van Spriel</name>
<email>arend.vanspriel@broadcom.com</email>
</author>
<published>2017-04-21T12:05:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ca986ad9bcd3893c8b0b4cc2cafcc8cf1554409c'/>
<id>ca986ad9bcd3893c8b0b4cc2cafcc8cf1554409c</id>
<content type='text'>
This patch implements the idea to have multiple scheduled scan requests
running concurrently. It mainly illustrates how to deal with the incoming
request from user-space in terms of backward compatibility. In order to
use multiple scheduled scans user-space needs to provide a flag attribute
NL80211_ATTR_SCHED_SCAN_MULTI to indicate support. If not the request is
treated as a legacy scan.

Drivers currently supporting scheduled scan are now indicating they support
a single scheduled scan request. This obsoletes WIPHY_FLAG_SUPPORTS_SCHED_SCAN.

Reviewed-by: Hante Meuleman &lt;hante.meuleman@broadcom.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieter-paul.giesberts@broadcom.com&gt;
Reviewed-by: Franky Lin &lt;franky.lin@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
[clean up netlink destroy path to avoid allocations, code cleanups]
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements the idea to have multiple scheduled scan requests
running concurrently. It mainly illustrates how to deal with the incoming
request from user-space in terms of backward compatibility. In order to
use multiple scheduled scans user-space needs to provide a flag attribute
NL80211_ATTR_SCHED_SCAN_MULTI to indicate support. If not the request is
treated as a legacy scan.

Drivers currently supporting scheduled scan are now indicating they support
a single scheduled scan request. This obsoletes WIPHY_FLAG_SUPPORTS_SCHED_SCAN.

Reviewed-by: Hante Meuleman &lt;hante.meuleman@broadcom.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieter-paul.giesberts@broadcom.com&gt;
Reviewed-by: Franky Lin &lt;franky.lin@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
[clean up netlink destroy path to avoid allocations, code cleanups]
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netlink: pass extended ACK struct to parsing functions</title>
<updated>2017-04-13T17:58:22+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2017-04-12T12:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fceb6435e85298f747fee938415057af837f5a8a'/>
<id>fceb6435e85298f747fee938415057af837f5a8a</id>
<content type='text'>
Pass the new extended ACK reporting struct to all of the generic
netlink parsing functions. For now, pass NULL in almost all callers
(except for some in the core.)

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pass the new extended ACK reporting struct to all of the generic
netlink parsing functions. For now, pass NULL in almost all callers
(except for some in the core.)

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: fix spelling mistakes in wl1271_warning</title>
<updated>2017-04-05T12:45:29+00:00</updated>
<author>
<name>Colin Ian King</name>
<email>colin.king@canonical.com</email>
</author>
<published>2017-04-03T09:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5ea80789616009607fa1211750fe198a256c32b2'/>
<id>5ea80789616009607fa1211750fe198a256c32b2</id>
<content type='text'>
trivial fix to spelling mistakes in wl1271_warning error message, change
iligal to invalid and opperation to operation.

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
trivial fix to spelling mistakes in wl1271_warning error message, change
iligal to invalid and opperation to operation.

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/spelling.txt: add "configuartion" pattern and fix typo instances</title>
<updated>2017-02-28T02:43:47+00:00</updated>
<author>
<name>Masahiro Yamada</name>
<email>yamada.masahiro@socionext.com</email>
</author>
<published>2017-02-27T22:29:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2c149601001ba25b5b4e5aa9dd481d677cae15ae'/>
<id>2c149601001ba25b5b4e5aa9dd481d677cae15ae</id>
<content type='text'>
Fix typos and add the following to the scripts/spelling.txt:

  configuartion||configuration

While we are here, fix the "ouput" as well in the touched hunk in
drivers/media/dvb-frontends/drx39xyj/drx_driver.h.

Link: http://lkml.kernel.org/r/1481573103-11329-23-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix typos and add the following to the scripts/spelling.txt:

  configuartion||configuration

While we are here, fix the "ouput" as well in the touched hunk in
drivers/media/dvb-frontends/drx39xyj/drx_driver.h.

Link: http://lkml.kernel.org/r/1481573103-11329-23-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts/spelling.txt: add "intialization" pattern and fix typo instances</title>
<updated>2017-02-28T02:43:47+00:00</updated>
<author>
<name>Masahiro Yamada</name>
<email>yamada.masahiro@socionext.com</email>
</author>
<published>2017-02-27T22:29:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=183b8021fc0a5fadecdf9c0ccac1f48b5c326278'/>
<id>183b8021fc0a5fadecdf9c0ccac1f48b5c326278</id>
<content type='text'>
Fix typos and add the following to the scripts/spelling.txt:

  intialization||initialization

The "inintialization" in drivers/acpi/spcr.c is a different pattern but
I fixed it as well in this commit.

Link: http://lkml.kernel.org/r/1481573103-11329-16-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix typos and add the following to the scripts/spelling.txt:

  intialization||initialization

The "inintialization" in drivers/acpi/spcr.c is a different pattern but
I fixed it as well in this commit.

Link: http://lkml.kernel.org/r/1481573103-11329-16-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: disable multicast filter in AP mode</title>
<updated>2017-02-15T09:10:41+00:00</updated>
<author>
<name>Iain Hunter</name>
<email>drhunter95@gmail.com</email>
</author>
<published>2017-02-09T14:37:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1f8665320fa1a232fda22bcc7f88daeb83628385'/>
<id>1f8665320fa1a232fda22bcc7f88daeb83628385</id>
<content type='text'>
Enable AP support for allmulticast for MDNS. It can be enabled by bringing
up the interface with ip command with argument allmulticast on

Signed-off-by: Iain Hunter &lt;i-hunter1@ti.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable AP support for allmulticast for MDNS. It can be enabled by bringing
up the interface with ip command with argument allmulticast on

Signed-off-by: Iain Hunter &lt;i-hunter1@ti.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
