]> git.sur5r.net Git - u-boot/blobdiff - libfdt/fdt_sw.c
i2c: fix dangling comment in do_i2c_mw()
[u-boot] / libfdt / fdt_sw.c
index 698329e0ccaf8f94d2e333b277a78ab3dcff9adc..55ebebf1eb20e8c7f9200881f99ecf03632db9a3 100644 (file)
@@ -70,7 +70,7 @@ static int _fdt_sw_check_header(void *fdt)
                        return err; \
        }
 
-static void *_fdt_grab_space(void *fdt, int len)
+static void *_fdt_grab_space(void *fdt, size_t len)
 {
        int offset = fdt_size_dt_struct(fdt);
        int spaceleft;
@@ -82,7 +82,7 @@ static void *_fdt_grab_space(void *fdt, int len)
                return NULL;
 
        fdt_set_size_dt_struct(fdt, offset + len);
-       return fdt_offset_ptr_w(fdt, offset, len);
+       return _fdt_offset_ptr_w(fdt, offset);
 }
 
 int fdt_create(void *buf, int bufsize)
@@ -237,18 +237,17 @@ int fdt_finish(void *fdt)
        while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
                if (tag == FDT_PROP) {
                        struct fdt_property *prop =
-                               fdt_offset_ptr_w(fdt, offset, sizeof(*prop));
+                               _fdt_offset_ptr_w(fdt, offset);
                        int nameoff;
 
-                       if (! prop)
-                               return -FDT_ERR_BADSTRUCTURE;
-
                        nameoff = fdt32_to_cpu(prop->nameoff);
                        nameoff += fdt_size_dt_strings(fdt);
                        prop->nameoff = cpu_to_fdt32(nameoff);
                }
                offset = nextoffset;
        }
+       if (nextoffset < 0)
+               return nextoffset;
 
        /* Finally, adjust the header */
        fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));