[PATCH 2/6] nvme: read the subsystem NQN from Identify Controller

Christoph Hellwig hch at lst.de
Fri Jun 16 01:53:51 PDT 2017


On Fri, Jun 16, 2017 at 10:42:34AM +0200, Johannes Thumshirn wrote:
> On 06/15/2017 06:34 PM, Christoph Hellwig wrote:
> > +	/* Generate a "fake" NQN per Figure 254 in NVMe 1.3 + ECN 001 */
> > +	snprintf(ctrl->subnqn, NVMF_NQN_SIZE,
> > +		"nqn.2014.08.org.nvmexpress:%4x%4x",
> > +		le16_to_cpu(id->vid), le16_to_cpu(id->ssvid));
> > +	memcpy(ctrl->subnqn + 35, id->sn, sizeof(id->sn));
> > +	memcpy(ctrl->subnqn + 55, id->mn, sizeof(id->mn));
> > +	memset(ctrl->subnqn + 95, 0, sizeof(ctrl->subnqn) - 95);
> 
> Is there a chance we can do this with a bit less magic values? We can
> calculate all of the offsets.
> 
> Something like:
> 
> off = snprintf(ctrl->subnqn, NVMF_NQN_SIZE,
> 	"nqn.2014.08.org.nvmexpress:%4x%4x",
> 	le16_to_cpu(id->vid), le16_to_cpu(id->ssvid));
> memcpy(ctrl->subnqn + off, id->sn, sizeof(id->sn));
> off += sizeof(id->sn);
> memcpy(ctrl->subnqn + off, id->mn, sizeof(id->mn));
> off += sizeof(id->mn);
> memset(ctrl->subnqn + off, 0, sizeof(ctrl->subnqn) - off);

Not really much more readable, but if there is a preference for this
version I can do it.



More information about the Linux-nvme mailing list