]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
fix: E1000 rx_thread scheduling — move sched_enqueue_ready outside sem lock
authorTulio A M Mendes <[email protected]>
Sun, 15 Feb 2026 01:22:20 +0000 (22:22 -0300)
committerTulio A M Mendes <[email protected]>
Sun, 15 Feb 2026 01:22:20 +0000 (22:22 -0300)
commitbf9d339bdd1e630d9bf510459b1809130944e558
tree835d406456a8deff571b7915caa44e63d7682126
parentcc87dd804aed2968c66bcf7e28a0e271c00738fe
fix: E1000 rx_thread scheduling — move sched_enqueue_ready outside sem lock

- ksem_signal now calls sched_enqueue_ready after releasing the
  semaphore spinlock, avoiding lock-order issues when called from
  IRQ context (sched_enqueue_ready acquires sched_lock internally)
- Prevents potential deadlock: IRQ → ksem_signal → sched_lock
  while schedule() already holds sched_lock
- 35/35 smoke tests pass, cppcheck clean
src/kernel/sync.c