diff options
Diffstat (limited to 'gitlab/issues_text/target_missing/host_missing/accel_missing/2647')
| -rw-r--r-- | gitlab/issues_text/target_missing/host_missing/accel_missing/2647 | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/gitlab/issues_text/target_missing/host_missing/accel_missing/2647 b/gitlab/issues_text/target_missing/host_missing/accel_missing/2647 deleted file mode 100644 index ccef48f11..000000000 --- a/gitlab/issues_text/target_missing/host_missing/accel_missing/2647 +++ /dev/null @@ -1,47 +0,0 @@ -A code error in accel/tcg/user-exec.c -Description of problem: -accel/tcg/user-exec.c: -``` -static int probe_access_internal(CPUArchState *env, vaddr addr, - int fault_size, MMUAccessType access_type, - bool nonfault, uintptr_t ra) -{ - int acc_flag; - bool maperr; - - switch (access_type) { - case MMU_DATA_STORE: - acc_flag = PAGE_WRITE_ORG; - break; - case MMU_DATA_LOAD: - acc_flag = PAGE_READ; - break; - case MMU_INST_FETCH: - acc_flag = PAGE_EXEC; - break; - default: - g_assert_not_reached(); - } - - if (guest_addr_valid_untagged(addr)) { - int page_flags = page_get_flags(addr); - if (page_flags & acc_flag) { - if ((acc_flag == PAGE_READ || acc_flag == PAGE_WRITE) - && cpu_plugin_mem_cbs_enabled(env_cpu(env))) { - return TLB_MMIO; - } - return 0; /* success */ - } - maperr = !(page_flags & PAGE_VALID); - } else { - maperr = true; - } - - if (nonfault) { - return TLB_INVALID_MASK; - } - - cpu_loop_exit_sigsegv(env_cpu(env), addr, access_type, maperr, ra); -} -``` -The conditional judgment "acc_flag == PAGE_WRITE" seems to have an issue, because acc_flag can only be PAGE_WRITE_ORG, PAGE_READ or PAGE_EXEC from the previous code. |