ANDROID: KVM: arm64: Fix CPU type when reading trace_pdesc
Prevent negative value reading from the trace descriptor. While at it,
remove that variable shadowing for more clarity.
Bug: 442540376
Bug: 357781595
Change-Id: I102df353b2b57cc44ebb93e97f8c1e4f589a5e84
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
diff --git a/arch/arm64/kvm/hyp/nvhe/trace.c b/arch/arm64/kvm/hyp/nvhe/trace.c
index 4b993c9..65a193c 100644
--- a/arch/arm64/kvm/hyp/nvhe/trace.c
+++ b/arch/arm64/kvm/hyp/nvhe/trace.c
@@ -543,7 +543,7 @@ int __pkvm_load_tracing(unsigned long desc_hva, size_t desc_size)
struct hyp_trace_desc *desc = (struct hyp_trace_desc *)kern_hyp_va(desc_hva);
struct trace_page_desc *trace_pdesc = &desc->page_desc;
struct rb_page_desc *pdesc;
- int ret, cpu;
+ int ret, pdesc_cpu;
if (!desc_size || !PAGE_ALIGNED(desc_hva) || !PAGE_ALIGNED(desc_size))
return -EINVAL;
@@ -555,9 +555,9 @@ int __pkvm_load_tracing(unsigned long desc_hva, size_t desc_size)
hyp_spin_lock(&trace_rb_lock);
- for_each_rb_page_desc(pdesc, cpu, trace_pdesc) {
+ for_each_rb_page_desc(pdesc, pdesc_cpu, trace_pdesc) {
struct hyp_rb_per_cpu *cpu_buffer;
- int cpu;
+ unsigned int cpu;
ret = -EINVAL;
if (!rb_cpu_fits_desc(pdesc, desc_hva + desc_size))