<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/wireless, branch v3.2.24</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>cfg80211: check iface combinations only when iface is running</title>
<updated>2012-07-25T03:11:20+00:00</updated>
<author>
<name>Michal Kazior</name>
<email>michal.kazior@tieto.com</email>
</author>
<published>2012-06-08T08:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1885f653e200137b46671a61ca321ab2356821b7'/>
<id>1885f653e200137b46671a61ca321ab2356821b7</id>
<content type='text'>
commit f8cdddb8d61d16a156229f0910f7ecfc7a82c003 upstream.

Don't validate interface combinations on a stopped
interface. Otherwise we might end up being able to
create a new interface with a certain type, but
won't be able to change an existing interface
into that type.

This also skips some other functions when
interface is stopped and changing interface type.

Signed-off-by: Michal Kazior &lt;michal.kazior@tieto.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f8cdddb8d61d16a156229f0910f7ecfc7a82c003 upstream.

Don't validate interface combinations on a stopped
interface. Otherwise we might end up being able to
create a new interface with a certain type, but
won't be able to change an existing interface
into that type.

This also skips some other functions when
interface is stopped and changing interface type.

Signed-off-by: Michal Kazior &lt;michal.kazior@tieto.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix potential deadlock in regulatory</title>
<updated>2012-07-04T04:44:18+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2012-06-12T09:53:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d12076896619a6f628b59e5d411c2cbbfede5a27'/>
<id>d12076896619a6f628b59e5d411c2cbbfede5a27</id>
<content type='text'>
commit fe20b39ec32e975f1054c0b7866c873a954adf05 upstream.

reg_timeout_work() calls restore_regulatory_settings() which
takes cfg80211_mutex.

reg_set_request_processed() already holds cfg80211_mutex
before calling cancel_delayed_work_sync(reg_timeout),
so it might deadlock.

Call the async cancel_delayed_work instead, in order
to avoid the potential deadlock.

This is the relevant lockdep warning:

cfg80211: Calling CRDA for country: XX

======================================================
[ INFO: possible circular locking dependency detected ]
3.4.0-rc5-wl+ #26 Not tainted
-------------------------------------------------------
kworker/0:2/1391 is trying to acquire lock:
 (cfg80211_mutex){+.+.+.}, at: [&lt;bf28ae00&gt;] restore_regulatory_settings+0x34/0x418 [cfg80211]

but task is already holding lock:
 ((reg_timeout).work){+.+...}, at: [&lt;c0059e94&gt;] process_one_work+0x1f0/0x480

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 ((reg_timeout).work){+.+...}:
       [&lt;c008fd44&gt;] validate_chain+0xb94/0x10f0
       [&lt;c0090b68&gt;] __lock_acquire+0x8c8/0x9b0
       [&lt;c0090d40&gt;] lock_acquire+0xf0/0x114
       [&lt;c005b600&gt;] wait_on_work+0x4c/0x154
       [&lt;c005c000&gt;] __cancel_work_timer+0xd4/0x11c
       [&lt;c005c064&gt;] cancel_delayed_work_sync+0x1c/0x20
       [&lt;bf28b274&gt;] reg_set_request_processed+0x50/0x78 [cfg80211]
       [&lt;bf28bd84&gt;] set_regdom+0x550/0x600 [cfg80211]
       [&lt;bf294cd8&gt;] nl80211_set_reg+0x218/0x258 [cfg80211]
       [&lt;c03c7738&gt;] genl_rcv_msg+0x1a8/0x1e8
       [&lt;c03c6a00&gt;] netlink_rcv_skb+0x5c/0xc0
       [&lt;c03c7584&gt;] genl_rcv+0x28/0x34
       [&lt;c03c6720&gt;] netlink_unicast+0x15c/0x228
       [&lt;c03c6c7c&gt;] netlink_sendmsg+0x218/0x298
       [&lt;c03933c8&gt;] sock_sendmsg+0xa4/0xc0
       [&lt;c039406c&gt;] __sys_sendmsg+0x1e4/0x268
       [&lt;c0394228&gt;] sys_sendmsg+0x4c/0x70
       [&lt;c0013840&gt;] ret_fast_syscall+0x0/0x3c

