Search Linux Wireless

Re: [PATCH 2/3] cfg80211: fix processing world regdomain when non modular

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wednesday, April 9, 2014, 6:33:09 PM, you wrote:

> Hey Collen, Luis,

> On Sun, Mar 16, 2014 at 9:04 PM, Colleen T <colleen@xxxxxxxxxxx> wrote:
>> On Sat, Mar 15, 2014 at 9:42 PM, Luis R. Rodriguez
>> <mcgrof@xxxxxxxxxxxxxxxx> wrote:
>>> On Sat, Mar 15, 2014 at 8:59 AM, Janusz Dziedzic
>>> <janusz.dziedzic@xxxxxxxxx> wrote:
>>>> 2014-03-15 2:03 GMT+01:00 Luis R. Rodriguez <mcgrof@xxxxxxxxxxxxxxxx>:
>>>>> On Fri, Mar 14, 2014 at 3:12 PM, Colleen T <colleen@xxxxxxxxxxx> wrote:
>>>>>> I'm on mac80211-next/master, sha is
>>>>>> 5a970df8990d173e7e4092952f2e3da1de69b27d
>>>>>
>>>>> I tried to reproduce by just merging the fixes in question onto Linus'
>>>>> tree and using radios=3 but no go. Can you provide the full kernel
>>>>> log, I'm particularly interested in what happened before. The
>>>>> COUNTRY=US on debian, which I believe you're on, should just trigger a
>>>>> regulatory domain setting to US upon initialization. Depending on how
>>>>> Debian does it this could either trigger as a module parameter or as a
>>>>> userspace event *after* the world regdom get set.
>>
>> I'm attaching a full kernel log that shows the warning being
>> triggered.  You are correct, I'm on debian.  In the attached case I
>> ran:
>> $ modprobe mac80211_hwsim radios=4
>>  I pulled the fixes onto Linus' tree and I end up with the same result.
>>

> Seems I might have found the culprit - reg_todo is called while the
> request to CRDA is in flight and the patch in question causes the
> already-in-process user-request to be handled again. Since it's the
> same regdomain as the last request (it's the last request itself), we
> get this:

> treatment = __reg_process_hint_user(user_request);
> if (treatment == REG_REQ_IGNORE ||
>    treatment == REG_REQ_ALREADY_SET) {
> kfree(user_request); <------
> return treatment;
> }

> Can you try adding the attached patch? It just replaced relevant
> kfree-s with a function that avoids freeing the last request.

> Also, in the current scheme of things, CRDA might be called twice for
> the same request in some corner cases, but that's not a problem, since
> reg_is_valid_request() will block the second set_regdom().

> Regards,
> Arik

Thanks for looking in to this .. hope that this will make it go to upstream one 
day :-)

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux