1. 03 Feb, 2021 10 commits
  2. 25 Jan, 2021 1 commit
    • Ronny Meeus's avatar
      copperplate/timerobj: fix corrupted timer list. · b89eacfe
      Ronny Meeus authored
      We observe an issue that the timer-list gets corrupted resulting in an
      endless loop executed by the timer-server thread.
      
      During the processing of the timeout list, a pointer to the next timer
      to be handled is kept in the tmp stack variable.
      Just before calling the timer handler of the current timer the lock on
      the timer list is released giving other threads to change the list.
      If the timer currently referenced by tmp is deleted, we end up with an
      invalid node (next pointer pointing to itself) and this will result in
      an endless loop of the timer server.
      
      Test code is not available but I have seen this issue in our real
      production code and after applying this path, the issue is solved.
      
      The patch basically changes the timer server logic to always start
      from the beginning of the list since when a timer is processed, it is
      either removed (one-shot) or reinserted in a different location in the
      list.
      The processing of the list will stop anyhow if all timers that need
      to expire up to "now" are handled.
      Signed-off-by: default avatarRonny Meeus <ronny.meeus@gmail.com>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      b89eacfe
  3. 19 Jan, 2021 13 commits
  4. 11 Jan, 2021 8 commits
  5. 08 Jan, 2021 7 commits
  6. 17 Dec, 2020 1 commit
    • Philippe Gerum's avatar
      cobalt/intr: pipeline: IRQ management code is pipeline-specific · 38baf072
      Philippe Gerum authored
      The way we request and manage interrupts depends on the underlying
      pipeline interface.
      
      As a matter of fact, Dovetail already deals with most of the logic
      implemented by the xnintr layer, such as edge/level shared IRQs, fully
      reusing the regular genirq interface for management. IRQ handlers with
      Dovetail have regular signatures as well.
      
      For the time being, let's move the entire xnintr layer to the I-pipe
      specific section created earlier. We should be able to design the
      abstract interface to IRQ management after this layer for the most
      part, which we would connect to Dovetail eventually.
      
      No functional change is introduced.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      38baf072