The patch titled Subject: userfaultfd: fs/userfaultfd.c add more comments has been removed from the -mm tree. Its filename was userfaultfd-optimize-read-and-poll-to-be-o1-fix.patch This patch was dropped because it was folded into userfaultfd-optimize-read-and-poll-to-be-o1.patch ------------------------------------------------------ From: Andrea Arcangeli <aarcange@xxxxxxxxxx> Subject: userfaultfd: fs/userfaultfd.c add more comments Add more commentary. Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/userfaultfd.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff -puN fs/userfaultfd.c~userfaultfd-optimize-read-and-poll-to-be-o1-fix fs/userfaultfd.c --- a/fs/userfaultfd.c~userfaultfd-optimize-read-and-poll-to-be-o1-fix +++ a/fs/userfaultfd.c @@ -456,6 +456,19 @@ static ssize_t userfaultfd_ctx_read(stru * Refile this userfault from * fault_pending_wqh to fault_wqh, it's not * pending anymore after we read it. + * + * Use list_del() by hand (as + * userfaultfd_wake_function also uses + * list_del_init() by hand) to be sure nobody + * changes __remove_wait_queue() to use + * list_del_init() in turn breaking the + * !list_empty_careful() check in + * handle_userfault(). The uwq->wq.task_list + * must never be empty at any time during the + * refile, or the waitqueue could disappear + * from under us. The "wait_queue_head_t" + * parameter of __remove_wait_queue() is unused + * anyway. */ list_del(&uwq->wq.task_list); __add_wait_queue(&ctx->fault_wqh, &uwq->wq); _ Patches currently in -mm which might be from aarcange@xxxxxxxxxx are userfaultfd-linux-documentation-vm-userfaultfdtxt.patch userfaultfd-waitqueue-add-nr-wake-parameter-to-__wake_up_locked_key.patch userfaultfd-uapi.patch userfaultfd-linux-userfaultfd_kh.patch userfaultfd-add-vm_userfaultfd_ctx-to-the-vm_area_struct.patch userfaultfd-add-vm_uffd_missing-and-vm_uffd_wp.patch userfaultfd-call-handle_userfault-for-userfaultfd_missing-faults.patch userfaultfd-teach-vma_merge-to-merge-across-vma-vm_userfaultfd_ctx.patch userfaultfd-prevent-khugepaged-to-merge-if-userfaultfd-is-armed.patch userfaultfd-add-new-syscall-to-provide-memory-externalization.patch userfaultfd-change-the-read-api-to-return-a-uffd_msg.patch userfaultfd-wake-pending-userfaults.patch userfaultfd-optimize-read-and-poll-to-be-o1.patch userfaultfd-allocate-the-userfaultfd_ctx-cacheline-aligned.patch userfaultfd-solve-the-race-between-uffdio_copyzeropage-and-read.patch userfaultfd-buildsystem-activation.patch userfaultfd-activate-syscall.patch userfaultfd-uffdio_copyuffdio_zeropage-uapi.patch userfaultfd-mcopy_atomicmfill_zeropage-uffdio_copyuffdio_zeropage-preparation.patch userfaultfd-avoid-mmap_sem-read-recursion-in-mcopy_atomic.patch userfaultfd-uffdio_copy-and-uffdio_zeropage.patch userfaultfd-require-uffdio_api-before-other-ioctls.patch userfaultfd-allow-signals-to-interrupt-a-userfault.patch userfaultfd-propagate-the-full-address-in-thp-faults.patch userfaultfd-avoid-missing-wakeups-during-refile-in-userfaultfd_read.patch userfaultfd-selftest.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html