Cc'ing qemu-trivial@
On 5/5/21 3:35 PM, Fred Konrad wrote:
> Le 5/2/21 à 9:09 PM, Philippe Mathieu-Daudé a écrit :
>> Running the WDR opcode triggers a segfault:
>>
>> $ cat > foo.S << EOF
>> > __start:
>> > wdr
>> > EOF
>> $ avr-gcc -nostdlib -nostartfiles -mmcu=avr6 foo.S -o foo.elf
>> $ qemu-system-avr -serial mon:stdio -nographic -no-reboot \
>> -M mega -bios foo.elf -d in_asm --singlestep
>> IN:
>> 0x00000000: WDR
>> Segmentation fault (core dumped)
>>
>> (gdb) bt
>> #0 0x00005555add0b23a in gdb_get_cpu_pid (cpu=0x5555af5a4af0)
>> at ../gdbstub.c:718
>> #1 0x00005555add0b2dd in gdb_get_cpu_process
>> (cpu=0x5555af5a4af0) at ../gdbstub.c:743
>> #2 0x00005555add0e477 in gdb_set_stop_cpu (cpu=0x5555af5a4af0)
>> at ../gdbstub.c:2742
>> #3 0x00005555adc99b96 in cpu_handle_guest_debug
>> (cpu=0x5555af5a4af0) at ../softmmu/cpus.c:306
>> #4 0x00005555adcc66ab in rr_cpu_thread_fn (arg=0x5555af5a4af0)
>> at ../accel/tcg/tcg-accel-ops-rr.c:224
>> #5 0x00005555adefaf12 in qemu_thread_start
>> (args=0x5555af5d9870) at ../util/qemu-thread-posix.c:521
>> #6 0x00007f692d940ea5 in start_thread () from
>> /lib64/libpthread.so.0
>> #7 0x00007f692d6699fd in clone () from /lib64/libc.so.6
>>
>> Since the watchdog peripheral is not implemented, simply
>> log the opcode as unimplemented and keep going.
>>
>> Reported-by: Fred Konrad <kon...@adacore.com>
>> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
>> ---
>> target/avr/helper.c | 6 +-----
>> 1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/target/avr/helper.c b/target/avr/helper.c
>> index 35e10195940..981c29da453 100644
>> --- a/target/avr/helper.c
>> +++ b/target/avr/helper.c
>> @@ -188,11 +188,7 @@ void helper_break(CPUAVRState *env)
>> void helper_wdr(CPUAVRState *env)
>> {
>> - CPUState *cs = env_cpu(env);
>> -
>> - /* WD is not implemented yet, placeholder */
>> - cs->exception_index = EXCP_DEBUG;
>> - cpu_loop_exit(cs);
>> + qemu_log_mask(LOG_UNIMP, "WDG reset (not implemented)\n");
>> }
>
> Seems ok to me, at least better than having a segfault.
>
> Reviewed-by: KONRAD Frederic <frederic.kon...@adacore.com>
>
>> /*
>>
>