]> 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)
commit3edd198867cf60bce29343ca096df08f20eff3ec
treefebf147d719e6cb56d874cd37fc5fce1c6e348f2
parent147a1b521bc2649c498b3f85d671c9ec1533cf0c
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