[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/20] monitor: Use trad. command interface for
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 07/20] monitor: Use trad. command interface for HMP pcie_aer_inject_error |
Date: |
Tue, 26 May 2015 11:25:17 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Eric Blake <address@hidden> writes:
> On 05/22/2015 05:36 AM, Markus Armbruster wrote:
>> All QMP commands use the "new" handler interface (mhandler.cmd_new).
>> Most HMP commands still use the traditional interface (mhandler.cmd),
>> but a few use the "new" one. Complicates handle_user_command() for no
>> gain, so I'm converting these to the traditional interface.
>>
>> pcie_aer_inject_error's implementation is split into the
>> hmp_pcie_aer_inject_error() and pcie_aer_inject_error_print(). The
>> former is a peculiar crossbreed between HMP and QMP handler. On
>> success, it works like a QMP handler: store QDict through ret_data
>> parameter, return 0. Printing the QDict is left to
>> pcie_aer_inject_error_print(). On failure, it works more like an HMP
>> handler: print error to monitor, return negative number.
>>
>> To convert to the traditional interface, turn
>> pcie_aer_inject_error_print() into a command handler wrapping around
>> hmp_pcie_aer_inject_error(). By convention, this command handler
>> should be called hmp_pcie_aer_inject_error(), so rename the existing
>> hmp_pcie_aer_inject_error() to do_pcie_aer_inject_error().
>>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>> hmp-commands.hx | 3 +--
>> hw/pci/pci-stub.c | 14 +-------------
>> hw/pci/pcie_aer.c | 39 ++++++++++++++++++++++-----------------
>> include/sysemu/sysemu.h | 4 +---
>> 4 files changed, 25 insertions(+), 35 deletions(-)
>>
>
>> +
>> + devfn = (int)qdict_get_int(qdict, "devfn");
>
> Code motion, so the problem is pre-existing, but this cast is unneeded.
> Up to you if you want to clean it up now.
While I occasionally do fold cleanups into mechanical changes, e.g in
PATCH 15, I'm reluctant to fold them into code motion.
>> + monitor_printf(mon, "OK id: %s root bus: %s, bus: %x devfn: %x.%x\n",
>> + qdict_get_str(qdict, "id"),
>> + qdict_get_str(qdict, "root_bus"),
>> + (int) qdict_get_int(qdict, "bus"),
>
> However, this one still is necessary, unless you tweak the format string
> (if you haven't guessed, I prefer avoiding casts when other mechanisms
> work equally well).
I share your preference, but I want to keep the changes in PCI code to a
trivial minimum, to keep this series firmly in the monitor subsystem.
> But that's minor; whether or not you clean things up,
>
> Reviewed-by: Eric Blake <address@hidden>
Thanks!
- [Qemu-devel] [PATCH 17/20] monitor: Drop do_qmp_capabilities()'s superfluous QMP check, (continued)
- [Qemu-devel] [PATCH 17/20] monitor: Drop do_qmp_capabilities()'s superfluous QMP check, Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 06/20] monitor: Use traditional command interface for HMP device_add, Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 05/20] monitor: Use traditional command interface for HMP drive_del, Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 14/20] monitor: Rename handle_user_command() to handle_hmp_command(), Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 07/20] monitor: Use trad. command interface for HMP pcie_aer_inject_error, Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 01/20] monitor: Drop broken, unused asynchronous command interface, Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 09/20] monitor: Propagate errors through qmp_check_client_args(), Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 18/20] monitor: Turn int command_mode into bool in_command_mode, Markus Armbruster, 2015/05/22
- [Qemu-devel] [PATCH 19/20] monitor: Rename monitor_ctrl_mode() to monitor_is_qmp(), Markus Armbruster, 2015/05/22