Bug 700159

Summary: kernel 3.0-rc2: endless stream of "Calling CRDA" messages in syslog
Product: [openSUSE] openSUSE 12.1 Reporter: Stefan Seyfried <seife>
Component: KernelAssignee: E-mail List <kernel-maintainers>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: forgotten_cNF6c1kI4S
Version: Factory   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: Third Party Developer/Partner Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Stefan Seyfried 2011-06-15 18:37:01 UTC
Since today's update to Kernel:HEAD kernel-desktop-3.0.rc2-1.1, I get the following in syslog every ~3 seconds:



[ 2967.744144] cfg80211: Calling CRDA to update world regulatory domain
[ 2967.752126] cfg80211: World regulatory domain updated:
[ 2967.752133] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 2967.752141] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 2967.752147] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 2967.752154] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 2967.752160] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 2967.752166] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 2967.752199] cfg80211: Calling CRDA for country: 97
[ 2970.896028] cfg80211: Calling CRDA to update world regulatory domain
[ 2970.899957] cfg80211: World regulatory domain updated:
[ 2970.899960] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 2970.899964] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 2970.899966] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 2970.899969] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 2970.899972] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 2970.899974] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 2970.899989] cfg80211: Calling CRDA for country: 97

It's not critical but pretty annoying ;-)

Hardware is Thinkpad X200s, 
03:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300
03:00.0 0280: 8086:4236
Comment 1 Stefan Seyfried 2011-06-16 06:34:24 UTC
I found, that "chmod -x /sbin/crda" makes this go away.

reading the code in net/wireless/reg.c

static int call_crda(const char *alpha2)
{
        if (!is_world_regdom((char *) alpha2))
                pr_info("Calling CRDA for country: %c%c\n",
                        alpha2[0], alpha2[1]);
        else
                pr_info("Calling CRDA to update world regulatory domain\n");

        /* query internal regulatory database (if it exists) */
        reg_regdb_query(alpha2);

        return kobject_uevent(&reg_pdev->dev.kobj, KOBJ_CHANGE);
}


it somehow looks like the update does not work...
Did anything change recently wrt. crda?
Comment 2 Vladimir Botka 2011-06-16 10:16:21 UTC
(In reply to comment #0)
> Since today's update to Kernel:HEAD kernel-desktop-3.0.rc2-1.1, I get the
> following in syslog every ~3 seconds:
> 
> [ 2967.744144] cfg80211: Calling CRDA to update world regulatory domain
> [ 2967.752126] cfg80211: World regulatory domain updated:
>
> Hardware is Thinkpad X200s, 
> 03:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300
> 03:00.0 0280: 8086:4236

The crda is triggered via udev [1]. Maybe to turn the cfg80211 debug on [2] could reveal why the action repeated.

[1]
/lib/udev/rules.d/85-regulatory.rules:KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/crda"

[2]
config CFG80211_REG_DEBUG
        bool "cfg80211 regulatory debugging"
        depends on CFG80211
        default n
        ---help---
          You can enable this if you want to debug regulatory changes.
          For more information on cfg80211 regulatory refer to the wireless
          wiki:

          http://wireless.kernel.org/en/developers/Regulatory
Comment 3 Stefan Seyfried 2011-06-16 13:02:27 UTC
I built cfg80211 from latest linus git with debug enabled

now I only get once:
[65625.664367] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain 
[65625.664373] cfg80211: World regulatory domain updated:
[65625.664375] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[65625.664378] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[65625.664380] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[65625.664383] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[65625.664385] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[65625.664387] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)

However, I still wonder if this is just due to my unskilled module building as the git log does not show any changes since -rc2 in net/wireless.
The changes in iwlwifi also don't look like they could have anything to do with this issue.

I'll keep an eye on it, to see if it reappears after the next update to a properly built suse kernel :-)
Comment 4 Stefan Seyfried 2011-11-10 12:28:41 UTC
This is embarassing.

I had the following in /etc/modprobe.d/99-local.conf

options cfg80211 ieee80211_regdom=EU

No idea who put it there ;-), it was from dec 20 2010.

Removing this fixes the problem instantly.

=> RESOLVED-USER_TOO_STUPID
Comment 5 Petr Ostadal 2013-03-18 13:07:35 UTC
*** Bug 744356 has been marked as a duplicate of this bug. ***