Re: [PATCH v9 13/13] nvmet: Optionally use PCI P2P memory

From: Logan Gunthorpe
Date: Thu Oct 04 2018 - 18:29:34 EST




On 2018-10-04 4:20 p.m., Sagi Grimberg wrote:
>> +static inline struct device *nvmet_ns_dev(struct nvmet_ns *ns)
>> +{
>> + return disk_to_dev(ns->bdev->bd_disk);
>> +}
>
> This needs to handle non bdev namespaces.

As it's coded now the helper never gets called unless ns->bdev is not
null. But in general, yes you are right, we should probably return NULL
if ns->bdev is NULL.

> And this?
> --
> diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
> index ef286b72d958..3d12f5f4568d 100644
> --- a/drivers/nvme/target/fc.c
> +++ b/drivers/nvme/target/fc.c
> @@ -2280,6 +2280,7 @@ nvmet_fc_handle_fcp_rqst(struct nvmet_fc_tgtport
> *tgtport,
> fod->req.cmd = &fod->cmdiubuf.sqe;
> fod->req.rsp = &fod->rspiubuf.cqe;
> fod->req.port = tgtport->pe->port;
> + fod->req.p2p_client = tgtport->dev;
>
> /* clear any response payload */
> memset(&fod->rspiubuf, 0, sizeof(fod->rspiubuf));
> --

Sure, I guess that makes sense. I've never tried it with fc hardware but
I assume there's no reason it wouldn't work.

I'll queue these changes up for a v10.

Logan