arch-x86: Don't free PTW state with inflight requests
If a page table walk is squashed, the walker state is being deleted
in the squash code. If there are in flight requests, the deleted
walker state values may be clobbered, leading to undefined behavior.
This adds a squashed boolean to the walker state which is set if a
walk is squashed while requests are still in flight. When packets
for the in flight request return, we check if the walk was squashed
and return that the walk is complete once the number of in flight
requests reaches zero. The walker state is then freed by the PTW.
Reviewed-by: Jason Lowe-Power <email@example.com>
Maintainer: Jason Lowe-Power <firstname.lastname@example.org>
Tested-by: kokoro <email@example.com>
2 files changed