On Mon, 2016-08-15 at 22:41 -0300, Helen Koike wrote:
> > +struct nvme_doorbell_memory { > + __u8 opcode; > + __u8 flags; > + __u16 command_id; > + __u32 rsvd1[5]; > + __le64 prp1; > + __le64 prp2; > + __u32 rsvd12[6]; > +}; > + > struct nvme_command { > union { > struct nvme_common_command common; > @@ -845,6 +858,7 @@ struct nvme_command { > struct nvmf_connect_command connect; > struct nvmf_property_set_command prop_set; > struct nvmf_property_get_command prop_get; > + struct nvme_doorbell_memory doorbell_memory; > }; > }; This looks like a new NVMe command being introduced, not found in the latest NVMe specs (NVMe 1.2.1 spec or NVMe-over-Fabrics 1.0 spec)? This is a big NACK, the command needs to be part of the NVMe standard before adding it to the NVMe code base (this is exactly how NVMe-over- Fabrics standard got implemented). I would bring your proposal to nvmexpress.org. Jay > > @@ -934,6 +948,9 @@ enum { > /* > * Media and Data Integrity Errors: > */ > +#ifdef CONFIG_NVME_VDB > + NVME_SC_DOORBELL_MEMORY_INVALID = 0x1C0, > +#endif > NVME_SC_WRITE_FAULT = 0x280, > NVME_SC_READ_ERROR = 0x281, > NVME_SC_GUARD_CHECK = 0x282,