-&gt; #1 (reg_mutex){+.+.+.}:
       [&lt;c008fd44&gt;] validate_chain+0xb94/0x10f0
       [&lt;c0090b68&gt;] __lock_acquire+0x8c8/0x9b0
       [&lt;c0090d40&gt;] lock_acquire+0xf0/0x114
       [&lt;c04734dc&gt;] mutex_lock_nested+0x48/0x320
       [&lt;bf28b2cc&gt;] reg_todo+0x30/0x538 [cfg80211]
       [&lt;c0059f44&gt;] process_one_work+0x2a0/0x480
       [&lt;c005a4b4&gt;] worker_thread+0x1bc/0x2bc
       [&lt;c0061148&gt;] kthread+0x98/0xa4
       [&lt;c0014af4&gt;] kernel_thread_exit+0x0/0x8

-&gt; #0 (cfg80211_mutex){+.+.+.}:
       [&lt;c008ed58&gt;] print_circular_bug+0x68/0x2cc
       [&lt;c008fb28&gt;] validate_chain+0x978/0x10f0
       [&lt;c0090b68&gt;] __lock_acquire+0x8c8/0x9b0
       [&lt;c0090d40&gt;] lock_acquire+0xf0/0x114
       [&lt;c04734dc&gt;] mutex_lock_nested+0x48/0x320
       [&lt;bf28ae00&gt;] restore_regulatory_settings+0x34/0x418 [cfg80211]
       [&lt;bf28b200&gt;] reg_timeout_work+0x1c/0x20 [cfg80211]
       [&lt;c0059f44&gt;] process_one_work+0x2a0/0x480
       [&lt;c005a4b4&gt;] worker_thread+0x1bc/0x2bc
       [&lt;c0061148&gt;] kthread+0x98/0xa4
       [&lt;c0014af4&gt;] kernel_thread_exit+0x0/0x8

other info that might help us debug this:

Chain exists of:
  cfg80211_mutex --&gt; reg_mutex --&gt; (reg_timeout).work

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock((reg_timeout).work);
                               lock(reg_mutex);
                               lock((reg_timeout).work);
  lock(cfg80211_mutex);

 *** DEADLOCK ***

2 locks held by kworker/0:2/1391:
 #0:  (events){.+.+.+}, at: [&lt;c0059e94&gt;] process_one_work+0x1f0/0x480
 #1:  ((reg_timeout).work){+.+...}, at: [&lt;c0059e94&gt;] process_one_work+0x1f0/0x480

stack backtrace:
[&lt;c001b928&gt;] (unwind_backtrace+0x0/0x12c) from [&lt;c0471d3c&gt;] (dump_stack+0x20/0x24)
[&lt;c0471d3c&gt;] (dump_stack+0x20/0x24) from [&lt;c008ef70&gt;] (print_circular_bug+0x280/0x2cc)
[&lt;c008ef70&gt;] (print_circular_bug+0x280/0x2cc) from [&lt;c008fb28&gt;] (validate_chain+0x978/0x10f0)
[&lt;c008fb28&gt;] (validate_chain+0x978/0x10f0) from [&lt;c0090b68&gt;] (__lock_acquire+0x8c8/0x9b0)
[&lt;c0090b68&gt;] (__lock_acquire+0x8c8/0x9b0) from [&lt;c0090d40&gt;] (lock_acquire+0xf0/0x114)
[&lt;c0090d40&gt;] (lock_acquire+0xf0/0x114) from [&lt;c04734dc&gt;] (mutex_lock_nested+0x48/0x320)
[&lt;c04734dc&gt;] (mutex_lock_nested+0x48/0x320) from [&lt;bf28ae00&gt;] (restore_regulatory_settings+0x34/0x418 [cfg80211])
[&lt;bf28ae00&gt;] (restore_regulatory_settings+0x34/0x418 [cfg80211]) from [&lt;bf28b200&gt;] (reg_timeout_work+0x1c/0x20 [cfg80211])
[&lt;bf28b200&gt;] (reg_timeout_work+0x1c/0x20 [cfg80211]) from [&lt;c0059f44&gt;] (process_one_work+0x2a0/0x480)
[&lt;c0059f44&gt;] (process_one_work+0x2a0/0x480) from [&lt;c005a4b4&gt;] (worker_thread+0x1bc/0x2bc)
[&lt;c005a4b4&gt;] (worker_thread+0x1bc/0x2bc) from [&lt;c0061148&gt;] (kthread+0x98/0xa4)
[&lt;c0061148&gt;] (kthread+0x98/0xa4) from [&lt;c0014af4&gt;] (kernel_thread_exit+0x0/0x8)
cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit fe20b39ec32e975f1054c0b7866c873a954adf05 upstream.

reg_timeout_work() calls restore_regulatory_settings() which
takes cfg80211_mutex.

