Search Linux Wireless

Re: [PATCH v9 2/3] cfg80211: Add API to change the indoor regulatory setting

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

 



On Wed, Mar 04, 2015 at 10:37:35AM +0000, Peer, Ilan wrote:
> 
> > -----Original Message-----
> > From: Luis R. Rodriguez [mailto:mcgrof@xxxxxxxx]
> > Sent: Monday, March 02, 2015 23:23
> > To: Peer, Ilan
> > Cc: linux-wireless@xxxxxxxxxxxxxxx; ArikX Nemtsov
> > Subject: Re: [PATCH v9 2/3] cfg80211: Add API to change the indoor
> > regulatory setting
> > 
> > On Sun, Mar 01, 2015 at 01:02:28AM -0500, Ilan Peer wrote:
> > > diff --git a/net/wireless/reg.c b/net/wireless/reg.c index
> > > c24c8bf..f88d512 100644
> > > --- a/net/wireless/reg.c
> > > +++ b/net/wireless/reg.c
> > > @@ -128,9 +128,12 @@ static int reg_num_devs_support_basehint;
> > >   * State variable indicating if the platform on which the devices
> > >   * are attached is operating in an indoor environment. The state variable
> > >   * is relevant for all registered devices.
> > > - * (protected by RTNL)
> > >   */
> > >  static bool reg_is_indoor;
> > > +static spinlock_t reg_indoor_lock;
> > > +
> > > +/* Used to track the userspace process controlling the indoor setting
> > > +*/ static u32 reg_is_indoor_portid;
> > >
> > >  static const struct ieee80211_regdomain *get_cfg80211_regdom(void)  {
> > > @@ -2288,15 +2291,52 @@ int regulatory_hint_user(const char *alpha2,
> > >  	return 0;
> > >  }
> > >
> > > -int regulatory_hint_indoor_user(void)
> > > +int regulatory_hint_indoor(bool is_indoor, u32 portid)
> > >  {
> > > +	spin_lock(&reg_indoor_lock);
> > > +
> > > +	/* Other user space processes cannot override the current owner */
> > > +	if (reg_is_indoor_portid && reg_is_indoor_portid != portid) {
> > > +		spin_unlock(&reg_indoor_lock);
> > > +		return -EPERM;
> > > +	}
> > 
> > I am not satisfied with this solution to conflict. I don't want to think about the
> > solution to this for you -- please address the conflicts with sensible solutions.
> > 
> 
> We could always allow the any user space process to set indoor=0, i.e.,
> indoor=1 is allowed iff all user space process agree on it.

That makes sense if for indoor we tend to have a more liberal
regulatory settings. Do we know this for sure? That is, are
we more restrictive outdoors? Does that vary by country?

> > > +
> > > +	if (reg_is_indoor == is_indoor) {
> > > +		spin_unlock(&reg_indoor_lock);
> > > +		return 0;
> > > +	}
> > 
> > For instance this is a solution to agreement, but yet the above only allows for
> > one wiphy to set this setting and limiting the wireless core. That's rather silly.
> > We've addressed bigger conflicts than this for regulatory -- I have confidence
> > you can address this well.
> 
> This should not really be wiphy specific.

Sorry I meant supplicant specific.

 Luis
--
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