diff options
author | jhibbits <jhibbits@FreeBSD.org> | 2013-12-20 23:18:14 +0000 |
---|---|---|
committer | jhibbits <jhibbits@FreeBSD.org> | 2013-12-20 23:18:14 +0000 |
commit | fde816803b3ba9e4da0c1e6fe6a9379c83e38815 (patch) | |
tree | ecf7dc8487f9930196d1ac713522164f04759be7 /sys/cddl | |
parent | 4d1897863f30817d3e8beb6e3be1f1115402f8b5 (diff) | |
download | FreeBSD-src-fde816803b3ba9e4da0c1e6fe6a9379c83e38815.zip FreeBSD-src-fde816803b3ba9e4da0c1e6fe6a9379c83e38815.tar.gz |
Fix a couple bugs in FBT PowerPC. Clamp the size to a 'instruction size' not
'byte size', and fix a typo.
MFC after: 2 weeks
Diffstat (limited to 'sys/cddl')
-rw-r--r-- | sys/cddl/dev/fbt/fbt_powerpc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/cddl/dev/fbt/fbt_powerpc.c b/sys/cddl/dev/fbt/fbt_powerpc.c index 6706282..2b88640 100644 --- a/sys/cddl/dev/fbt/fbt_powerpc.c +++ b/sys/cddl/dev/fbt/fbt_powerpc.c @@ -219,7 +219,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx, return (0); instr = (u_int32_t *) symval->value; - limit = (u_int32_t *) (symval->value + symval->size); + limit = (u_int32_t *) (symval->value + symval->size / sizeof(u_int32_t)); for (; instr < limit; instr++) if (*instr == FBT_MFLR_R0) @@ -278,7 +278,7 @@ again: instr++; for (j = 0; j < 12 && instr < limit; j++, instr++) { - if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) | + if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) || FBT_IS_JUMP(*instr)) break; } |