reg_set_request_processed() already holds cfg80211_mutex
before calling cancel_delayed_work_sync(reg_timeout),
so it might deadlock.

Call the async cancel_delayed_work instead, in order
to avoid the potential deadlock.

This is the relevant lockdep warning:

cfg80211: Calling CRDA for country: XX

======================================================
[ INFO: possible circular locking dependency detected ]
3.4.0-rc5-wl+ #26 Not tainted
-------------------------------------------------------
kworker/0:2/1391 is trying to acquire lock:
 (cfg80211_mutex){+.+.+.}, at: [&lt;bf28ae00&gt;] restore_regulatory_settings+0x34/0x418 [cfg80211]

but task is already holding lock:
 ((reg_timeout).work){+.+...}, at: [&lt;c0059e94&gt;] process_one_work+0x1f0/0x480

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 ((reg_timeout).work){+.+...}:
       [&lt;c008fd44&gt;] validate_chain+0xb94/0x10f0
       [&lt;c0090b68&gt;] __lock_acquire+0x8c8/0x9b0
       [&lt;c0090d40&gt;] lock_acquire+0xf0/0x114
       [&lt;c005b600&gt;] wait_on_work+0x4c/0x154
       [&lt;c005c000&gt;] __cancel_work_timer+0xd4/0x11c
       [&lt;c005c064&gt;] cancel_delayed_work_sync+0x1c/0x20
       [&lt;bf28b274&gt;] reg_set_request_processed+0x50/0x78 [cfg80211]
       [&lt;bf28bd84&gt;] set_regdom+0x550/0x600 [cfg80211]
       [&lt;bf294cd8&gt;] nl80211_set_reg+0x218/0x258 [cfg80211]
       [&lt;c03c7738&gt;] genl_rcv_msg+0x1a8/0x1e8
       [&lt;c03c6a00&gt;] netlink_rcv_skb+0x5c/0xc0
       [&lt;c03c7584&gt;] genl_rcv+0x28/0x34
       [&lt;c03c6720&gt;] netlink_unicast+0x15c/0x228
       [&lt;c03c6c7c&gt;] netlink_sendmsg+0x218/0x298
       [&lt;c03933c8&gt;] sock_sendmsg+0xa4/0xc0
       [&lt;c039406c&gt;] __sys_sendmsg+0x1e4/0x268
       [&lt;c0394228&gt;] sys_sendmsg+0x4c/0x70
       [&lt;c0013840&gt;] ret_fast_syscall+0x0/0x3c

-&gt; #1 (reg_mutex){+.+.+.}:
       [&lt;c008fd44&gt;] validate_chain+0xb94/0x10f0
       [&lt;c0090b68&gt;] __lock_acquire+0x8c8/0x9b0
       [&lt;c0090d40&gt;] lock_acquire+0xf0/0x114
       [&lt;c04734dc&gt;] mutex_lock_nested+0x48/0x320
       [&lt;bf28b2cc&gt;] reg_todo+0x30/0x538 [cfg80211]
       [&lt;c0059f44&gt;] process_one_work+0x2a0/0x480
       [&lt;c005a4b4&gt;] worker_thread+0x1bc/0x2bc
       [&lt;c0061148&gt;] kthread+0x98/0xa4
       [&lt;c0014af4&gt;] kernel_thread_exit+0x0/0x8

-&gt; #0 (cfg80211_mutex){+.+.+.}:
       [&lt;c008ed58&gt;] print_circular_bug+0x68/0x2cc
       [&lt;c008fb28&gt;] validate_chain+0x978/0x10f0
       [&lt;c0090b68&gt;] __lock_acquire+0x8c8/0x9b0
       [&lt;c0090d40&gt;] lock_acquire+0xf0/0x114
       [&lt;c04734dc&gt;] mutex_lock_nested+0x48/0x320
       [&lt;bf28ae00&gt;] restore_regulatory_settings+0x34/0x418 [cfg80211]
       [&lt;bf28b200&gt;] reg_timeout_work+0x1c/0x20 [cfg80211]
       [&lt;c0059f44&gt;] process_one_work+0x2a0/0x480
       [&lt;c005a4b4&gt;] worker_thread+0x1bc/0x2bc
       [&lt;c0061148&gt;] kthread+0x98/0xa4
       [&lt;c0014af4&gt;] kernel_thread_exit+0x0/0x8

other info that might help us debug this:

