shill: wimax: Obtain MAC address after WiMax device DBus object appears.
BUG=chrome-os-partner:10674
TEST=Tested with corresponding changes in wimax-manager and verified
that shill obtains the correct MAC address of the WiMAX device the
system resumes from suspend.
Change-Id: I762681f0cbcf77685e4bcd9c55fe0ef0d5fc3ab6
Reviewed-on: https://gerrit.chromium.org/gerrit/35254
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/device_info.cc b/device_info.cc
index 482349f..975d44d 100644
--- a/device_info.cc
+++ b/device_info.cc
@@ -376,8 +376,8 @@
<< " -- notifying ModemInfo.";
// The MAC address provided by RTNL is not reliable for Gobi 2K modems.
- // Clear it here, and it will be fetched from the kernel is
- // GetMacAddress().
+ // Clear it here, and it will be fetched from the kernel in
+ // GetMACAddress().
infos_[interface_index].mac_address.Clear();
manager_->modem_info()->OnDeviceInfoAvailable(link_name);
break;
@@ -402,6 +402,12 @@
SLOG(Device, 2) << "WiMax link " << link_name
<< " at index " << interface_index
<< " -- notifying WiMaxProvider.";
+ // The MAC address provided by RTNL may not be the final value as the
+ // WiMAX device may change the address after initialization. Clear it
+ // here, and it will be fetched from the kernel when
+ // WiMaxProvider::CreateDevice() is called after the WiMAX device DBus
+ // object is created by the WiMAX manager daemon.
+ infos_[interface_index].mac_address.Clear();
manager_->wimax_provider()->OnDeviceInfoAvailable(link_name);
break;
case Technology::kPPP: