Patch "KVM: selftests: riscv: Set PTE A and D bits in VS-stage page table" has been added to the 5.17-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    KVM: selftests: riscv: Set PTE A and D bits in VS-stage page table

to the 5.17-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kvm-selftests-riscv-set-pte-a-and-d-bits-in-vs-stage.patch
and it can be found in the queue-5.17 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5ae1660210b203e3a60128d14e1f0bfcf07d992f
Author: Anup Patel <apatel@xxxxxxxxxxxxxxxx>
Date:   Sat Apr 9 09:15:44 2022 +0530

    KVM: selftests: riscv: Set PTE A and D bits in VS-stage page table
    
    [ Upstream commit fac3725364397f9a40a101f089b86ea655a58d06 ]
    
    Supporting hardware updates of PTE A and D bits is optional for any
    RISC-V implementation so current software strategy is to always set
    these bits in both G-stage (hypervisor) and VS-stage (guest kernel).
    
    If PTE A and D bits are not set by software (hypervisor or guest)
    then RISC-V implementations not supporting hardware updates of these
    bits will cause traps even for perfectly valid PTEs.
    
    Based on above explanation, the VS-stage page table created by various
    KVM selftest applications is not correct because PTE A and D bits are
    not set. This patch fixes VS-stage page table programming of PTE A and
    D bits for KVM selftests.
    
    Fixes: 3e06cdf10520 ("KVM: selftests: Add initial support for RISC-V
    64-bit")
    Signed-off-by: Anup Patel <apatel@xxxxxxxxxxxxxxxx>
    Tested-by: Mayuresh Chitale <mchitale@xxxxxxxxxxxxxxxx>
    Signed-off-by: Anup Patel <anup@xxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/kvm/include/riscv/processor.h b/tools/testing/selftests/kvm/include/riscv/processor.h
index dc284c6bdbc3..eca5c622efd2 100644
--- a/tools/testing/selftests/kvm/include/riscv/processor.h
+++ b/tools/testing/selftests/kvm/include/riscv/processor.h
@@ -101,7 +101,9 @@ static inline void set_reg(struct kvm_vm *vm, uint32_t vcpuid, uint64_t id,
 #define PGTBL_PTE_WRITE_SHIFT			2
 #define PGTBL_PTE_READ_MASK			0x0000000000000002ULL
 #define PGTBL_PTE_READ_SHIFT			1
-#define PGTBL_PTE_PERM_MASK			(PGTBL_PTE_EXECUTE_MASK | \
+#define PGTBL_PTE_PERM_MASK			(PGTBL_PTE_ACCESSED_MASK | \
+						 PGTBL_PTE_DIRTY_MASK | \
+						 PGTBL_PTE_EXECUTE_MASK | \
 						 PGTBL_PTE_WRITE_MASK | \
 						 PGTBL_PTE_READ_MASK)
 #define PGTBL_PTE_VALID_MASK			0x0000000000000001ULL



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux