Skip to content
Snippets Groups Projects
  1. Jan 08, 2021
  2. Jan 02, 2021
  3. Dec 19, 2020
  4. Dec 18, 2020
  5. Dec 15, 2020
  6. Dec 10, 2020
  7. Nov 24, 2020
  8. Nov 13, 2020
    • Kevin Wolf's avatar
      hmp: Pass monitor to mon_get_cpu_env() · e7cff9c6
      Kevin Wolf authored
      
      mon_get_cpu_env() is indirectly called monitor_parse_arguments() where
      the current monitor isn't set yet. Instead of using monitor_cur_env(),
      explicitly pass the Monitor pointer to the function.
      
      Without this fix, an HMP command like "x $pc" crashes like this:
      
        #0  0x0000555555caa01f in mon_get_cpu_sync (mon=0x0, synchronize=true) at ../monitor/misc.c:270
        #1  0x0000555555caa141 in mon_get_cpu (mon=0x0) at ../monitor/misc.c:294
        #2  0x0000555555caa158 in mon_get_cpu_env () at ../monitor/misc.c:299
        #3  0x0000555555b19739 in monitor_get_pc (mon=0x555556ad2de0, md=0x5555565d2d40 <monitor_defs+1152>, val=0) at ../target/i386/monitor.c:607
        #4  0x0000555555cadbec in get_monitor_def (mon=0x555556ad2de0, pval=0x7fffffffc208, name=0x7fffffffc220 "pc") at ../monitor/misc.c:1681
        #5  0x000055555582ec4f in expr_unary (mon=0x555556ad2de0) at ../monitor/hmp.c:387
        #6  0x000055555582edbb in expr_prod (mon=0x555556ad2de0) at ../monitor/hmp.c:421
        #7  0x000055555582ee79 in expr_logic (mon=0x555556ad2de0) at ../monitor/hmp.c:455
        #8  0x000055555582eefe in expr_sum (mon=0x555556ad2de0) at ../monitor/hmp.c:484
        #9  0x000055555582efe8 in get_expr (mon=0x555556ad2de0, pval=0x7fffffffc418, pp=0x7fffffffc408) at ../monitor/hmp.c:511
        #10 0x000055555582fcd4 in monitor_parse_arguments (mon=0x555556ad2de0, endp=0x7fffffffc890, cmd=0x555556675b50 <hmp_cmds+7920>) at ../monitor/hmp.c:876
        #11 0x00005555558306a8 in handle_hmp_command (mon=0x555556ad2de0, cmdline=0x555556ada452 "$pc") at ../monitor/hmp.c:1087
        #12 0x000055555582df14 in monitor_command_cb (opaque=0x555556ad2de0, cmdline=0x555556ada450 "x $pc", readline_opaque=0x0) at ../monitor/hmp.c:47
      
      After this fix, nothing is left in monitor_parse_arguments() that can
      indirectly call monitor_cur(), so the fix is complete.
      
      Fixes: ff04108a
      Reported-by: default avatarlichun <lichun@ruijie.com.cn>
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Message-Id: <20201113114326.97663-4-kwolf@redhat.com>
      Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      e7cff9c6
    • Kevin Wolf's avatar
      hmp: Pass monitor to MonitorDef.get_value() · 43cf067f
      Kevin Wolf authored
      
      All of these callbacks use mon_get_cpu_env(). Pass the Monitor
      pointer to them it in preparation for adding a monitor argument to
      mon_get_cpu_env().
      
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Message-Id: <20201113114326.97663-3-kwolf@redhat.com>
      Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      43cf067f
    • Kevin Wolf's avatar
      hmp: Pass monitor to mon_get_cpu() · 2fc5d01b
      Kevin Wolf authored
      
      mon_get_cpu() is indirectly called monitor_parse_arguments() where
      the current monitor isn't set yet. Instead of using monitor_cur(),
      explicitly pass the Monitor pointer to the function.
      
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Message-Id: <20201113114326.97663-2-kwolf@redhat.com>
      Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      2fc5d01b
  9. Nov 04, 2020
  10. Nov 01, 2020
  11. Oct 21, 2020
  12. Oct 15, 2020
    • Kevin Wolf's avatar
      monitor: Fix order in monitor_cleanup() · 357bda95
      Kevin Wolf authored
      
      We can only destroy Monitor objects after we're sure that they are not
      in use by the dispatcher coroutine any more. This fixes crashes like the
      following where we tried to destroy a monitor mutex while the dispatcher
      coroutine still holds it:
      
       (gdb) bt
       #0  0x00007fe541cf4bc5 in raise () at /lib64/libc.so.6
       #1  0x00007fe541cdd8a4 in abort () at /lib64/libc.so.6
       #2  0x000055c24e965327 in error_exit (err=16, msg=0x55c24eead3a0 <__func__.33> "qemu_mutex_destroy") at ../util/qemu-thread-posix.c:37
       #3  0x000055c24e9654c3 in qemu_mutex_destroy (mutex=0x55c25133e0f0) at ../util/qemu-thread-posix.c:70
       #4  0x000055c24e7cfaf1 in monitor_data_destroy_qmp (mon=0x55c25133dfd0) at ../monitor/qmp.c:439
       #5  0x000055c24e7d23bc in monitor_data_destroy (mon=0x55c25133dfd0) at ../monitor/monitor.c:615
       #6  0x000055c24e7d253a in monitor_cleanup () at ../monitor/monitor.c:644
       #7  0x000055c24e6cb002 in qemu_cleanup () at ../softmmu/vl.c:4549
       #8  0x000055c24e0d259b in main (argc=24, argv=0x7ffff66b0d58, envp=0x7ffff66b0e20) at ../softmmu/main.c:51
      
      Reported-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Message-Id: <20201013125027.41003-1-kwolf@redhat.com>
      Tested-by: default avatarBen Widawsky <ben.widawsky@intel.com>
      Tested-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      357bda95
    • Gerd Hoffmann's avatar
      meson: add spice_headers dependency. · d72c34cc
      Gerd Hoffmann authored
      
      Used for files which (with CONFIG_SPICE=y) depend on spice header files
      to pick up some enum, but which do not depend on on the actual spice
      shared library.
      
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Message-id: 20201014121120.13482-6-kraxel@redhat.com
      d72c34cc
  13. Oct 09, 2020
Loading