[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 6/9] qapi: Generalize command policy checking
From: |
Eric Blake |
Subject: |
Re: [PATCH v2 6/9] qapi: Generalize command policy checking |
Date: |
Fri, 29 Oct 2021 10:28:11 -0500 |
User-agent: |
NeoMutt/20211022 |
On Thu, Oct 28, 2021 at 12:25:17PM +0200, Markus Armbruster wrote:
> The code to check command policy can see special feature flag
> 'deprecated' as command flag QCO_DEPRECATED. I want to make feature
> flag 'unstable' visible there as well, so I can add policy for it.
>
> To let me make it visible, add member @special_features (a bitset of
> QapiSpecialFeature) to QmpCommand, and adjust the generator to pass it
> through qmp_register_command(). Then replace "QCO_DEPRECATED in
> @flags" by QAPI_DEPRECATED in @special_features", and drop
> QCO_DEPRECATED.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Acked-by: John Snow <jsnow@redhat.com>
> ---
> +++ b/qapi/qmp-dispatch.c
> @@ -176,7 +176,7 @@ QDict *qmp_dispatch(const QmpCommandList *cmds, QObject
> *request,
> "The command %s has not been found", command);
> goto out;
> }
> - if (cmd->options & QCO_DEPRECATED) {
> + if (cmd->special_features & 1u << QAPI_DEPRECATED) {
I admit having to check the C operator precedence table when reading
this (<< is higher than &); if writing it myself, I would probably
have used explicit () to avoid reviewer confusion, but what you have
is correct. (After grepping for ' & 1.*<<' and ' & (1.*<<', it looks
like authors using explicit precedence happens more often, but that
there are other instances in the code base relying on implicit
precedence.)
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
[PATCH v2 1/9] qapi: New special feature flag "unstable", Markus Armbruster, 2021/10/28
[PATCH v2 2/9] qapi: Mark unstable QMP parts with feature 'unstable', Markus Armbruster, 2021/10/28
[PATCH v2 6/9] qapi: Generalize command policy checking, Markus Armbruster, 2021/10/28
[PATCH v2 9/9] qapi: Extend -compat to set policy for unstable interfaces, Markus Armbruster, 2021/10/28
[PATCH v2 8/9] qapi: Factor out compat_policy_input_ok(), Markus Armbruster, 2021/10/28