diff --git a/device_tree.c b/device_tree.c
index 4fc0781..e213323 100644
--- a/device_tree.c
+++ b/device_tree.c
@@ -25,34 +25,35 @@
 
 #include <libfdt.h>
 
-void *load_device_tree(const char *filename_path, void *load_addr)
+void *load_device_tree(const char *filename_path, int *sizep)
 {
-    int dt_file_size;
+    int dt_size;
     int dt_file_load_size;
     int new_dt_size;
     int ret;
-    void *dt_file = NULL;
-    void *fdt;
+    void *fdt = NULL;
 
-    dt_file_size = get_image_size(filename_path);
-    if (dt_file_size < 0) {
+    *sizep = 0;
+    dt_size = get_image_size(filename_path);
+    if (dt_size < 0) {
         printf("Unable to get size of device tree file '%s'\n",
             filename_path);
         goto fail;
     }
 
+    /* Expand to 2x size to give enough room for manipulation.  */
+    dt_size *= 2;
     /* First allocate space in qemu for device tree */
-    dt_file = qemu_mallocz(dt_file_size);
+    fdt = qemu_mallocz(dt_size);
 
-    dt_file_load_size = load_image(filename_path, dt_file);
+    dt_file_load_size = load_image(filename_path, fdt);
+    if (dt_file_load_size < 0) {
+        printf("Unable to open device tree file '%s'\n",
+               filename_path);
+        goto fail;
+    }
 
-    /* Second we place new copy of 2x size in guest memory
-     * This give us enough room for manipulation.
-     */
-    new_dt_size = dt_file_size * 2;
-
-    fdt = load_addr;
-    ret = fdt_open_into(dt_file, fdt, new_dt_size);
+    ret = fdt_open_into(fdt, fdt, dt_size);
     if (ret) {
         printf("Unable to copy device tree in memory\n");
         goto fail;
@@ -64,12 +65,11 @@
             filename_path);
         goto fail;
     }
-    /* free qemu memory with old device tree */
-    qemu_free(dt_file);
+    *sizep = dt_size;
     return fdt;
 
 fail:
-    qemu_free(dt_file);
+    qemu_free(fdt);
     return NULL;
 }
 
