Mergr misc fixes from Andrew Morton: "11 fixes" Mostly VM fixes, one psi polling fix, and one parisc build fix. * emailed patches from Andrew Morton <akpm@linux-foundation.org>: mm/kasan: fix false positive invalid-free reports with CONFIG_KASAN_SW_TAGS=y mm/zsmalloc.c: fix race condition in zs_destroy_pool mm/zsmalloc.c: migration can leave pages in ZS_EMPTY indefinitely mm, page_owner: handle THP splits correctly userfaultfd_release: always remove uffd flags and clear vm_userfaultfd_ctx psi: get poll_work to run when calling poll syscall next time mm: memcontrol: flush percpu vmevents before releasing memcg mm: memcontrol: flush percpu vmstats before releasing memcg parisc: fix compilation errrors mm, page_alloc: move_freepages should not examine struct page of reserved memory mm/z3fold.c: fix race between migration and destruction
Showing the changes to kernel (1 of 9 files). Show all
Unified · Split
| @@ -1131,7 +1131,15 @@ static void psi_trigger_destroy(struct kref *ref) · 1130 unmodified lines | ||
| 1131 | 1131 | * deadlock while waiting for psi_poll_work to acquire trigger_lock |
| 1132 | 1132 | */ |
| 1133 | 1133 | if (kworker_to_destroy) { |
| 1134 | + /* | |
| 1135 | + * After the RCU grace period has expired, the worker | |
| 1136 | + * can no longer be found through group->poll_kworker. | |
| 1137 | + * But it might have been already scheduled before | |
| 1138 | + * that - deschedule it cleanly before destroying it. | |
| 1139 | + */ | |
| 1134 | 1140 | kthread_cancel_delayed_work_sync(&group->poll_work); |
| 1141 | + atomic_set(&group->poll_scheduled, 0); | |
| 1142 | + | |
| 1135 | 1143 | kthread_destroy_worker(kworker_to_destroy); |
| 1136 | 1144 | } |
| 1137 | 1145 | kfree(t); |