]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
Merge branch 'master' of /home/wd/git/u-boot/custodians
authorWolfgang Denk <wd@denx.de>
Fri, 21 Aug 2009 21:04:03 +0000 (23:04 +0200)
committerWolfgang Denk <wd@denx.de>
Fri, 21 Aug 2009 21:04:03 +0000 (23:04 +0200)
fs/jffs2/jffs2_1pass.c
lib_ppc/bootm.c

index 8c9e2eb426b014df7017a31039e0002474d29549..b61a6f9626567a93dc9f986ce29486c3c72b5a06 100644 (file)
@@ -1457,6 +1457,8 @@ jffs2_1pass_build_lists(struct part_info * part)
                                if (!sumptr) {
                                        putstr("Can't get memory for summary "
                                                        "node!\n");
+                                       free(buf);
+                                       jffs2_free_cache(part);
                                        return 0;
                                }
                                memcpy(sumptr + sumlen - buf_len, buf +
@@ -1478,8 +1480,11 @@ jffs2_1pass_build_lists(struct part_info * part)
 
                        if (buf_size && sumlen > buf_size)
                                free(sumptr);
-                       if (ret < 0)
+                       if (ret < 0) {
+                               free(buf);
+                               jffs2_free_cache(part);
                                return 0;
+                       }
                        if (ret)
                                continue;
 
@@ -1592,8 +1597,11 @@ jffs2_1pass_build_lists(struct part_info * part)
                                       break;
 
                                if (insert_node(&pL->frag, (u32) part->offset +
-                                               ofs) == NULL)
+                                               ofs) == NULL) {
+                                       free(buf);
+                                       jffs2_free_cache(part);
                                        return 0;
+                               }
                                if (max_totlen < node->totlen)
                                        max_totlen = node->totlen;
                                break;
@@ -1619,8 +1627,11 @@ jffs2_1pass_build_lists(struct part_info * part)
                                if (! (counterN%100))
                                        puts ("\b\b.  ");
                                if (insert_node(&pL->dir, (u32) part->offset +
-                                               ofs) == NULL)
+                                               ofs) == NULL) {
+                                       free(buf);
+                                       jffs2_free_cache(part);
                                        return 0;
+                               }
                                if (max_totlen < node->totlen)
                                        max_totlen = node->totlen;
                                counterN++;
index 0d702bf25178670c2689006d17083c6fa2452ee3..83857490f3501f023e04b71a52eaf1c15273fe8c 100644 (file)
@@ -94,6 +94,7 @@ static void boot_jump_linux(bootm_headers_t *images)
 #endif
 
                debug ("   Booting using OF flat tree...\n");
+               WATCHDOG_RESET ();
                (*kernel) ((bd_t *)of_flat_tree, 0, 0, EPAPR_MAGIC,
                           CONFIG_SYS_BOOTMAPSZ, 0, 0);
                /* does not return */
@@ -117,6 +118,7 @@ static void boot_jump_linux(bootm_headers_t *images)
                bd_t *kbd = images->kbd;
 
                debug ("   Booting using board info...\n");
+               WATCHDOG_RESET ();
                (*kernel) (kbd, initrd_start, initrd_end,
                           cmd_start, cmd_end, 0, 0);
                /* does not return */