Chain exists of:
  cfg80211_mutex --&gt; reg_mutex --&gt; (reg_timeout).work

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock((reg_timeout).work);
                               lock(reg_mutex);
                               lock((reg_timeout).work);
  lock(cfg80211_mutex);

 *** DEADLOCK ***

2 locks held by kworker/0:2/1391:
 #0:  (events){.+.+.+}, at: [&lt;c0059e94&gt;] process_one_work+0x1f0/0x480
 #1:  ((reg_timeout).work){+.+...}, at: [&lt;c0059e94&gt;] process_one_work+0x1f0/0x480

stack backtrace:
[&lt;c001b928&gt;] (unwind_backtrace+0x0/0x12c) from [&lt;c0471d3c&gt;] (dump_stack+0x20/0x24)
[&lt;c0471d3c&gt;] (dump_stack+0x20/0x24) from [&lt;c008ef70&gt;] (print_circular_bug+0x280/0x2cc)
[&lt;c008ef70&gt;] (print_circular_bug+0x280/0x2cc) from [&lt;c008fb28&gt;] (validate_chain+0x978/0x10f0)
[&lt;c008fb28&gt;] (validate_chain+0x978/0x10f0) from [&lt;c0090b68&gt;] (__lock_acquire+0x8c8/0x9b0)
[&lt;c0090b68&gt;] (__lock_acquire+0x8c8/0x9b0) from [&lt;c0090d40&gt;] (lock_acquire+0xf0/0x114)
[&lt;c0090d40&gt;] (lock_acquire+0xf0/0x114) from [&lt;c04734dc&gt;] (mutex_lock_nested+0x48/0x320)
[&lt;c04734dc&gt;] (mutex_lock_nested+0x48/0x320) from [&lt;bf28ae00&gt;] (restore_regulatory_settings+0x34/0x418 [cfg80211])
[&lt;bf28ae00&gt;] (restore_regulatory_settings+0x34/0x418 [cfg80211]) from [&lt;bf28b200&gt;] (reg_timeout_work+0x1c/0x20 [cfg80211])
[&lt;bf28b200&gt;] (reg_timeout_work+0x1c/0x20 [cfg80211]) from [&lt;c0059f44&gt;] (process_one_work+0x2a0/0x480)
[&lt;c0059f44&gt;] (process_one_work+0x2a0/0x480) from [&lt;c005a4b4&gt;] (worker_thread+0x1bc/0x2bc)
[&lt;c005a4b4&gt;] (worker_thread+0x1bc/0x2bc) from [&lt;c0061148&gt;] (kthread+0x98/0xa4)
[&lt;c0061148&gt;] (kthread+0x98/0xa4) from [&lt;c0014af4&gt;] (kernel_thread_exit+0x0/0x8)
cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix interface combinations check</title>
<updated>2012-06-19T22:18:14+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2012-06-05T10:16:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=37a63c5c91599cc41c9e739696f5391e927ad178'/>
<id>37a63c5c91599cc41c9e739696f5391e927ad178</id>
<content type='text'>
commit 463454b5dbd8dbab6e2fc6c557329e5b811b9c32 upstream.

If a given interface combination doesn't contain
a required interface type then we missed checking
that and erroneously allowed it even though iface
type wasn't there at all. Add a check that makes
sure that all interface types are accounted for.

Reported-by: Mohammed Shafi Shajakhan &lt;mohammed@qca.qualcomm.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 463454b5dbd8dbab6e2fc6c557329e5b811b9c32 upstream.

If a given interface combination doesn't contain
a required interface type then we missed checking
that and erroneously allowed it even though iface
type wasn't there at all. Add a check that makes
sure that all interface types are accounted for.

Reported-by: Mohammed Shafi Shajakhan &lt;mohammed@qca.qualcomm.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: warn if db.txt is empty with CONFIG_CFG80211_INTERNAL_REGDB</title>
<updated>2012-05-30T23:43:22+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>mcgrof@frijolero.org</email>
</author>
<published>2012-03-23T14:23:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6d49215c67939db6a0b01205a2d35254255c4d8b'/>
<id>6d49215c67939db6a0b01205a2d35254255c4d8b</id>
<content type='text'>
commit 80007efeff0568375b08faf93c7aad65602cb97e upstream.

It has happened twice now where elaborate troubleshooting has
undergone on systems where CONFIG_CFG80211_INTERNAL_REGDB [0]
has been set but yet net/wireless/db.txt was not updated.

Despite the documentation on this it seems system integrators could
use some more help with this, so throw out a kernel warning at boot time
when their database is empty.

