Revision 4b0c7aa3 hw/petalogix_s3adsp1800_mmu.c

b/hw/petalogix_s3adsp1800_mmu.c
54 54
{
55 55
#ifdef HAVE_FDT
56 56
    void *fdt;
57
    char *path = NULL;
58
    int pathlen;
59 57
    int r;
60 58
#endif
59
    char *path;
61 60
    int fdt_size;
62 61

  
63 62
#ifdef HAVE_FDT
64 63
    /* Try the local "mb.dtb" override.  */
65 64
    fdt = load_device_tree("mb.dtb", &fdt_size);
66 65
    if (!fdt) {
67
        pathlen = snprintf(NULL, 0, "%s/%s",
68
                           bios_dir, BINARY_DEVICE_TREE_FILE) + 1;
69
        path = qemu_malloc(pathlen);
70
        snprintf(path, pathlen, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE);
71
        fdt = load_device_tree(BINARY_DEVICE_TREE_FILE, &fdt_size);
72
        free(path);
66
        path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
67
        if (path) {
68
            fdt = load_device_tree(path, &fdt_size);
69
            qemu_free(path);
70
        }
73 71
        if (!fdt)
74 72
            return 0;
75 73
    }
......
83 81
       to the kernel.  */
84 82
    fdt_size = load_image_targphys("mb.dtb", addr, 0x10000);
85 83
    if (fdt_size < 0) {
86
        fdt_size = load_image_targphys(BINARY_DEVICE_TREE_FILE, addr, 0x10000);
84
        path = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
85
        if (path) {
86
            fdt_size = load_image_targphys(path, addr, 0x10000);
87
	    qemu_free(path);
88
        }
87 89
    }
88 90

  
89 91
    if (kernel_cmdline) {

Also available in: Unified diff