Changeset 6d9d7b1 in rtems-libbsd for freebsd/sys/sys/callout.h


Ignore:
Timestamp:
Jul 26, 2018, 12:12:46 PM (15 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
c1e05b9ea378b2971e3d7704779112b4bc4296da, 4a77611a223ea883fb548679b516d326a020d447
Children:
e37f03e
Parents:
3df89c0
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/sys/callout.h

    r3df89c0 r6d9d7b1  
    4949#define CALLOUT_DFRMIGRATION    0x0040 /* callout in deferred migration mode */
    5050#define CALLOUT_PROCESSED       0x0080 /* callout in wheel or processing list? */
     51#ifndef __rtems__
    5152#define CALLOUT_DIRECT          0x0100 /* allow exec from hw int context */
     53#endif /* __rtems__ */
    5254
    5355#define C_DIRECT_EXEC           0x0001 /* direct execution of callout */
Note: See TracChangeset for help on using the changeset viewer.