This does mean that the error-prone system integrator won't likely
realize the issue until they boot the machine but -- it does not seem
to make sense to enable a build bug breaking random build testing.

[0] http://wireless.kernel.org/en/developers/Regulatory/CRDA#CONFIG_CFG80211_INTERNAL_REGDB

Cc: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Cc: Youngsin Lee &lt;youngsin@qualcomm.com&gt;
Cc: Raja Mani &lt;rmani@qca.qualcomm.com&gt;
Cc: Senthil Kumar Balasubramanian &lt;senthilb@qca.qualcomm.com&gt;
Cc: Vipin Mehta &lt;vipimeht@qca.qualcomm.com&gt;
Cc: yahuan@qca.qualcomm.com
Cc: jjan@qca.qualcomm.com
Cc: vthiagar@qca.qualcomm.com
Cc: henrykim@qualcomm.com
Cc: jouni@qca.qualcomm.com
Cc: athiruve@qca.qualcomm.com
Cc: cjkim@qualcomm.com
Cc: philipk@qca.qualcomm.com
Cc: sunnykim@qualcomm.com
Cc: sskwak@qualcomm.com
Cc: kkim@qualcomm.com
Cc: mattbyun@qualcomm.com
Cc: ryanlee@qualcomm.com
Cc: simbap@qualcomm.com
Cc: krislee@qualcomm.com
Cc: conner@qualcomm.com
Cc: hojinkim@qualcomm.com
Cc: honglee@qualcomm.com
Cc: johnwkim@qualcomm.com
Cc: jinyong@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez &lt;mcgrof@frijolero.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 80007efeff0568375b08faf93c7aad65602cb97e upstream.

It has happened twice now where elaborate troubleshooting has
undergone on systems where CONFIG_CFG80211_INTERNAL_REGDB [0]
has been set but yet net/wireless/db.txt was not updated.

Despite the documentation on this it seems system integrators could
use some more help with this, so throw out a kernel warning at boot time
when their database is empty.

This does mean that the error-prone system integrator won't likely
realize the issue until they boot the machine but -- it does not seem
to make sense to enable a build bug breaking random build testing.

[0] http://wireless.kernel.org/en/developers/Regulatory/CRDA#CONFIG_CFG80211_INTERNAL_REGDB

Cc: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Cc: Youngsin Lee &lt;youngsin@qualcomm.com&gt;
Cc: Raja Mani &lt;rmani@qca.qualcomm.com&gt;
Cc: Senthil Kumar Balasubramanian &lt;senthilb@qca.qualcomm.com&gt;
Cc: Vipin Mehta &lt;vipimeht@qca.qualcomm.com&gt;
Cc: yahuan@qca.qualcomm.com
Cc: jjan@qca.qualcomm.com
Cc: vthiagar@qca.qualcomm.com
Cc: henrykim@qualcomm.com
Cc: jouni@qca.qualcomm.com
Cc: athiruve@qca.qualcomm.com
Cc: cjkim@qualcomm.com
Cc: philipk@qca.qualcomm.com
Cc: sunnykim@qualcomm.com
Cc: sskwak@qualcomm.com
Cc: kkim@qualcomm.com
Cc: mattbyun@qualcomm.com
Cc: ryanlee@qualcomm.com
Cc: simbap@qualcomm.com
Cc: krislee@qualcomm.com
Cc: conner@qualcomm.com
Cc: hojinkim@qualcomm.com
Cc: honglee@qualcomm.com
Cc: johnwkim@qualcomm.com
Cc: jinyong@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez &lt;mcgrof@frijolero.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nl80211: ensure interface is up in various APIs</title>
<updated>2012-05-11T12:14:40+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2012-04-02T08:51:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=84e1fbf5681e877ff227432918ffd4b5c6f6f228'/>
<id>84e1fbf5681e877ff227432918ffd4b5c6f6f228</id>
<content type='text'>
commit 2b5f8b0b44e17e625cfba1e7b88db44f4dcc0441 upstream.
[backported by Ben Greear]

The nl80211 handling code should ensure as much as
it can that the interface is in a valid state, it
can certainly ensure the interface is running.

Not doing so can cause calls through mac80211 into
the driver that result in warnings and unspecified
behaviour in the driver.

Reported-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2b5f8b0b44e17e625cfba1e7b88db44f4dcc0441 upstream.
[backported by Ben Greear]

The nl80211 handling code should ensure as much as
it can that the interface is in a valid state, it
can certainly ensure the interface is running.

