diff options
author | rwatson <rwatson@FreeBSD.org> | 2015-03-05 07:40:41 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2015-03-05 07:40:41 +0000 |
commit | d81f712ba9186462357be59602c46a6b0f81e1bf (patch) | |
tree | 4e4cd6bd556b92d1eed0f185e170acc7f42359a3 | |
parent | 1686d13fd74e60d6c7c4f15eb3a9d227b6f2fadc (diff) | |
download | FreeBSD-src-d81f712ba9186462357be59602c46a6b0f81e1bf.zip FreeBSD-src-d81f712ba9186462357be59602c46a6b0f81e1bf.tar.gz |
Don't all DTrace's FBT on ARM to instrument undefinedinstruction(), as
this would lead to DTrace reentrance.
Sponsored by: DARPA, AFRL
-rw-r--r-- | sys/cddl/dev/fbt/arm/fbt_isa.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/cddl/dev/fbt/arm/fbt_isa.c b/sys/cddl/dev/fbt/arm/fbt_isa.c index 99fe067..c6bc0f0 100644 --- a/sys/cddl/dev/fbt/arm/fbt_isa.c +++ b/sys/cddl/dev/fbt/arm/fbt_isa.c @@ -105,6 +105,13 @@ fbt_provide_module_function(linker_file_t lf, int symindx, if (name[0] == '_' && name[1] == '_') return (0); + /* + * Architecture-specific exclusion list, largely to do with FBT trap + * processing, to prevent reentrance. + */ + if (strcmp(name, "undefinedinstruction") == 0) + return (0); + instr = (uint32_t *)symval->value; limit = (uint32_t *)(symval->value + symval->size); |