nvme: lightnvm: frees wrong cmd structure
authorMatias Bjørling <m@bjorling.me>
Mon, 28 Nov 2016 21:38:52 +0000 (22:38 +0100)
committerJens Axboe <axboe@fb.com>
Tue, 29 Nov 2016 19:12:51 +0000 (12:12 -0700)
When struct nvme_request was introduced, the nvme_nvm_submit_io was
converted to the new interface. The interface moves nvme_nvm_command
data structure into the struct request pdu. On io completion, rq->cmd is
freed, which should have been the dereferenced pdu nvme_request->cmd.

Fixes: d49187e97e94 "nvme: introduce struct nvme_request"
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/nvme/host/lightnvm.c

index 442f67774ea9db97526de6ac05e43dc57416fd44..de3dc87226bb609e32a63b5b7ab650e50f088c2c 100644 (file)
@@ -477,7 +477,7 @@ static void nvme_nvm_end_io(struct request *rq, int error)
        rqd->ppa_status = nvme_req(rq)->result.u64;
        nvm_end_io(rqd, error);
 
-       kfree(rq->cmd);
+       kfree(nvme_req(rq)->cmd);
        blk_mq_free_request(rq);
 }