Subject: Re: [PATCH v2 15/16] wl1251: Add sysfs file address for setting permanent mac address

From: Pali Rohár <[email-masked]>
Date: Tue, 10 Dec 2013 18:52:16 +0100

On Tuesday 10 December 2013 18:49:22 Dan Williams wrote:
> On Tue, 2013-12-10 at 18:14 +0100, Pali Rohár wrote:
> > On Tuesday 10 December 2013 17:10:50 Pali Rohár wrote:
> > > On Tuesday 10 December 2013 16:49:23 Kalle Valo wrote:
> > > > Pali Rohár <[email-masked]> writes:
> > > > > Driver wl1251 generating mac address randomly at
> > > > > startup and there is no way to set permanent mac
> > > > > address via SET_IEEE80211_PERM_ADDR. This patch
> > > > > export sysfs file which can set permanent mac address
> > > > > by userspace helper program. Patch is needed for
> > > > > devices which do not store mac address in internal
> > > > > wl1251 eeprom.
> > > > > 
> > > > > Signed-off-by: Pali Rohár <[email-masked]>
> > > > 
> > > > We have ioctl() command for setting the mac address.
> > > 
> > > Really? Is there ioctl for setting permanent mac address?
> > > Can you show me it?
> > 
> > Now I looked at it again and I did not found any ioctl for
> > it. There is only ioctl cmd for getting address, not
> > setting it.
> > 
> > #define SIOCETHTOOL 0x8946
> > 
> > /* Get permanent hardware address */
> > #define ETHTOOL_GPERMADDR 0x00000020
> 
> Yeah, because it's supposed to be permanent and unchanging. 
> Which means if there was an ioctl for it, that would be
> contrary to the purpose of a permanent MAC address.
> 
> I realize the N900 stores the WiFi MAC address completely
> differently than many other systems, and that's why this
> sysfs file was created.  I don't really have a great
> converged solution for that, other than what you've currently
> got, or perhaps adding SPERMADDR to ethtool.  One thing I
> *would* like though, is a restriction on the sysfs file such
> that if the permanent MAC is already set, it cannot be set
> again.  Otherwise the permanent MAC address isn't permanent
> at all.
> 
> Dan

Maybe another way could be to use request_firmware to load address 
from userspace... Or what do you think?

-- 
Pali Rohár
[email-masked]