qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Fam Zheng <famz@redhat.com>
Cc: qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 06/14] crypto: Make errp the last parameter of functions
Date: Mon, 24 Apr 2017 09:28:27 +0100	[thread overview]
Message-ID: <20170424082827.GC20809@redhat.com> (raw)
In-Reply-To: <20170421122710.15373-7-famz@redhat.com>

On Fri, Apr 21, 2017 at 08:27:02PM +0800, Fam Zheng wrote:
> Move opaque to 2nd instead of the 2nd to last, so that compilers help
> check with the convertion.

Moving 'opaque' like this should not be done.

If you want the compiler to check the fixes, it should be done in
just two stages. First move errp & move opaque to start, compile
it & verify. Then put opaque back to where it was, and compile
again. The resulting commit thus only has the errp move, not the
unrelated & uneccessary opaque move.

> 
> Signed-off-by: Fam Zheng <famz@redhat.com>
> ---
>  block/crypto.c            | 12 ++++++------
>  crypto/block-luks.c       | 21 +++++++++------------
>  include/crypto/block.h    | 12 ++++++------
>  tests/test-crypto-block.c | 12 ++++++------
>  4 files changed, 27 insertions(+), 30 deletions(-)
> 
> diff --git a/block/crypto.c b/block/crypto.c
> index 4a20388..34549b2 100644
> --- a/block/crypto.c
> +++ b/block/crypto.c
> @@ -56,11 +56,11 @@ static int block_crypto_probe_generic(QCryptoBlockFormat format,
>  
>  
>  static ssize_t block_crypto_read_func(QCryptoBlock *block,
> +                                      void *opaque,
>                                        size_t offset,
>                                        uint8_t *buf,
>                                        size_t buflen,
> -                                      Error **errp,
> -                                      void *opaque)
> +                                      Error **errp)
>  {
>      BlockDriverState *bs = opaque;
>      ssize_t ret;
> @@ -83,11 +83,11 @@ struct BlockCryptoCreateData {
>  
>  
>  static ssize_t block_crypto_write_func(QCryptoBlock *block,
> +                                       void *opaque,
>                                         size_t offset,
>                                         const uint8_t *buf,
>                                         size_t buflen,
> -                                       Error **errp,
> -                                       void *opaque)
> +                                       Error **errp)
>  {
>      struct BlockCryptoCreateData *data = opaque;
>      ssize_t ret;
> @@ -102,9 +102,9 @@ static ssize_t block_crypto_write_func(QCryptoBlock *block,
>  
>  
>  static ssize_t block_crypto_init_func(QCryptoBlock *block,
> +                                      void *opaque,
>                                        size_t headerlen,
> -                                      Error **errp,
> -                                      void *opaque)
> +                                      Error **errp)
>  {
>      struct BlockCryptoCreateData *data = opaque;
>      int ret;
> diff --git a/crypto/block-luks.c b/crypto/block-luks.c
> index 4530f82..d5a31bb 100644
> --- a/crypto/block-luks.c
> +++ b/crypto/block-luks.c
> @@ -473,10 +473,10 @@ qcrypto_block_luks_load_key(QCryptoBlock *block,
>       * then encrypted.
>       */
>      rv = readfunc(block,
> +                  opaque,
>                    slot->key_offset * QCRYPTO_BLOCK_LUKS_SECTOR_SIZE,
>                    splitkey, splitkeylen,
> -                  errp,
> -                  opaque);
> +                  errp);
>      if (rv < 0) {
>          goto cleanup;
>      }
> @@ -676,11 +676,10 @@ qcrypto_block_luks_open(QCryptoBlock *block,
>  
>      /* Read the entire LUKS header, minus the key material from
>       * the underlying device */
> -    rv = readfunc(block, 0,
> +    rv = readfunc(block, opaque, 0,
>                    (uint8_t *)&luks->header,
>                    sizeof(luks->header),
> -                  errp,
> -                  opaque);
> +                  errp);
>      if (rv < 0) {
>          ret = rv;
>          goto fail;
> @@ -1246,7 +1245,7 @@ qcrypto_block_luks_create(QCryptoBlock *block,
>          QCRYPTO_BLOCK_LUKS_SECTOR_SIZE;
>  
>      /* Reserve header space to match payload offset */
> -    initfunc(block, block->payload_offset, &local_err, opaque);
> +    initfunc(block, opaque, block->payload_offset, &local_err);
>      if (local_err) {
>          error_propagate(errp, local_err);
>          goto error;
> @@ -1268,11 +1267,10 @@ qcrypto_block_luks_create(QCryptoBlock *block,
>  
>  
>      /* Write out the partition header and key slot headers */
> -    writefunc(block, 0,
> +    writefunc(block, opaque, 0,
>                (const uint8_t *)&luks->header,
>                sizeof(luks->header),
> -              &local_err,
> -              opaque);
> +              &local_err);
>  
>      /* Delay checking local_err until we've byte-swapped */
>  
> @@ -1297,12 +1295,11 @@ qcrypto_block_luks_create(QCryptoBlock *block,
>  
>      /* Write out the master key material, starting at the
>       * sector immediately following the partition header. */
> -    if (writefunc(block,
> +    if (writefunc(block, opaque,
>                    luks->header.key_slots[0].key_offset *
>                    QCRYPTO_BLOCK_LUKS_SECTOR_SIZE,
>                    splitkey, splitkeylen,
> -                  errp,
> -                  opaque) != splitkeylen) {
> +                  errp) != splitkeylen) {
>          goto error;
>      }
>  
> diff --git a/include/crypto/block.h b/include/crypto/block.h
> index b6971de..4a053a3 100644
> --- a/include/crypto/block.h
> +++ b/include/crypto/block.h
> @@ -30,23 +30,23 @@ typedef struct QCryptoBlock QCryptoBlock;
>   * and QCryptoBlockOpenOptions in qapi/crypto.json */
>  
>  typedef ssize_t (*QCryptoBlockReadFunc)(QCryptoBlock *block,
> +                                        void *opaque,
>                                          size_t offset,
>                                          uint8_t *buf,
>                                          size_t buflen,
> -                                        Error **errp,
> -                                        void *opaque);
> +                                        Error **errp);
>  
>  typedef ssize_t (*QCryptoBlockInitFunc)(QCryptoBlock *block,
> +                                        void *opaque,
>                                          size_t headerlen,
> -                                        Error **errp,
> -                                        void *opaque);
> +                                        Error **errp);
>  
>  typedef ssize_t (*QCryptoBlockWriteFunc)(QCryptoBlock *block,
> +                                         void *opaque,
>                                           size_t offset,
>                                           const uint8_t *buf,
>                                           size_t buflen,
> -                                         Error **errp,
> -                                         void *opaque);
> +                                         Error **errp);
>  
>  /**
>   * qcrypto_block_has_format:
> diff --git a/tests/test-crypto-block.c b/tests/test-crypto-block.c
> index 1957a86..85e6603 100644
> --- a/tests/test-crypto-block.c
> +++ b/tests/test-crypto-block.c
> @@ -187,11 +187,11 @@ static struct QCryptoBlockTestData {
>  
>  
>  static ssize_t test_block_read_func(QCryptoBlock *block,
> +                                    void *opaque,
>                                      size_t offset,
>                                      uint8_t *buf,
>                                      size_t buflen,
> -                                    Error **errp,
> -                                    void *opaque)
> +                                    Error **errp)
>  {
>      Buffer *header = opaque;
>  
> @@ -204,9 +204,9 @@ static ssize_t test_block_read_func(QCryptoBlock *block,
>  
>  
>  static ssize_t test_block_init_func(QCryptoBlock *block,
> +                                    void *opaque,
>                                      size_t headerlen,
> -                                    Error **errp,
> -                                    void *opaque)
> +                                    Error **errp)
>  {
>      Buffer *header = opaque;
>  
> @@ -219,11 +219,11 @@ static ssize_t test_block_init_func(QCryptoBlock *block,
>  
>  
>  static ssize_t test_block_write_func(QCryptoBlock *block,
> +                                     void *opaque,
>                                       size_t offset,
>                                       const uint8_t *buf,
>                                       size_t buflen,
> -                                     Error **errp,
> -                                     void *opaque)
> +                                     Error **errp)
>  {
>      Buffer *header = opaque;
>  
> -- 
> 2.9.3
> 
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

  parent reply	other threads:[~2017-04-24  8:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-21 12:26 [Qemu-devel] [PATCH 00/14] Trivial cleanups around error reporting Fam Zheng
2017-04-21 12:26 ` [Qemu-devel] [PATCH 01/14] socket: Make errp the last parameter of socket_connect Fam Zheng
2017-04-21 12:26 ` [Qemu-devel] [PATCH 02/14] socket: Make errp the last parameter of inet_connect_saddr Fam Zheng
2017-04-21 12:26 ` [Qemu-devel] [PATCH 03/14] socket: Make errp the last parameter of unix_connect_saddr Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 04/14] socket: Make errp the last parameter of vsock_connect_saddr Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 05/14] block: Make errp the last parameter of bdrv_img_create Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 06/14] crypto: Make errp the last parameter of functions Fam Zheng
2017-04-21 14:35   ` Eric Blake
2017-04-24  8:28   ` Daniel P. Berrange [this message]
2017-04-24  8:43     ` Fam Zheng
2017-04-24  9:24       ` Markus Armbruster
2017-04-24  9:27         ` Daniel P. Berrange
2017-04-21 12:27 ` [Qemu-devel] [PATCH 07/14] mirror: Make errp the last parameter of mirror_start_job Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 08/14] block: Make errp the last parameter of commit_active_start Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 09/14] nfs: Make errp the last parameter of nfs_client_open Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 10/14] fdc: Make errp the last parameter of fdctrl_connect_drives Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 11/14] scsi: Make errp the last parameter of virtio_scsi_common_realize Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 12/14] migration: Make errp the last parameter of local functions Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 13/14] qga: Make errp the last parameter of qga_vss_fsfreeze Fam Zheng
2017-04-21 12:27 ` [Qemu-devel] [PATCH 14/14] error: Apply error_propagate_null.cocci again Fam Zheng
2017-04-21 14:45 ` [Qemu-devel] [PATCH 00/14] Trivial cleanups around error reporting Eric Blake
2017-04-21 14:57 ` Markus Armbruster
2017-04-24  7:20 ` Markus Armbruster

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=20170424082827.GC20809@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=famz@redhat.com \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).