Search Linux Wireless

Re: [PATCH] Add module parameter to override regioncode on libertas

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

 



On Mon, 30 Jun 2008, John W. Linville wrote:
> On Mon, Jun 30, 2008 at 08:36:56AM +0200, Johan Adolfsson wrote:
> > Resending to linux-wireless after positive feedback on libertas-dev.
> > 
> > Attached is a patch against the 2.6.25 driver that adds a 
> > module parameter called "regioncode" to set the region code
> > in the libertas driver.
> > 
> > Hope the format is ok.
> > Signed-off-by: Johan.Adolfsson@xxxxxxxx
> 
> Anyone want to offer an opinion on how this (overriding the region
> code from the hardware) differs in effect from the patch that disabled
> all regulatory controls on mac80211 devices?
> 
> >From what I understand about regulatory practices, it seems
> irresponsible to allow a regulatory setting embedded in a device's
> ROM to be so easily overridden?

IMO, it is actually the right thing to do.  We should just plain ignore
EEPROM regulatory domain information (not antenna gain and other data, just
the "where in the world the card is" data) in the general case, except maybe
if you want to use as a last resort default.

Let me explain my reasoning through an example:  I live in Brazil.  It is
extremely common to get crippled wireless devices here, because we get
paired up with the USA and rest of the North, Central and South Americas by
some very big vendors in one big regulatory domain.  That's annoying, and I
have been left without connectivity more than once when I was in a hotzone
operating in channel 13 (which has *exactly* the same restrictions for usage
as those for channels 1-12 in Brazil), but my card thought channel 13 was
illegal to operate at.

Now I get my trusty laptop with the EEPROM-based regdomain driver, and
travel to somewhere where the channel overlap with the Americas regdomain
the vendor used is such that the card can actually operate outside of the
requirements for the local government.   If I am lucky, it just won't allow
me to talk to everyone like what happens in Brazil.  If I am not, I could be
breaking the law.

Where, in the entire scenario above, was the regulatory information in the
EEPROM useful to me?  NEVER.  It was a hindrance in every step.

We live in a small world.  Regulatory information in EEPROMs is something
that just plain doesn't work well in the general case for any mobile
hardware that you're going to travel with.  Heck, in most cases it doesn't
work that well even if you are NOT going to travel with, given the corners
the vendors cut out of their regulatory domain tables...

The whole idea of EEPROM-based selection of a regulatory domains is a failed
concept.  It cannot be fixed, so let's get rid of it.  We can do better.  

I'd rather I could tell the system "I am in country foo", and it would apply
all the regulatory information for country foo correctly.  That's the way to
go, since the system can't find out where it is automatically (but userspace
could, actually, if given a sophisticated world map and (GPS or something
else) geo-location feed).

And, if we have devices that are exceptions (and I bet we do) and must be
always locked to some specific regulatory domain, we deal with it on the
drivers of these devices, instead of causing issues for everyone else.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
--
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 Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux