Re: [PATCH 1/4] nvdimm: Add wrapper for IOCTL pass thru.

From: Jerry Hoemann
Date: Tue Nov 10 2015 - 16:34:43 EST


On Tue, Nov 10, 2015 at 12:04:22PM -0700, Elliott, Robert (Persistent Memory) wrote:
> > -----Original Message-----
> > From: Linux-nvdimm [mailto:linux-nvdimm-bounces@xxxxxxxxxxxx] On Behalf Of
> > Hoemann, Jerry
> > Sent: Friday, November 6, 2015 4:27 PM
> > Subject: [PATCH 1/4] nvdimm: Add wrapper for IOCTL pass thru.
> ...
> > diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h
> ...
> > +struct ndn_pkg {
> > + struct {
> > + __u8 dsm_uuid[16];
> > + __u32 dsm_in; /* size of _DSM input */
> > + __u32 dsm_out; /* size of user buffer */
> > + __u32 dsm_rev; /* revision of dsm call */
> > + __u32 res[8]; /* reserved must be zero */
> > + __u32 dsm_size; /* size _DSM would write */
> > + } h;
> > + unsigned char buf[];
> > +} __packed;
>
> Given that the _DSM arguments are defined as:
> * Arg0 UUID: Buffer of 16 bytes
> * Arg1 Revision ID: Integer (8 bytes)
> * Arg2 Function Index: Integer (8 bytes)
> * Arg3 Package: function-specific
>
> 1. The __u32 for dsm_rev is not big enough to express all
> possible 8 byte Revision IDs.
>
> 2. The unsigned int cmd (carried outside this structure)
> is not big enough on all platforms (e.g., 32-bit) to
> express all possible Function Indexes.
>
> 3. The Revision ID and Function Index values passed to
> the _DSM are defined as little-endian. Are they
> intended to use native endianness or be little-endian
> in this structure?
>

Thanks, Robert. I will look at these for version 2.

Jerry
--

-----------------------------------------------------------------------------
Jerry Hoemann Software Engineer Hewlett-Packard Enterprise

3404 E Harmony Rd. MS 36 phone: (970) 898-1022
Ft. Collins, CO 80528 FAX: (970) 898-0707
email: jerry.hoemann@xxxxxxx
-----------------------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/