Message ID | 20170727143040.7236-1-otubo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 27.07.2017 16:30, Eduardo Otubo wrote: > Starting Qemu with "qemu-system-tricore -nographic -M tricore_testboard -S" > and entering "x 0" at the monitor prompt leads to Segmentation fault. This happens > because tricore_cpu_get_phys_page_debug() is not implemented yet, this > is a temporary workaround to avoid the crash. > > Signed-off-by: Eduardo Otubo <otubo@redhat.com> > --- > target/tricore/cpu.c | 10 ++++++++++ > target/tricore/cpu.h | 1 + > 2 files changed, 11 insertions(+) > > diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c > index 08f50e2ba7..5ab5b56454 100644 > --- a/target/tricore/cpu.c > +++ b/target/tricore/cpu.c > @@ -22,6 +22,15 @@ > #include "cpu.h" > #include "qemu-common.h" > #include "exec/exec-all.h" > +#include "qemu/error-report.h" > + > +static hwaddr tricore_cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr, > + MemTxAttrs *attrs) > +{ > + error_report("function cpu_get_phys_page_attrs_debug not " > + "implemented, aborting"); > + return -1; > +} > > static inline void set_feature(CPUTriCoreState *env, int feature) > { > @@ -176,6 +185,7 @@ static void tricore_cpu_class_init(ObjectClass *c, void *data) > cc->dump_state = tricore_cpu_dump_state; > cc->set_pc = tricore_cpu_set_pc; > cc->synchronize_from_tb = tricore_cpu_synchronize_from_tb; > + cc->get_phys_page_attrs_debug = tricore_cpu_get_phys_page_attrs_debug; > } > > static void cpu_register(const TriCoreCPUInfo *info) > diff --git a/target/tricore/cpu.h b/target/tricore/cpu.h > index a3493a123c..2663723955 100644 > --- a/target/tricore/cpu.h > +++ b/target/tricore/cpu.h > @@ -224,6 +224,7 @@ static inline TriCoreCPU *tricore_env_get_cpu(CPUTriCoreState *env) > #define ENV_OFFSET offsetof(TriCoreCPU, env) > > hwaddr tricore_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); > + Unnecessary white-space change ... rather remove the tricore_cpu_get_phys_page_debug() line instead? > void tricore_cpu_dump_state(CPUState *cpu, FILE *f, > fprintf_function cpu_fprintf, int flags); Apart from the nit above, looks like this fixes the crash indeed: Tested-by: Thomas Huth <thuth@redhat.com>
27.07.2017 17:30, Eduardo Otubo wrote: > Starting Qemu with "qemu-system-tricore -nographic -M tricore_testboard -S" > and entering "x 0" at the monitor prompt leads to Segmentation fault. This happens > because tricore_cpu_get_phys_page_debug() is not implemented yet, this > is a temporary workaround to avoid the crash. Applied to -trivial, without the extra newline in target/tricore/cpu.h /mjt
On 07/28/2017 01:19 PM, Michael Tokarev wrote: > 27.07.2017 17:30, Eduardo Otubo wrote: >> Starting Qemu with "qemu-system-tricore -nographic -M tricore_testboard -S" >> and entering "x 0" at the monitor prompt leads to Segmentation fault. This happens >> because tricore_cpu_get_phys_page_debug() is not implemented yet, this >> is a temporary workaround to avoid the crash. > > Applied to -trivial, without the extra newline in target/tricore/cpu.h > > /mjt > Thanks for picking this up :) Cheers, Bastian
diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c index 08f50e2ba7..5ab5b56454 100644 --- a/target/tricore/cpu.c +++ b/target/tricore/cpu.c @@ -22,6 +22,15 @@ #include "cpu.h" #include "qemu-common.h" #include "exec/exec-all.h" +#include "qemu/error-report.h" + +static hwaddr tricore_cpu_get_phys_page_attrs_debug(CPUState *cpu, vaddr addr, + MemTxAttrs *attrs) +{ + error_report("function cpu_get_phys_page_attrs_debug not " + "implemented, aborting"); + return -1; +} static inline void set_feature(CPUTriCoreState *env, int feature) { @@ -176,6 +185,7 @@ static void tricore_cpu_class_init(ObjectClass *c, void *data) cc->dump_state = tricore_cpu_dump_state; cc->set_pc = tricore_cpu_set_pc; cc->synchronize_from_tb = tricore_cpu_synchronize_from_tb; + cc->get_phys_page_attrs_debug = tricore_cpu_get_phys_page_attrs_debug; } static void cpu_register(const TriCoreCPUInfo *info) diff --git a/target/tricore/cpu.h b/target/tricore/cpu.h index a3493a123c..2663723955 100644 --- a/target/tricore/cpu.h +++ b/target/tricore/cpu.h @@ -224,6 +224,7 @@ static inline TriCoreCPU *tricore_env_get_cpu(CPUTriCoreState *env) #define ENV_OFFSET offsetof(TriCoreCPU, env) hwaddr tricore_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); + void tricore_cpu_dump_state(CPUState *cpu, FILE *f, fprintf_function cpu_fprintf, int flags);
Starting Qemu with "qemu-system-tricore -nographic -M tricore_testboard -S" and entering "x 0" at the monitor prompt leads to Segmentation fault. This happens because tricore_cpu_get_phys_page_debug() is not implemented yet, this is a temporary workaround to avoid the crash. Signed-off-by: Eduardo Otubo <otubo@redhat.com> --- target/tricore/cpu.c | 10 ++++++++++ target/tricore/cpu.h | 1 + 2 files changed, 11 insertions(+)