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;
 }
 
 /**
