All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Derrick, Jonathan" <jonathan.derrick@intel.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"zub@linux.fjfi.cvut.cz" <zub@linux.fjfi.cvut.cz>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"sbauer@plzdonthack.me" <sbauer@plzdonthack.me>,
	"axboe@kernel.dk" <axboe@kernel.dk>
Cc: "jonas.rabenstein@studium.uni-erlangen.de" 
	<jonas.rabenstein@studium.uni-erlangen.de>
Subject: Re: [PATCH v4 09/16] block: sed-opal: split generation of bytestring header and content
Date: Fri, 8 Feb 2019 22:58:13 +0000	[thread overview]
Message-ID: <1549666691.10972.57.camel@intel.com> (raw)
In-Reply-To: <1549054223-12220-10-git-send-email-zub@linux.fjfi.cvut.cz>

[-- Attachment #1: Type: text/plain, Size: 2263 bytes --]

Looks good

Reviewed-by Jon Derrick <jonathan.derrick@intel.com>

On Fri, 2019-02-01 at 21:50 +0100, David Kozub wrote:
> From: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
> 
> Split the header generation from the (normal) memcpy part if a
> bytestring is copied into the command buffer. This allows in-place
> generation of the bytestring content. For example, copy_from_user may be
> used without an intermediate buffer.
> 
> Signed-off-by: Jonas Rabenstein <jonas.rabenstein@studium.uni-erlangen.de>
> Reviewed-by: Scott Bauer <sbauer@plzdonthack.me>
> ---
>  block/sed-opal.c | 23 +++++++++++++++--------
>  1 file changed, 15 insertions(+), 8 deletions(-)
> 
> diff --git a/block/sed-opal.c b/block/sed-opal.c
> index 4225f23b2165..4b0a63b9d7c9 100644
> --- a/block/sed-opal.c
> +++ b/block/sed-opal.c
> @@ -586,14 +586,11 @@ static void add_token_u64(int *err, struct opal_dev *cmd, u64 number)
>  		add_token_u8(err, cmd, number >> (len * 8));
>  }
>  
> -static void add_token_bytestring(int *err, struct opal_dev *cmd,
> -				 const u8 *bytestring, size_t len)
> +static u8 *add_bytestring_header(int *err, struct opal_dev *cmd, size_t len)
>  {
>  	size_t header_len = 1;
>  	bool is_short_atom = true;
> -
> -	if (*err)
> -		return;
> +	char *start;
>  
>  	if (len & ~SHORT_ATOM_LEN_MASK) {
>  		header_len = 2;
> @@ -602,17 +599,27 @@ static void add_token_bytestring(int *err, struct opal_dev *cmd,
>  
>  	if (!can_add(err, cmd, header_len + len)) {
>  		pr_debug("Error adding bytestring: end of buffer.\n");
> -		return;
> +		return NULL;
>  	}
>  
>  	if (is_short_atom)
>  		add_short_atom_header(cmd, true, false, len);
>  	else
>  		add_medium_atom_header(cmd, true, false, len);
> +	start = &cmd->cmd[cmd->pos];
> +	return start;
> +}
>  
> -	memcpy(&cmd->cmd[cmd->pos], bytestring, len);
> -	cmd->pos += len;
> +static void add_token_bytestring(int *err, struct opal_dev *cmd,
> +				 const u8 *bytestring, size_t len)
> +{
> +	u8 *start;
>  
> +	start = add_bytestring_header(err, cmd, len);
> +	if (!start)
> +		return;
> +	memcpy(start, bytestring, len);
> +	cmd->pos += len;
>  }
>  
>  static int build_locking_range(u8 *buffer, size_t length, u8 lr)

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 3278 bytes --]

  parent reply	other threads:[~2019-02-08 22:58 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-01 20:50 [PATCH v4 00/16] block: sed-opal: support shadow MBR done flag and write David Kozub
2019-02-01 20:50 ` [PATCH v4 01/16] block: sed-opal: fix typos and formatting David Kozub
2019-02-04 14:42   ` Christoph Hellwig
2019-02-04 20:28     ` David Kozub
2019-02-08 22:56       ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 02/16] block: sed-opal: use correct macro for method length David Kozub
2019-02-04 14:43   ` Christoph Hellwig
2019-02-08 22:56   ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 03/16] block: sed-opal: unify space check in add_token_* David Kozub
2019-02-04 14:44   ` Christoph Hellwig
2019-02-04 21:07     ` David Kozub
2019-02-04 21:09       ` Christoph Hellwig
2019-02-08 22:57       ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 04/16] block: sed-opal: close parameter list in cmd_finalize David Kozub
2019-02-04 14:44   ` Christoph Hellwig
2019-02-08 22:57   ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 05/16] block: sed-opal: unify cmd start David Kozub
2019-02-04 14:45   ` Christoph Hellwig
2019-02-08 22:57   ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 06/16] block: sed-opal: unify error handling of responses David Kozub
2019-02-04 14:45   ` Christoph Hellwig
2019-02-01 20:50 ` [PATCH v4 07/16] block: sed-opal: reuse response_get_token to decrease code duplication David Kozub
2019-02-04 14:46   ` Christoph Hellwig
2019-02-08 22:57   ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 08/16] block: sed-opal: print failed function address David Kozub
2019-02-04 14:46   ` Christoph Hellwig
2019-02-01 20:50 ` [PATCH v4 09/16] block: sed-opal: split generation of bytestring header and content David Kozub
2019-02-04 14:48   ` Christoph Hellwig
2019-02-08 22:58   ` Derrick, Jonathan [this message]
2019-02-01 20:50 ` [PATCH v4 10/16] block: sed-opal: add ioctl for done-mark of shadow mbr David Kozub
2019-02-04 14:52   ` Christoph Hellwig
2019-02-07 22:56     ` David Kozub
2019-02-08  0:44       ` Derrick, Jonathan
2019-02-08  1:37         ` Scott Bauer
2019-02-10 18:26         ` Scott Bauer
2019-02-10 20:25           ` David Kozub
2019-02-01 20:50 ` [PATCH v4 11/16] block: sed-opal: ioctl for writing to " David Kozub
2019-02-04 17:58   ` kbuild test robot
2019-02-08 22:58   ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 12/16] block: sed-opal: unify retrieval of table columns David Kozub
2019-02-04 14:56   ` Christoph Hellwig
2019-02-08 22:58   ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 13/16] block: sed-opal: check size of shadow mbr David Kozub
2019-02-08 22:58   ` Derrick, Jonathan
2019-02-10 20:05     ` David Kozub
2019-02-11 21:27       ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 14/16] block: sed-opal: pass steps via argument rather than via opal_dev David Kozub
2019-02-04 14:57   ` Christoph Hellwig
2019-02-01 20:50 ` [PATCH v4 15/16] block: sed-opal: don't repeat opal_discovery0 in each steps array David Kozub
2019-02-04 15:01   ` Christoph Hellwig
2019-02-04 22:44     ` David Kozub
2019-02-08 22:59       ` Derrick, Jonathan
2019-02-10 17:46         ` David Kozub
2019-02-11 17:22           ` Derrick, Jonathan
2019-02-01 20:50 ` [PATCH v4 16/16] block: sed-opal: rename next to execute_steps David Kozub
2019-02-04 15:01   ` Christoph Hellwig
2019-02-08 22:59   ` Derrick, Jonathan
2019-02-04  8:55 ` David Kozub
2019-02-04  9:44 ` [PATCH v4 00/16] block: sed-opal: support shadow MBR done flag and write David Kozub
2019-02-04 15:04 ` Christoph Hellwig
2019-02-04 15:36   ` Scott Bauer
2019-02-04 15:44     ` Christoph Hellwig
2019-02-04 23:06   ` David Kozub
2019-02-05  6:57     ` Christoph Hellwig

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=1549666691.10972.57.camel@intel.com \
    --to=jonathan.derrick@intel.com \
    --cc=axboe@kernel.dk \
    --cc=jonas.rabenstein@studium.uni-erlangen.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sbauer@plzdonthack.me \
    --cc=zub@linux.fjfi.cvut.cz \
    /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.