From nobody Tue Oct 11 14:10:43 2022 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 4MmyNz4pw7z4fngC; Tue, 11 Oct 2022 14:10:43 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4MmyNz4CTyz3mPN; Tue, 11 Oct 2022 14:10:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1665497443; 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=GpArf0TxPXIpCuWt2cWhBNWhmB0Mbsytt01mmiVFP4g=; b=hzHEyPutISrfCuJdtS8iFNf7fS+XegYfbcec26FawySZv/DPVaTIHAs49CYBj4nK69Rle1 Kua2dkyJ9TI2hDxpwE8SO3J/Haq4Wq/HZ0SSNBCRZL87U8NVyjdvnjyt33v+AuQ09YIexw UtgVxi7vaBOzhcN9128quCcCHuSZr01KXPkCDYjHqn6J0EIhuweVyYngNJfzmW7oWpUD7J HGxbENAVK/U1ETcy8duC0OHmFZ4qfr7KEaWQ3KUJZNAdUPpXspTNuPo3+7a65B7ho9ILN/ jw80hAs1I7mVwpAZ2pXBbboZg8epPkXuf8RGiy41wN2pBS7pg03gpauoMl8Jcw== 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 4MmyNz3GR7z109H; Tue, 11 Oct 2022 14:10:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 29BEAhmn022271; Tue, 11 Oct 2022 14:10:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 29BEAhfL022270; Tue, 11 Oct 2022 14:10:43 GMT (envelope-from git) Date: Tue, 11 Oct 2022 14:10:43 GMT Message-Id: <202210111410.29BEAhfL022270@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 48f10c94eb15 - stable/13 - riscv: Apply 8d7ee2047c5e to the riscv pmap 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 48f10c94eb158e05e7c9fdb5c33bbf80c2bd9136 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1665497443; 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=GpArf0TxPXIpCuWt2cWhBNWhmB0Mbsytt01mmiVFP4g=; b=aYH81PoRlpUMeCLsNgFUzDRIEbRs01YfqEsp8sKFzLuxBRZeBtaXwFTkmCOIachL9Sf5E4 LsHhRpGvOQuIrCxJC3hJGymwfALWiFUsJ5n7SpFykXQnWFBd/OyEkXpMbqxxxiMiSikFry ZiXqZvUw92oW9cfDPLa5jYVn00CX4TFgaV0/beqikcOKukGBwVUCcrkkC5XPBVCPNl7fP+ I63hrsXeeMC7BSEjzKQa93BCHTs+b2FugegjInST6PH+u5wSI9dvDZqWPbcabPthWbQI2k n9T8qHQzV37xnZPZo9H0WWvC1lT4H0HJLMArrkeeYlM3uUdT7n5PsCZXEa7llA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1665497443; a=rsa-sha256; cv=none; b=TfjRaEwKzfUp6N/QNwjF9kMdGx1lTl65Tgg9X8LShpki7P4kL2yJrFHkJ8LAfbOucfBWHX wlIYe5dMfUA3wcySikzGuDVpubEiJWErDsWCmGoqqWwg7k6o+sw6d5sb2cumlY/5JYAd3J QFSQ43Jztd2FEiwtd8bMtbyStaVf5hxqTitXXFcX+61fDOqBeWoORUm9BB0nuHbtMZDF3d wfXyPpaWOwRxzR04YsPcl7WXEi/tdIbt1aBP+eBaL2yKZpihFWcOUSCg0aMBbO5qCGqXs/ EhXS6n312AjpVN2CnLjSaYWpTiGpeGtE9je8brWAwhaWqG6bYPdv/TFC5bmVEQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=48f10c94eb158e05e7c9fdb5c33bbf80c2bd9136 commit 48f10c94eb158e05e7c9fdb5c33bbf80c2bd9136 Author: Mark Johnston AuthorDate: 2022-10-04 16:49:36 +0000 Commit: Mark Johnston CommitDate: 2022-10-11 13:36:55 +0000 riscv: Apply 8d7ee2047c5e to the riscv pmap Reviewed by: alc (cherry picked from commit d5dc278eeca341cf1b5199c7c6ba70553bbb44a0) --- sys/riscv/riscv/pmap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c index 3581708acce9..412c2484f1e8 100644 --- a/sys/riscv/riscv/pmap.c +++ b/sys/riscv/riscv/pmap.c @@ -2107,12 +2107,13 @@ pmap_pv_promote_l2(pmap_t pmap, vm_offset_t va, vm_paddr_t pa, vm_offset_t va_last; rw_assert(&pvh_global_lock, RA_LOCKED); - KASSERT((va & L2_OFFSET) == 0, - ("pmap_pv_promote_l2: misaligned va %#lx", va)); + KASSERT((pa & L2_OFFSET) == 0, + ("pmap_pv_promote_l2: misaligned pa %#lx", pa)); CHANGE_PV_LIST_LOCK_TO_PHYS(lockp, pa); m = PHYS_TO_VM_PAGE(pa); + va = va & ~L2_OFFSET; pv = pmap_pvh_remove(&m->md, pmap, va); KASSERT(pv != NULL, ("pmap_pv_promote_l2: pv for %#lx not found", va)); pvh = pa_to_pvh(pa); @@ -2757,16 +2758,14 @@ pmap_demote_l2_locked(pmap_t pmap, pd_entry_t *l2, vm_offset_t va, #if VM_NRESERVLEVEL > 0 static void -pmap_promote_l2(pmap_t pmap, pd_entry_t *l2, vm_offset_t va, +pmap_promote_l2(pmap_t pmap, pd_entry_t *l2, vm_offset_t va, vm_page_t ml3, struct rwlock **lockp) { pt_entry_t *firstl3, firstl3e, *l3, l3e; vm_paddr_t pa; - vm_page_t ml3; PMAP_LOCK_ASSERT(pmap, MA_OWNED); - va &= ~L2_OFFSET; KASSERT((pmap_load(l2) & PTE_RWX) == 0, ("pmap_promote_l2: invalid l2 entry %p", l2)); @@ -2823,7 +2822,8 @@ pmap_promote_l2(pmap_t pmap, pd_entry_t *l2, vm_offset_t va, pa += PAGE_SIZE; } - ml3 = PHYS_TO_VM_PAGE(PTE_TO_PHYS(pmap_load(l2))); + if (ml3 == NULL) + ml3 = PHYS_TO_VM_PAGE(PTE_TO_PHYS(pmap_load(l2))); KASSERT(ml3->pindex == pmap_l2_pindex(va), ("pmap_promote_l2: page table page's pindex is wrong")); if (pmap_insert_pt_page(pmap, ml3, true)) { @@ -3109,7 +3109,7 @@ validate: pmap_ps_enabled(pmap) && (m->flags & PG_FICTITIOUS) == 0 && vm_reserv_level_iffullpop(m) == 0) - pmap_promote_l2(pmap, l2, va, &lock); + pmap_promote_l2(pmap, l2, va, mpte, &lock); #endif rv = KERN_SUCCESS;