From 1d4441665d909da9d7deda3374d8c697199cede9 Mon Sep 17 00:00:00 2001 From: Rayhan Faizel Date: Wed, 26 Mar 2025 18:13:27 +0530 Subject: [PATCH] realm/mm: Correct setting of RIPAS=EMPTY on ASSIGNED_EMPTY RTTEs Signed-off-by: Rayhan Faizel --- rmm/src/realm/mm/rtt.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rmm/src/realm/mm/rtt.rs b/rmm/src/realm/mm/rtt.rs index 12163788fdbc..599fc31a4598 100644 --- a/rmm/src/realm/mm/rtt.rs +++ b/rmm/src/realm/mm/rtt.rs @@ -384,7 +384,7 @@ pub fn set_ripas(rd: &Rd, base: usize, top: usize, ripas: u8, flags: u64) -> Res if ripas as u64 == invalid_ripas::EMPTY { new_s2tte |= bits_in_reg(S2TTE::INVALID_RIPAS, invalid_ripas::EMPTY); - if s2tte.is_unassigned_empty() { + if s2tte.is_unassigned_ram() { new_s2tte |= bits_in_reg(S2TTE::INVALID_HIPAS, invalid_hipas::UNASSIGNED); } else if s2tte.is_unassigned_destroyed() { if flags & CHANGE_DESTROYED != 0 { @@ -404,6 +404,9 @@ pub fn set_ripas(rd: &Rd, base: usize, top: usize, ripas: u8, flags: u64) -> Res } else { break; } + } else { + addr += map_size; + continue; // do nothing } } else if ripas as u64 == invalid_ripas::RAM { new_s2tte |= bits_in_reg(S2TTE::INVALID_RIPAS, invalid_ripas::RAM);