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