Not doing so can cause calls through mac80211 into
the driver that result in warnings and unspecified
behaviour in the driver.

Reported-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix interface combinations check.</title>
<updated>2012-05-11T12:13:58+00:00</updated>
<author>
<name>Lukasz Kucharczyk</name>
<email>lukasz.kucharczyk@tieto.com</email>
</author>
<published>2012-04-11T12:55:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=aed107521ffe75c69f5fb6e77e7bbbadbbcc7cea'/>
<id>aed107521ffe75c69f5fb6e77e7bbbadbbcc7cea</id>
<content type='text'>
commit e55a4046dab28c440c96890bdddcf02dc8981f2d upstream.

Signed-off-by: Lukasz Kucharczyk &lt;lukasz.kucharczyk@tieto.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit e55a4046dab28c440c96890bdddcf02dc8981f2d upstream.

Signed-off-by: Lukasz Kucharczyk &lt;lukasz.kucharczyk@tieto.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem</title>
<updated>2011-12-05T16:05:44+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-12-05T16:05:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cbec0627ef1adf7afa448e8bbae3146ce910212a'/>
<id>cbec0627ef1adf7afa448e8bbae3146ce910212a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: amend regulatory NULL dereference fix</title>
<updated>2011-11-30T19:16:33+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>mcgrof@qca.qualcomm.com</email>
</author>
<published>2011-11-28T21:47:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0bac71af6e66dc798bf07d0c0dd14ee5503362f9'/>
<id>0bac71af6e66dc798bf07d0c0dd14ee5503362f9</id>
<content type='text'>
Johannes' patch for "cfg80211: fix regulatory NULL dereference"
broke user regulaotry hints and it did not address the fact that
last_request was left populated even if the previous regulatory
hint was stale due to the wiphy disappearing.

Fix user reguluatory hints by only bailing out if for those
regulatory hints where a request_wiphy is expected. The stale last_request
considerations are addressed through the previous fixes on last_request
where we reset the last_request to a static world regdom request upon
reset_regdomains(). In this case though we further enhance the effect
by simply restoring reguluatory settings completely.

Cc: stable@vger.kernel.org
Cc: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;mcgrof@qca.qualcomm.com&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Johannes' patch for "cfg80211: fix regulatory NULL dereference"
broke user regulaotry hints and it did not address the fact that
last_request was left populated even if the previous regulatory
hint was stale due to the wiphy disappearing.

Fix user reguluatory hints by only bailing out if for those
regulatory hints where a request_wiphy is expected. The stale last_request
considerations are addressed through the previous fixes on last_request
where we reset the last_request to a static world regdom request upon
reset_regdomains(). In this case though we further enhance the effect
by simply restoring reguluatory settings completely.

Cc: stable@vger.kernel.org
Cc: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;mcgrof@qca.qualcomm.com&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix race on init and driver registration</title>
<updated>2011-11-30T19:16:31+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>mcgrof@qca.qualcomm.com</email>
</author>
<published>2011-11-28T21:47:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a042994dd377d86bff9446ee76151ceb6267c9ba'/>
<id>a042994dd377d86bff9446ee76151ceb6267c9ba</id>
<content type='text'>
There is a theoretical race that if hit will trigger
a crash. The race is between when we issue the first
regulatory hint, regulatory_hint_core(), gets processed
by the workqueue and between when the first device
gets registered to the wireless core. This is not easy
to reproduce but it was easy to do so through the
regulatory simulator I have been working on. This
is a port of the fix I implemented there [1].

[1] https://github.com/mcgrof/regsim/commit/a246ccf81f059cb662eee288aa13100f631e4cc8

Cc: stable@vger.kernel.org
Cc: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;mcgrof@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a theoretical race that if hit will trigger
a crash. The race is between when we issue the first
regulatory hint, regulatory_hint_core(), gets processed
by the workqueue and between when the first device
gets registered to the wireless core. This is not easy
to reproduce but it was easy to do so through the
regulatory simulator I have been working on. This
is a port of the fix I implemented there [1].

[1] https://github.com/mcgrof/regsim/commit/a246ccf81f059cb662eee288aa13100f631e4cc8

Cc: stable@vger.kernel.org
Cc: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;mcgrof@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem</title>
<updated>2011-11-30T19:14:42+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-11-30T19:14:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3b95e9c089d932c11f9ec03f7493f02cceff04ba'/>
<id>3b95e9c089d932c11f9ec03f7493f02cceff04ba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
