efi_loader: efi_device_path: Pass net udevice as argument

In preparation to support multiple EFI net objects, support
constructing device paths using an ethernet device different
than the default. Add a udevice argument to the device path
generation, and keep the callsites with eth_get_dev() to
preserve existing functionality.

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c
index 27fc401..ebb7f4a 100644
--- a/lib/efi_loader/efi_net.c
+++ b/lib/efi_loader/efi_net.c
@@ -952,14 +952,12 @@
 	if (r != EFI_SUCCESS)
 		goto failure_to_add_protocol;
 
-	if (net_dp)
-		r = efi_add_protocol(&netobj->header, &efi_guid_device_path,
-			       net_dp);
-	else
-		r = efi_net_set_dp("Net", NULL);
+	if (!net_dp)
+		efi_net_set_dp("Net", NULL);
+	r = efi_add_protocol(&netobj->header, &efi_guid_device_path,
+			     net_dp);
 	if (r != EFI_SUCCESS)
 		goto failure_to_add_protocol;
-
 	r = efi_add_protocol(&netobj->header, &efi_pxe_base_code_protocol_guid,
 			     &netobj->pxe);
 	if (r != EFI_SUCCESS)
@@ -1077,58 +1075,18 @@
  */
 efi_status_t efi_net_set_dp(const char *dev, const char *server)
 {
-	efi_status_t ret = EFI_SUCCESS;
-	struct efi_handler *phandler;
-	struct efi_device_path *old_net_dp, *new_net_dp;
+	efi_free_pool(net_dp);
 
-	old_net_dp = net_dp;
-	new_net_dp = NULL;
+	net_dp = NULL;
 	if (!strcmp(dev, "Net"))
-		new_net_dp = efi_dp_from_eth();
+		net_dp = efi_dp_from_eth(eth_get_dev());
 	else if (!strcmp(dev, "Http"))
-		new_net_dp = efi_dp_from_http(server);
+		net_dp = efi_dp_from_http(server, eth_get_dev());
 
-	if (!new_net_dp) {
+	if (!net_dp)
 		return EFI_OUT_OF_RESOURCES;
-	}
-
-	// If netobj is not started yet, end here.
-	if (!netobj) {
-		goto exit;
-	}
-
-	phandler = NULL;
-	efi_search_protocol(&netobj->header, &efi_guid_device_path, &phandler);
-
-	// If the device path protocol is not yet installed, install it
-	if (!phandler)
-		goto add;
-
-	// If it is already installed, try to update it
-	ret = efi_reinstall_protocol_interface(&netobj->header, &efi_guid_device_path,
-					       old_net_dp, new_net_dp);
-	if (ret != EFI_SUCCESS)
-		goto error;
-
-	net_dp = new_net_dp;
-	efi_free_pool(old_net_dp);
 
 	return EFI_SUCCESS;
-add:
-	ret = efi_add_protocol(&netobj->header, &efi_guid_device_path,
-			       new_net_dp);
-	if (ret != EFI_SUCCESS)
-		goto error;
-exit:
-	net_dp = new_net_dp;
-	efi_free_pool(old_net_dp);
-
-	return ret;
-error:
-	// Failed, restore
-	efi_free_pool(new_net_dp);
-
-	return ret;
 }
 
 /**