anbox-modules/binder
Anthony 96d5d960fe binder: fix NULL lock dereference in shrinker on Linux >= 6.13
Since Linux 6.13 the list_lru walk callback no longer receives the lru
lock; it lives in struct list_lru_one. binder_alloc_free_page_no_lock()
passes NULL as the lock, so binder_alloc_free_page() ends up calling
spin_unlock(NULL) as soon as kswapd runs the binder shrinker:

  BUG: kernel NULL pointer dereference, address: 0000000000000000
  RIP: 0010:_raw_spin_unlock+0x9/0x40
  Call Trace:
   binder_alloc_free_page+0xe1/0x360 [binder_linux]
   __list_lru_walk_one+0xdf/0x230
   list_lru_walk_node+0x52/0x230
   binder_shrink_scan+0xa7/0x100 [binder_linux]
   do_shrink_slab+0x154/0x3a0
   ...
   kswapd+0x1e2/0x360

The machine then hangs, typically under memory pressure, right after
resuming from suspend, or while writing a hibernation image.

Fall back to &lru->lock when no lock is passed, as upstream binder does.
2026-10-03 00:02:40 +02:00
..
binder_alloc.c binder: fix NULL lock dereference in shrinker on Linux >= 6.13 2026-10-03 00:02:40 +02:00
binder_alloc.h Fix for kernel 6.13+ 2025-08-01 07:22:20 +02:00
binder_internal.h Update binder to the latest version 2021-09-26 18:54:51 +02:00
binder_trace.h Update binder to the latest version 2021-09-26 18:54:51 +02:00
binder.c Fix for kernel 6.14+ 2025-08-01 07:22:20 +02:00
binder.h Update binder to the latest version 2021-09-26 18:54:51 +02:00
binderfs.c Fix for Linux 6.19 2026-03-30 20:20:21 +02:00
compat_version.h fix for RHEL 10.1 2026-03-30 19:26:13 +02:00
deps.c Fixes for kernel 6.8 2024-02-10 08:49:38 +01:00
deps.h Fix: remove the redundant header inclusion 2026-07-07 21:27:36 +02:00
dkms.conf Import kernel module source from original Anbox repository 2018-06-08 17:20:21 +02:00
Makefile Update binder to the latest version 2021-09-26 18:54:51 +02:00