diff options
author | William A. Kennington III <wak@google.com> | 2022-05-03 03:05:20 +0300 |
---|---|---|
committer | William A. Kennington III <wak@google.com> | 2022-05-04 19:54:43 +0300 |
commit | 882921cf6d576d3ae9f62bfa1a53a83002dc41b8 (patch) | |
tree | f6dca78ef173f42a734c2370f6edf3d7a4e8db75 | |
parent | 0fb0b73ae7fc61be89db64e8735a654d44c8b49a (diff) | |
download | openbmc-882921cf6d576d3ae9f62bfa1a53a83002dc41b8.tar.xz |
meta-google: google-usb-network: Retry renaming device
Sometimes our device rename races with networkd bringing it up. Try a
few times to rename until we succeed.
Change-Id: I9eee947bc0a38c29839efe8e5e56a14c73b16b2c
Signed-off-by: William A. Kennington III <wak@google.com>
-rwxr-xr-x | meta-google/recipes-google/networking/google-usb-network/usb_network.sh | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/meta-google/recipes-google/networking/google-usb-network/usb_network.sh b/meta-google/recipes-google/networking/google-usb-network/usb_network.sh index ba271b7cf9..ec9c2cf559 100755 --- a/meta-google/recipes-google/networking/google-usb-network/usb_network.sh +++ b/meta-google/recipes-google/networking/google-usb-network/usb_network.sh @@ -95,13 +95,16 @@ EOF ln -s "${func_dir}" "${config_dir}" || return echo "${BIND_DEVICE}" >${gadget_dir}/UDC || return - local ifname - ifname="$(<"${func_dir}"/ifname)" || return - if [ "${IFACE_NAME}" != "$ifname" ]; then - # We don't care if downing the interface fails, only the rename - ip link set dev "$ifname" down || true - ip link set dev "$ifname" name "${IFACE_NAME}" || return - fi + # Try to reconfigure a few times in case we race with systemd-networkd + local start=$SECONDS + while (( SECONDS - start < 5 )); do + local ifname + ifname="$(<"${func_dir}"/ifname)" || return + [ "${IFACE_NAME}" = "$ifname" ] && break + ip link set dev "$ifname" down && \ + ip link set dev "$ifname" name "${IFACE_NAME}" && break + sleep 1 + done ip link set dev "$IFACE_NAME" up || return } |