From 698ba577565a1484600cf605097904c9c974d49e Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Sun, 27 May 2018 08:45:28 -0700 Subject: [PATCH] kernel - Fix rare pmap_scan_callback() panic * Fix a panic where pmap_scan_callback() can sometimes call pv_put() with a NULL pd_pv. --- sys/platform/pc64/x86_64/pmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/platform/pc64/x86_64/pmap.c b/sys/platform/pc64/x86_64/pmap.c index 3d4f621d9d..02b58dc4f9 100644 --- a/sys/platform/pc64/x86_64/pmap.c +++ b/sys/platform/pc64/x86_64/pmap.c @@ -4668,8 +4668,10 @@ kernel_skip: pte_pv = pv_get_try(pmap, pmap_pte_pindex(sva), &pte_placemark, &error); if (error) { - pv_put(pd_pv); /* lock order */ - pd_pv = NULL; + if (pd_pv) { + pv_put(pd_pv); /* lock order */ + pd_pv = NULL; + } if (pt_pv) { pv_put(pt_pv); /* lock order */ pt_pv = NULL; -- 2.41.0