Changeset d7c7d6e in rtems-libbsd


Ignore:
Timestamp:
Dec 20, 2018, 9:31:35 AM (18 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
d38dbbe18e5315bf69a7c3916d71ef3838d4c20d, 4fad914cee0d3c8e148420b0f74cd4ec8a138569
Children:
736d651
Parents:
91566dd
git-author:
Sebastian Huber <sebastian.huber@…> (12/20/18 09:31:35)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/20/18 09:33:34)
Message:

Fix locking issue in epoch_sysinit()

The _Watchdog_Per_CPU_insert_ticks() assumes that interrupts are
disabled.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rtemsbsd/rtems/rtems-kernel-epoch.c

    r91566dd rd7c7d6e  
    9595
    9696        epcpu = __containerof(wdg, struct epoch_pcpu, wdg);
     97
    9798        _ISR_Local_disable(level);
    9899        _Watchdog_Per_CPU_insert_ticks(&epcpu->wdg,
     
    155156                Per_CPU_Control *cpu;
    156157                struct epoch_pcpu *epcpu;
     158                ISR_Level level;
    157159
    158160                cpu = _Per_CPU_Get_by_index(cpu_index);
     
    161163                _Watchdog_Preinitialize(&epcpu->wdg, cpu);
    162164                _Watchdog_Initialize(&epcpu->wdg, epoch_watchdog);
     165                _ISR_Local_disable(level);
    163166                _Watchdog_Per_CPU_insert_ticks(&epcpu->wdg, cpu, 1);
     167                _ISR_Local_enable(level);
    164168
    165169                rtems_interrupt_server_request_initialize(cpu_index,
Note: See TracChangeset for help on using the changeset viewer.