]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Weaken assertions in pmap_l1_to_l2() and pmap_l2_to_l3().
authorMark Johnston <markj@FreeBSD.org>
Mon, 21 Sep 2020 22:19:21 +0000 (22:19 +0000)
committerMark Johnston <markj@FreeBSD.org>
Mon, 21 Sep 2020 22:19:21 +0000 (22:19 +0000)
commita9cf0eebb37c0ad5c3811e5e40d6730916a20767
treef75a47b3fab68a9f242560f5e179c8414cd7c040
parent26a3bf76c95f6a19edb63dca9a7f600ca01bcf23
Weaken assertions in pmap_l1_to_l2() and pmap_l2_to_l3().

pmap_update_entry() will temporarily clear the valid bit of page table
entries in order to satisfy the arm64 pmap's break-before-make
constraint.  pmap_kextract() may operate concurrently on kernel page
table pages, introducing windows where the assertions added in r365879
may fail incorrectly since they implicitly assert that the valid bit is
set.  Modify the assertions to handle this.

Reviewed by: andrew, mmel (previous version)
Reviewed by: alc, kib
Reported by: mmel, scottph
MFC with: r365879
sys/arm64/arm64/pmap.c