[PATCH 3/7 v2] nvme-fabrics: Add FC transport FC-NVME definitions

Jon Derrick jonathan.derrick at intel.com
Tue Oct 18 12:49:40 PDT 2016


Hi James,

Fair warning, I don't really deal with the fabrics part of our driver,
and I don't see where your macro is actually used.

On Tue, Oct 18, 2016 at 10:59:43AM -0700, James Smart wrote:
> 
> 
> On 10/12/2016 1:58 AM, Christoph Hellwig wrote:
> >
> >>+/* fills in length of a descriptor. Struture minus descriptor header */
> >>+#define FCNVME_LSDESC_LEN(lsdesc) \
> >>+		cpu_to_be32(sizeof(lsdesc) - (2*(sizeof(u32))))
> >Make this an inline function and use spaces between the operators,
> >please.
> >
> 
> Christoph,
> 
> This can't be an inline - the "lsdesc" field is a type declaration ("struct
> x") and varies. That's the purpose of the define: so it can be applied to
> different structures- e.g. FCNVME_LSDESC_LEN(struct foo) and
> FCNVME_LSDESC_LEN(struct bar)

How about:
static inline __be32 fcnvme_lsdesc_len(size_t lsdesc_sz)
{
	return cpu_to_be32(lsdesc_sz - 2 * sizeof(u32));
}

foo = fcnvme_lsdesc_len(sizeof(struct bar));



More information about the Linux-nvme mailing list