[PATCH 1/2] nvme: sanitize KATO setting

Christoph Hellwig hch at lst.de
Thu Mar 11 10:55:32 GMT 2021


> +/*
> + * Recommended frequency for KATO commands
> + *
> + * NVMe 1.4 section 7.12.1 states:
> + * The host should send Keep Alive commands at half of the
> + * Keep Alive Timeout accounting for transport roundtrip times [..].
> + */
> +#define NVME_KATO_DELAY(k)	(((k) > 1)?(k) >> 1:(k))

This should have been an inline if added at all, and use proper
formatting, as well as avoiding the shift obsfucation.

I think the best is to just move this into the only caller, where
we also know that ctrl->kato can't be 0 due to the check in
nvme_start_keep_alive:

/*
 * Recommended frequency for KATO commands per  NVMe 1.4 section 7.12.1:
 *
 *     The host should send Keep Alive commands at half of the
 *     Keep Alive Timeout accounting for transport roundtrip times [..].
*/
static inline void nvme_queue_keep_alive_work(struct nvme_ctrl *ctrl)
{
	queue_delayed_work(nvme_wq, &ctrl->ka_work, ctrl->kato * HZ / 2);
}

Also please keep this helper inside of core.c.



More information about the Linux-nvme mailing list