On 06/13/2017 03:12 PM, Andreas Dilger wrote: >> +static int nvme_streams_params(struct nvme_ns *ns) >> +{ >> + struct nvme_ctrl *ctrl = ns->ctrl; >> + struct streams_directive_params s; >> + struct nvme_command c; >> + int ret; >> + >> + memset(&c, 0, sizeof(c)); >> + memset(&s, 0, sizeof(s)); > > Minor nit in a few places in this code - is it more efficient to initialize > these structs at declaration time instead of calling memset(), like: > > struct streams_directive_params s = {}; > struct nvme_command c = {}; > > or alternately initializing them fully at declaration time to avoid zeroing > fields that are immediately being set: > > struct nvme_command c = > { > .directive.opcode = nvme_admin_directive_recv; > .directive.nsid = cpu_to_le32(ns->ns_id); > .directive.numd = sizeof(s); > .directive.doper = NVME_DIR_RCV_ST_OP_PARAM; > .directive.dtype = NVME_DIR_STREAMS; > }; I'm just following the style of the driver for that part. -- Jens Axboe