All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: ian.jackson@eu.citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH v2 07/18] libxl: separate device add/rm complete callbacks
Date: Wed, 27 Aug 2014 02:41:55 +0100	[thread overview]
Message-ID: <1409103715.28009.64.camel@citrix.com> (raw)
In-Reply-To: <1406744639-28782-8-git-send-email-wei.liu2@citrix.com>

On Wed, 2014-07-30 at 19:23 +0100, Wei Liu wrote:
> This is in preparation for device hotplug / unplug configuration
> synchronisation. No functional change introduced. This change is
> necessary because rm is type specific, using a single callback cannot

Not "is" but "is going to become" I think?

> meet our need.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
>  tools/libxl/libxl.c |   54 +++++++++++++++++++++++++++++++++++++++------------
>  1 file changed, 42 insertions(+), 12 deletions(-)
> 
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 9ac2c3d..01dffa0 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -1798,22 +1798,26 @@ out:
>  }
>  
>  /******************************************************************************/
> +#define DEVICE_AO_FAILED_MSG                                            \

I don't see why this couldn't be a static log_ao_failure message, but
since it is used like a function it should be defined/called as
DEVICE_AO_FAILED_MSG() so it looks normal. I think it should just be a
function though.
> @@ -3537,6 +3541,32 @@ out:
>  }
>  
>  /******************************************************************************/
> +#define DEFINE_DEVICE_RM_AOCOMPLETE(type)                               \
> +    static void device_##type##_rm_aocomplete(libxl__egc *egc,          \
> +                                              libxl__ao_device *aodev)  \
> +    {                                                                   \
> +        STATE_AO_GC(aodev->ao);                                         \
> +        if (aodev->rc) {                                                \
> +            DEVICE_AO_FAILED_MSG;                                       \
> +            goto out;                                                   \
> +        }                                                               \
> +                                                                        \
> +    out:                                                                \

Perhaps you are going to add stuff between } and out: in a future patch,
but if not then the goto+label are a bit pointless (I see now that you
inherited that from the original code, so feel free to leave it if you
prefer).

> +        libxl__ao_complete(egc, ao, aodev->rc);                         \
> +    }
> +
> +/*
> + * device_vtpm_rm_aocomplete
> + * device_nic_rm_aocomplete
> + * device_disk_rm_aocomplete
> + * device_vfb_rm_aocomplete
> + * device_vkb_rm_aocomplete
> + */
> +DEFINE_DEVICE_RM_AOCOMPLETE(vtpm);
> +DEFINE_DEVICE_RM_AOCOMPLETE(nic);
> +DEFINE_DEVICE_RM_AOCOMPLETE(disk);
> +DEFINE_DEVICE_RM_AOCOMPLETE(vfb);
> +DEFINE_DEVICE_RM_AOCOMPLETE(vkb);

I was going to suggest merging this with DEFINE_DEVICE_REMOVE but that
is used twice for each device so that won't work. But perhaps consider
adding  these in the same blocks as the usage of DEFINE_DEVICE_REMOVE?

  reply	other threads:[~2014-08-27  1:41 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-30 18:23 [PATCH v2 00/18] libxl: synchronise domain configuration Wei Liu
2014-07-30 18:23 ` [PATCH v2 01/18] libxl: libxl error code is signed integer Wei Liu
2014-08-26 21:15   ` Ian Campbell
2014-09-03 14:12     ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 02/18] libxl: make userdata_path libxl internal function Wei Liu
2014-08-26 21:16   ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 03/18] libxl: functions to lock / unlock domain data in libxl user data store Wei Liu
2014-08-26 21:21   ` Ian Campbell
2014-09-03 14:27     ` Wei Liu
2014-09-03 12:40   ` Ian Campbell
2014-09-03 15:09     ` Wei Liu
2014-07-30 18:23 ` [PATCH v2 04/18] libxl: properly lock " Wei Liu
2014-08-26 21:24   ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 05/18] libxl: libxl-json format and internal functions to get / set it Wei Liu
2014-07-30 18:23 ` [PATCH v2 06/18] libxl: store a copy of configuration when creating domain Wei Liu
2014-08-27  1:34   ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 07/18] libxl: separate device add/rm complete callbacks Wei Liu
2014-08-27  1:41   ` Ian Campbell [this message]
2014-08-28 10:34     ` Wei Liu
2014-09-03 11:53       ` Ian Campbell
2014-09-03 11:55         ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 08/18] libxl: introduce libxl__device_from_pcidev Wei Liu
2014-08-27  1:45   ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 09/18] libxl: disallow attaching the same device more than once Wei Liu
2014-08-27  1:48   ` Ian Campbell
2014-08-28 10:55     ` Wei Liu
2014-09-03 11:52       ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 10/18] tools/misc: introduce helper to initialise Dom0 Wei Liu
2014-07-31  8:34   ` Ian Campbell
2014-08-27  1:52   ` Ian Campbell
2014-08-28 10:58     ` Wei Liu
2014-07-30 18:23 ` [PATCH v2 11/18] libxl: synchronise configuration when we hotplug a device Wei Liu
2014-08-27  2:00   ` Ian Campbell
2014-08-28 11:18     ` Wei Liu
2014-09-03 11:57       ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 12/18] libxl: synchronise configuration when we remove/destroy " Wei Liu
2014-08-27  2:01   ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 13/18] libxl: make libxl_cd_insert "eject" + "insert" Wei Liu
2014-08-27  2:04   ` Ian Campbell
2014-08-28 11:25     ` Wei Liu
2014-08-28 18:14       ` Ian Campbell
2014-08-28 18:38         ` Wei Liu
2014-07-30 18:23 ` [PATCH v2 14/18] libxl: introduce libxl_get_memory_static_max Wei Liu
2014-08-27  2:09   ` Ian Campbell
2014-08-28 11:31     ` Wei Liu
2014-08-28 18:16       ` Ian Campbell
2014-08-28 18:39         ` Wei Liu
2014-07-30 18:23 ` [PATCH v2 15/18] libxl: introduce libxl_retrieve_domain_configuration Wei Liu
2014-08-27  2:13   ` Ian Campbell
2014-08-28 11:39     ` Wei Liu
2014-08-28 18:17       ` Ian Campbell
2014-08-28 18:51         ` Wei Liu
2014-07-30 18:23 ` [PATCH v2 16/18] libxl: introduce libxl_userdata_unlink Wei Liu
2014-08-27  2:16   ` Ian Campbell
2014-08-28 11:50     ` Wei Liu
2014-08-28 18:20       ` Ian Campbell
2014-08-28 19:04         ` Wei Liu
2014-08-28 19:31           ` Ian Campbell
2014-08-28 20:27             ` Wei Liu
2014-08-28 20:44               ` Ian Campbell
2014-08-29 10:37                 ` Wei Liu
2014-09-03 12:12                   ` Ian Campbell
2014-09-03 14:10                     ` Wei Liu
2014-09-03 14:16                       ` Ian Campbell
2014-09-03 14:17                         ` Wei Liu
2014-07-30 18:23 ` [PATCH v2 17/18] xl: use libxl_retrieve_domain_configuration and JSON format Wei Liu
2014-09-03 12:57   ` Ian Campbell
2014-07-30 18:23 ` [PATCH v2 18/18] xl: long output of "list" command now contains Dom0 information Wei Liu
2014-09-03 12:50   ` Ian Campbell
2014-08-12 16:17 ` [PATCH v2 00/18] libxl: synchronise domain configuration Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1409103715.28009.64.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.