From nobody Wed Oct 29 20:59:16 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cxfkF1QDmz6FJZ2; Wed, 29 Oct 2025 20:59:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cxfkF0gTnz47HN; Wed, 29 Oct 2025 20:59:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761771557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zNkgilz9EXqrG8IO72pV//x2mTF8jRogfDZPPQVCU+g=; b=xbJk+qvbbUrka+BkSRwe8q3JRc/lglivT+3q9i3GXc6T9LCWueZ2SxFG49zRlr5S44prjD K8sGNJZYGhH7XLbXvDd+PEzJVvVx7mrcbTUOOaoTOeEg0i4lo7aC9DDHxNCRPtjgfdxctR /gAfBfYzRj3VWxpedVsxwVkAfNbqtm1QxWsiA7kOYeYnE6AOvKUqpDX/pfdQzx1fmALj1l 46kCcj01gJF3/m+VChuXYBgNUf3SFZ2vPuLlok+0lK/Yfb58cnYdDESDheEku5GSvKpVqv 539+aTPUNreFLi+SLIzzdYreCZIGYysRFgJhlWGrvEF5mI0DUjXPG7k1EbXNGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761771557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zNkgilz9EXqrG8IO72pV//x2mTF8jRogfDZPPQVCU+g=; b=K9fBSQt/XYqPkFnB2mIvsJHzKqDsYLU3pPfuhGepkjPB+4EAwI0o9D1dERz0MHB7ge7scM VBZWOd6mqj0tcsB6X4vwQQ6q/x+L1Zvp209Il6Ye9v0x6QnNBsDl15MzJya3+/OIPBvC45 XZkusvbDP/RVpf9Ro0Sr8zSajs3uJI4iiYsbcig5SDt4Ut52Up8xB6gbxFa69C/uX8YoMw 5JcKH5YPBfyQWhzUY/7VM/E/p1mqVotNEpZN7x0hvxBaLCaHR1IG5Xj3BCumswr/Tt+wuD l4pf1htJY9CHxW91xnlFMf4VANXgOi4cV8T7iHAvCCBOqRIvgB0uqaDgxxuhyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761771557; a=rsa-sha256; cv=none; b=t70/G3Zqci+Rgx/HqNWsYZKKc87UYqzqT1qxTOFXw7IVHjeobEnn6AGnztjbFnz6TcHD/o profmh7qiFtsnH0YTW1xAoUPb96L/+23GiSQWEDJJch0oDShWOzNg8GG07ox9cDIpiq51p 42ICQC/EHKs/n4TVGFPkwExUNB4o9zKCY3xdNfu4kh7u90k4m0uvRGncnKONJTup3iDgpw Tf2RPLJzok4H58OkSptXz6Bh75qi99eci6uc+9/QRDS9WZmvrGoCBvVEYaR1drE5jmFsWl xYvkuRNRNIBX8Vg3PsRMf9vO7L73VyOTBL5EFPbCrcVX3etv35t7nJusEYbB/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cxfkF03tqzsrQ; Wed, 29 Oct 2025 20:59:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 59TKxGTX037174; Wed, 29 Oct 2025 20:59:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59TKxG2d037171; Wed, 29 Oct 2025 20:59:16 GMT (envelope-from git) Date: Wed, 29 Oct 2025 20:59:16 GMT Message-Id: <202510292059.59TKxG2d037171@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Austin Shafer Subject: git: 03b214a35db1 - main - linuxkpi: gracefully handle page lookup failure in lkpi_vmf_insert_pfn_prot_locked List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ashafer X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 03b214a35db1ebdc7575cad8d695c65daf2817bf Auto-Submitted: auto-generated The branch main has been updated by ashafer: URL: https://cgit.FreeBSD.org/src/commit/?id=03b214a35db1ebdc7575cad8d695c65daf2817bf commit 03b214a35db1ebdc7575cad8d695c65daf2817bf Author: Austin Shafer AuthorDate: 2025-10-28 18:08:01 +0000 Commit: Austin Shafer CommitDate: 2025-10-29 20:58:41 +0000 linuxkpi: gracefully handle page lookup failure in lkpi_vmf_insert_pfn_prot_locked Currently lkpi_vmf_insert_pfn_prot_locked will check the page iter to find a usage of the page. If no page was found, it continues on to try using PHYS_TO_VM_PAGE() to get a page. Currently it does not check if a valid page was found before passing it to vm_page_busy_acquire, which can cause a kernel page fault as vm_page_busy_acquire expects a valid page pointer. This can easily be triggered while starting KDE6 in wayland mode, which many users have been reporting. With this change plasma6 starts properly in wayland mode. Sponsored by: NVIDIA PR: 288565 Reviewed by: markj, kbowling (mentor) Differential Revision: https://reviews.freebsd.org/D53412 --- sys/compat/linuxkpi/common/src/linux_page.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_page.c b/sys/compat/linuxkpi/common/src/linux_page.c index 628af17df853..9cc981b2ba43 100644 --- a/sys/compat/linuxkpi/common/src/linux_page.c +++ b/sys/compat/linuxkpi/common/src/linux_page.c @@ -345,6 +345,10 @@ retry: page = vm_page_grab_iter(vm_obj, pindex, VM_ALLOC_NOCREAT, &pages); if (page == NULL) { page = PHYS_TO_VM_PAGE(IDX_TO_OFF(pfn)); + if (page == NULL) { + pctrie_iter_reset(&pages); + return (VM_FAULT_SIGBUS); + } if (!vm_page_busy_acquire(page, VM_ALLOC_WAITFAIL)) { pctrie_iter_reset(&pages); goto retry;