diff mbox

[1/2] lightnvm: create cmd before allocating request

Message ID 1493803145-18082-1-git-send-email-javier@cnexlabs.com (mailing list archive)
State New, archived
Headers show

Commit Message

=?UTF-8?q?Javier=20Gonz=C3=A1lez?= May 3, 2017, 9:19 a.m. UTC
Create nvme command before allocating a request using
nvme_alloc_request, which uses the command direction. Up until now, the
command has been zeroized, so all commands have been allocated as a
read operation.

Signed-off-by: Javier González <javier@cnexlabs.com>
---
 drivers/nvme/host/lightnvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Matias Bjørling May 4, 2017, 8:04 a.m. UTC | #1
On 05/03/2017 11:19 AM, Javier González wrote:
> Create nvme command before allocating a request using
> nvme_alloc_request, which uses the command direction. Up until now, the
> command has been zeroized, so all commands have been allocated as a
> read operation.
>
> Signed-off-by: Javier González <javier@cnexlabs.com>
> ---
>  drivers/nvme/host/lightnvm.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
> index de61a4a03d78..090bbeb655bc 100644
> --- a/drivers/nvme/host/lightnvm.c
> +++ b/drivers/nvme/host/lightnvm.c
> @@ -503,6 +503,8 @@ static int nvme_nvm_submit_io(struct nvm_dev *dev, struct nvm_rq *rqd)
>  	if (!cmd)
>  		return -ENOMEM;
>
> +	nvme_nvm_rqtocmd(rq, rqd, ns, cmd);
> +
>  	rq = nvme_alloc_request(q, (struct nvme_command *)cmd, 0, NVME_QID_ANY);
>  	if (IS_ERR(rq)) {
>  		kfree(cmd);
> @@ -517,8 +519,6 @@ static int nvme_nvm_submit_io(struct nvm_dev *dev, struct nvm_rq *rqd)
>  		rq->__data_len = 0;
>  	}
>
> -	nvme_nvm_rqtocmd(rq, rqd, ns, cmd);
> -
>  	rq->end_io_data = rqd;
>
>  	blk_execute_rq_nowait(q, NULL, rq, 0, nvme_nvm_end_io);
>

Reviewed-by: Matias Bjørling <matias@cnexlabs.com>

Jens, would you pick this up when convenient? Thank you!
Christoph Hellwig May 4, 2017, 11:27 a.m. UTC | #2
On Wed, May 03, 2017 at 11:19:04AM +0200, Javier González wrote:
> Create nvme command before allocating a request using
> nvme_alloc_request, which uses the command direction. Up until now, the
> command has been zeroized, so all commands have been allocated as a
> read operation.

Hah.. Looks fine:

Reviewed-by: Christoph Hellwig <hch@lst.de>
Jens Axboe May 4, 2017, 1:53 p.m. UTC | #3
On Wed, May 03 2017, Javier González wrote:
> Create nvme command before allocating a request using
> nvme_alloc_request, which uses the command direction. Up until now, the
> command has been zeroized, so all commands have been allocated as a
> read operation.

Applied 1-2. Javier, please use a cover letter when sending more than 1
patch at the time, makes it easier to reply to the series as a whole.
=?UTF-8?q?Javier=20Gonz=C3=A1lez?= May 4, 2017, 1:55 p.m. UTC | #4
> On 4 May 2017, at 15.53, Jens Axboe <axboe@kernel.dk> wrote:
> 
> On Wed, May 03 2017, Javier González wrote:
>> Create nvme command before allocating a request using
>> nvme_alloc_request, which uses the command direction. Up until now, the
>> command has been zeroized, so all commands have been allocated as a
>> read operation.
> 
> Applied 1-2. Javier, please use a cover letter when sending more than 1
> patch at the time, makes it easier to reply to the series as a whole.
> 


Thanks Jens. I will.

Javier
diff mbox

Patch

diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index de61a4a03d78..090bbeb655bc 100644
--- a/drivers/nvme/host/lightnvm.c
+++ b/drivers/nvme/host/lightnvm.c
@@ -503,6 +503,8 @@  static int nvme_nvm_submit_io(struct nvm_dev *dev, struct nvm_rq *rqd)
 	if (!cmd)
 		return -ENOMEM;
 
+	nvme_nvm_rqtocmd(rq, rqd, ns, cmd);
+
 	rq = nvme_alloc_request(q, (struct nvme_command *)cmd, 0, NVME_QID_ANY);
 	if (IS_ERR(rq)) {
 		kfree(cmd);
@@ -517,8 +519,6 @@  static int nvme_nvm_submit_io(struct nvm_dev *dev, struct nvm_rq *rqd)
 		rq->__data_len = 0;
 	}
 
-	nvme_nvm_rqtocmd(rq, rqd, ns, cmd);
-
 	rq->end_io_data = rqd;
 
 	blk_execute_rq_nowait(q, NULL, rq, 0, nvme_nvm_end_io);