Description of problem: Assuming the following scenario, userspace's instructions at the end of one page, and the next adjacent page is not in the page table. If this userspace instruction cause #VC exception, the #VC handler may read 15 bytes from the boundary of instruction, this will leads to #PF if boundary of instruction + 15 cross the page. The #PF is unexpected because this may cause more nested #VC and even cause guest crashes. We can make #VC handler stay in atomic context when read userspace's instruction and forward to page fault handler if it's necessary to read the next adjacent page which is unmmapped. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
The PR Link: https://gitee.com/anolis/cloud-kernel/pulls/2034