[PATCH] nvme: prevent id ctrl csi for specs below 2.0

Alexander Motin mav at ixsystems.com
Mon Sep 11 12:29:34 PDT 2023


On 11.09.2023 14:40, Keith Busch wrote:
> On Mon, Sep 11, 2023 at 02:26:41AM +0500, Ameer Hamza wrote:
>> The 'id ctrl csi' command was introduced in version 2.0, as specified
>> in Section 5.17.2.6 of the NVME Base Specification 2.0. Executing this
>> command on previous NVMe versions returns an "Invalid Field" error,
>> and the error entry is saved in the log page. Although, Commit
>> c917dd96fe41 ("nvme: skip optional id ctrl csi if it failed") reduced
>> the error occurrences, but the error persisted during the initial
>> module load. This patch ensures the command isn't executed on versions
>> older than 2.0, and it also eliminates the skip implementation because
>> NVME_ID_CNS_CS_CTRL is expected to succeed with version 2.0.
> 
> NVMe TP's are allowed to be implemented by versions lower than the
> release that first included it. I recall the first nvme controller I'd
> seen that implemented this identification reported itself as 1.4.

Then there must be a way to detect it.  How otherwise it is not a 
standard violation to send arbitrary effectively vendor-specific 
commands to a drive?

-- 
Alexander Motin



More information about the Linux-nvme mailing list