From afb48e9fc543a4ca8adbdd0d60d3740f56f072fd Mon Sep 17 00:00:00 2001
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Date: Thu, 15 Feb 2018 15:36:15 -0500
Subject: [PATCH] cputlb: Change tlb_set_dirty() arg to cpu

Change tlb_set_dirty() to accept a CPU instead of an env pointer. This
allows for removal of another CPUArchState usage from prototypes that
need to be QOMified.

Backports commit bcae01e468d961ad9afaf4148329147e4be209ab from qemu
---
 qemu/cputlb.c              | 3 ++-
 qemu/exec.c                | 3 +--
 qemu/include/exec/cputlb.h | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/qemu/cputlb.c b/qemu/cputlb.c
index cf146b89..c194dad5 100644
--- a/qemu/cputlb.c
+++ b/qemu/cputlb.c
@@ -159,8 +159,9 @@ void cpu_tlb_reset_dirty_all(struct uc_struct *uc,
 
 /* update the TLB corresponding to virtual page vaddr
    so that it is no longer dirty */
-void tlb_set_dirty(CPUArchState *env, target_ulong vaddr)
+void tlb_set_dirty(CPUState *cpu, target_ulong vaddr)
 {
+    CPUArchState *env = cpu->env_ptr;
     int i;
     int mmu_idx;
 
diff --git a/qemu/exec.c b/qemu/exec.c
index 91a74c94..8f160000 100644
--- a/qemu/exec.c
+++ b/qemu/exec.c
@@ -1382,8 +1382,7 @@ static void notdirty_mem_write(struct uc_struct* uc, void *opaque, hwaddr ram_ad
     /* we remove the notdirty callback only if the code has been
        flushed */
     if (!cpu_physical_memory_is_clean(uc, ram_addr)) {
-        CPUArchState *env = uc->current_cpu->env_ptr;
-        tlb_set_dirty(env, uc->current_cpu->mem_io_vaddr);
+        tlb_set_dirty(uc->current_cpu, uc->current_cpu->mem_io_vaddr);
     }
 }
 
diff --git a/qemu/include/exec/cputlb.h b/qemu/include/exec/cputlb.h
index 0d8e6c16..0d0720cd 100644
--- a/qemu/include/exec/cputlb.h
+++ b/qemu/include/exec/cputlb.h
@@ -26,7 +26,7 @@ void tlb_unprotect_code(CPUState *cpu, ram_addr_t ram_addr);
 void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry,
     uintptr_t start, uintptr_t length);
 void cpu_tlb_reset_dirty_all(struct uc_struct *uc, ram_addr_t start1, ram_addr_t length);
-void tlb_set_dirty(CPUArchState *env, target_ulong vaddr);
+void tlb_set_dirty(CPUState *env, target_ulong vaddr);
 //extern int tlb_flush_count;
 
 /* exec.c */