diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-07-26 14:12:46 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-07-26 14:12:46 +0200 |
commit | 6d9d7b195621ffda676eda0154ebb8ee24dc3186 (patch) | |
tree | ffec06408cf1edbf84b9fcee7e8262388dbafab0 /freebsd/sys/sys | |
parent | selectpollkqueue01: Invalidate file descriptor (diff) | |
download | rtems-libbsd-6d9d7b195621ffda676eda0154ebb8ee24dc3186.tar.bz2 |
Critical bug fix for callouts
FreeBSD has two callout executors, one in software and one in hardware
interrupt context. In libbsd, all callouts are executed by the timer
server. Entirely remove the different execution contexts for libbsd.
Previously, this was not properly done which could result an invalid
callout_drain() sequence leading to system memory corruption.
Diffstat (limited to 'freebsd/sys/sys')
-rw-r--r-- | freebsd/sys/sys/callout.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/freebsd/sys/sys/callout.h b/freebsd/sys/sys/callout.h index b219052f..eee68843 100644 --- a/freebsd/sys/sys/callout.h +++ b/freebsd/sys/sys/callout.h @@ -48,7 +48,9 @@ #define CALLOUT_SHAREDLOCK 0x0020 /* callout lock held in shared mode */ #define CALLOUT_DFRMIGRATION 0x0040 /* callout in deferred migration mode */ #define CALLOUT_PROCESSED 0x0080 /* callout in wheel or processing list? */ +#ifndef __rtems__ #define CALLOUT_DIRECT 0x0100 /* allow exec from hw int context */ +#endif /* __rtems__ */ #define C_DIRECT_EXEC 0x0001 /* direct execution of callout */ #define C_PRELBITS 7 |