diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2007-12-04 11:49:43 +1100 |
---|---|---|
committer | Jon Loeliger <jdl@freescale.com> | 2007-12-04 07:27:08 -0600 |
commit | 2d72816ccfdcfd8039ab0b8883f9eeac895984bb (patch) | |
tree | 35fce1e48325e1bc495d07e5b209cbcc48ac1e24 /checks.c | |
parent | 2b7dc8dce549ad72ad437b254bf756d7ba4c2a5a (diff) | |
download | dtc-2d72816ccfdcfd8039ab0b8883f9eeac895984bb.tar.gz |
dtc: Fix uninitialized use of structure_ok
My rework of the tree checking code introduced a potentially nasty bug
- it uses the structure_ok variable uninitialized. This patch fixes
the problem. It's a fairly ugly bandaid approach, but the ugly will
disappear once future patches have folded the semantic checks into the
new framework.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'checks.c')
-rw-r--r-- | checks.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -270,8 +270,12 @@ static struct check *check_table[] = { &phandle_references, }; -void process_checks(int force, struct node *dt) +int check_semantics(struct node *dt, int outversion, int boot_cpuid_phys); + +void process_checks(int force, struct boot_info *bi, + int checkflag, int outversion, int boot_cpuid_phys) { + struct node *dt = bi->dt; int i; int error = 0; @@ -292,6 +296,16 @@ void process_checks(int force, struct node *dt) "output forced\n"); } } + + if (checkflag) { + if (error) { + fprintf(stderr, "Warning: Skipping semantic checks due to structural errors\n"); + } else { + if (!check_semantics(bi->dt, outversion, + boot_cpuid_phys)) + fprintf(stderr, "Warning: Input tree has semantic errors\n"); + } + } } /* |