Browse Source

network: fix waiting for VM network uplink

The network-uplink-wait.sh script may be called before xen-netfront
module is even loaded (by udev). In that case, `get_qubes_managed_iface`
will fail to get the interface name and the wait will be skipped.

Fix this by loading xen-netfront module explicitly (do not try to
synchronize with udev, which is tricky not knowing the device
name).
Marek Marczykowski-Górecki 3 years ago
parent
commit
d602da4ae9
1 changed files with 6 additions and 0 deletions
  1. 6 0
      init/functions

+ 6 - 0
init/functions

@@ -138,6 +138,12 @@ get_qubes_managed_iface() {
     local mac
     local qubes_iface
     mac="$(qubesdb-read /qubes-mac 2> /dev/null)"
+    if [ -z "$mac" ]; then
+        # no qubes-managed network interface
+        return
+    fi
+    # Load the module explicitly here, to avoid waiting for udev doing that
+    [ -e /sys/module/xen_netfront ] || modprobe xen-netfront || :
     qubes_iface="$(get_iface_from_mac "$mac")"
     if [ "x$qubes_iface" != "x" ]; then
         echo "$qubes_iface"