[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