Return-path: Received: from mail-la0-f48.google.com ([209.85.215.48]:50016 "EHLO mail-la0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755062AbaCOBEM (ORCPT ); Fri, 14 Mar 2014 21:04:12 -0400 Received: by mail-la0-f48.google.com with SMTP id gf5so2235149lab.21 for ; Fri, 14 Mar 2014 18:04:11 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1393376982-28276-1-git-send-email-mcgrof@do-not-panic.com> <1393376982-28276-3-git-send-email-mcgrof@do-not-panic.com> <1393852248.10039.5.camel@jlt4.sipsolutions.net> From: "Luis R. Rodriguez" Date: Fri, 14 Mar 2014 18:03:50 -0700 Message-ID: (sfid-20140315_020416_241234_3E04D4E6) Subject: Re: [PATCH 2/3] cfg80211: fix processing world regdomain when non modular To: Colleen T Cc: Johannes Berg , linux-wireless , Sander Eikelenboom Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Fri, Mar 14, 2014 at 3:12 PM, Colleen T 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. The radios=3 alone would not do anything other than add new radios so I see no contention on the last_request by increasing or decreasing that. last_request is also protected by rtnl and although I was considering a possible race against processing the same last_request twice if you see how we call reg_process_pending_hints() on reg_todo() its protected by rtnl_lock() so I'm a bit puzzled as to how this is being triggered as those operations should be atomic. The other corner case I thought of was that for userspace requests which sets a timeout, but our when the timeout hits we also rtnl_lock() under reg_timeout_work(). The other corner I thought of was when we reset_regdomains() but all callers are rtnl_lock()'d. This is also the same for callers of set_regdom(). Do you get different results if you reduce the number of radios? If so where's the trigger point? Luis