]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
nvme-sysfs: add 'tls_configured_key' sysfs attribute
authorHannes Reinecke <hare@kernel.org>
Mon, 22 Jul 2024 12:02:23 +0000 (14:02 +0200)
committerKeith Busch <kbusch@kernel.org>
Thu, 22 Aug 2024 20:25:11 +0000 (13:25 -0700)
There is a difference between the negotiated TLS key (which is
always present for a TLS encrypted connection) and the configured
TLS key (which is specified with the --tls_key command line option).
To differentate between these two add a new sysfs attribute
'tls_configured_key' to hold the specified on the command line.

Signed-off-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/sysfs.c

index dc7ceb53147fcf973137ed94a24eef9b2b099c16..2055dad7bc63297a024406ca3dba8f13017c300e 100644 (file)
@@ -743,8 +743,19 @@ static ssize_t tls_key_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(tls_key);
 
+static ssize_t tls_configured_key_show(struct device *dev,
+               struct device_attribute *attr, char *buf)
+{
+       struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
+       struct key *key = ctrl->opts->tls_key;
+
+       return sysfs_emit(buf, "%08x\n", key_serial(key));
+}
+static DEVICE_ATTR_RO(tls_configured_key);
+
 static struct attribute *nvme_tls_attrs[] = {
        &dev_attr_tls_key.attr,
+       &dev_attr_tls_configured_key.attr,
 };
 
 static umode_t nvme_tls_attrs_are_visible(struct kobject *kobj,
@@ -759,6 +770,9 @@ static umode_t nvme_tls_attrs_are_visible(struct kobject *kobj,
        if (a == &dev_attr_tls_key.attr &&
            !ctrl->opts->tls)
                return 0;
+       if (a == &dev_attr_tls_configured_key.attr &&
+           !ctrl->opts->tls_key)
+               return 0;
 
        return a->mode;
 }