[...]
> +static void nvmet_add_to_changed_ns_log(struct nvmet_ctrl *ctrl, u32 nsid)
> +{
> + mutex_lock(&ctrl->lock);
> + if (ctrl->nr_changed_ns < NVME_MAX_CHANGED_NAMESPACES) {
> + ctrl->changed_ns_list[ctrl->nr_changed_ns++] =
> + cpu_to_le32(nsid);
> + } else if (ctrl->nr_changed_ns == NVME_MAX_CHANGED_NAMESPACES) {
> + ctrl->changed_ns_list[0] = cpu_to_le32(0xffffffff);
> + }
Unless I'm missing it happening somewhere else, the list-full case that sets
element 0 to 0xffffffff should also explicitly zero out the rest of the list to
satisfy the "remainder of the list shall be zero-filled" wording in the spec,
since the other changed_ns_list entries will be filled with non-zero NSIDs when
we get here.
-- Daniel