diff options
author | Suzanne Candanedo <suzanne.candanedo@arm.com> | 2022-10-06 14:08:52 +0100 |
---|---|---|
committer | Jack Diver <diverj@google.com> | 2022-10-07 11:24:36 +0000 |
commit | 48ab9bf5fc5f938816b416a121a84128fabb4d5b (patch) | |
tree | 0ce6b45afad3674804a0aafddf2c9200120567ba /mali_kbase/mali_kbase_defs.h | |
parent | 55f1819bd982ca824ee16d19c6d2aa1bbc0ea706 (diff) | |
download | gpu-48ab9bf5fc5f938816b416a121a84128fabb4d5b.tar.gz |
mali_kbase: MIDCET-4220 Patch for GPUSWERRATA-1420
This patch is a fix for:
- SW Errata: 2712858
- CVE: CVE-2022-36449
It excludes MMU dumping and invalidates PGD
before free. For this fix to work, GPUCORE-32152
is needed which adds hooks for physical address
translation.
Bug: 251397485
Provenance: https://code.ipdelivery.arm.com/c/GPU/mali-ddk/+/4607/1
Signed-off-by: Jack Diver <diverj@google.com>
Change-Id: I9d3718b57199b7e66a5b49730ac32c810a1fc9c9
Diffstat (limited to 'mali_kbase/mali_kbase_defs.h')
-rw-r--r-- | mali_kbase/mali_kbase_defs.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mali_kbase/mali_kbase_defs.h b/mali_kbase/mali_kbase_defs.h index c44118a..ba63e1a 100644 --- a/mali_kbase/mali_kbase_defs.h +++ b/mali_kbase/mali_kbase_defs.h @@ -581,7 +581,7 @@ struct kbase_devfreq_opp { * @entry_set_pte: program the pte to be a valid entry to encode the physical * address of the next lower level page table and also update * the number of valid entries. - * @entry_invalidate: clear out or invalidate the pte. + * @entries_invalidate: clear out or invalidate a range of ptes. * @get_num_valid_entries: returns the number of valid entries for a specific pgd. * @set_num_valid_entries: sets the number of valid entries for a specific pgd * @flags: bitmask of MMU mode flags. Refer to KBASE_MMU_MODE_ constants. @@ -598,8 +598,8 @@ struct kbase_mmu_mode { int (*pte_is_valid)(u64 pte, int level); void (*entry_set_ate)(u64 *entry, struct tagged_addr phy, unsigned long flags, int level); - void (*entry_set_pte)(u64 *pgd, u64 vpfn, phys_addr_t phy); - void (*entry_invalidate)(u64 *entry); + void (*entry_set_pte)(u64 *entry, phys_addr_t phy); + void (*entries_invalidate)(u64 *entry, u32 count); unsigned int (*get_num_valid_entries)(u64 *pgd); void (*set_num_valid_entries)(u64 *pgd, unsigned int num_of_valid_entries); |