On Wed, Aug 04, 2021 at 11:56:34AM +0200, Christoph Hellwig wrote: > Use bvec_virt instead of open coding it. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > drivers/nvme/host/core.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index dfd9dec0c1f6..02ce94b2906b 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -968,12 +968,11 @@ void nvme_cleanup_cmd(struct request *req) > { > if (req->rq_flags & RQF_SPECIAL_PAYLOAD) { > struct nvme_ctrl *ctrl = nvme_req(req)->ctrl; > - struct page *page = req->special_vec.bv_page; > > - if (page == ctrl->discard_page) > + if (req->special_vec.bv_page == ctrl->discard_page) > clear_bit_unlock(0, &ctrl->discard_page_busy); > else > - kfree(page_address(page) + req->special_vec.bv_offset); > + kfree(bvec_virt(&req->special_vec)); > } > } > EXPORT_SYMBOL_GPL(nvme_cleanup_cmd); Looks good. Reviewed-by: Keith Busch <kbusch@xxxxxxxxxx>