On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote: > Try to read the MAC address from the on-disk NVS file. > A non-zero MAC address is required to add an AP interface. > > Signed-off-by: Arik Nemtsov <arik@xxxxxxxxxx> > --- [...] > diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c > index eb2c3c5..a9f95c6 100644 > --- a/drivers/net/wireless/wl12xx/main.c > +++ b/drivers/net/wireless/wl12xx/main.c > @@ -3025,6 +3025,18 @@ int wl1271_register_hw(struct wl1271 *wl) > if (wl->mac80211_registered) > return 0; > > + ret = wl1271_fetch_nvs(wl); > + if (ret == 0) { > + u8 *nvs_ptr = (u8 *)wl->nvs->nvs; > + > + wl->mac_addr[0] = nvs_ptr[11]; > + wl->mac_addr[1] = nvs_ptr[10]; > + wl->mac_addr[2] = nvs_ptr[6]; > + wl->mac_addr[3] = nvs_ptr[5]; > + wl->mac_addr[4] = nvs_ptr[4]; > + wl->mac_addr[5] = nvs_ptr[3]; > + } > + > SET_IEEE80211_PERM_ADDR(wl->hw, wl->mac_addr); > > ret = ieee80211_register_hw(wl->hw); I think we need to check whether the MAC address is valid in the NVS. Also this goes a little bit against the way we are doing things in Nokia devices. In our devices we don't have different files during production, the only part that is different from one individual device to another is in a protected area. The NVS file in the file system is always the same. The one that changes is in the protected area and is passed to the driver by a special application. Also, how would this work if the hw is registered before udev is running? We need to revise the entire NVS thing. But at least for now, while we don't come up with a good and final solution, we should not be inventing new ways of setting the MAC. -- Cheers, Luca. -- 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