OSDN Git Service

s390/cio: Export information about Endpoint-Security Capability
authorSebastian Ott <sebott@linux.ibm.com>
Thu, 8 Oct 2020 13:13:27 +0000 (15:13 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 16 Nov 2020 15:14:37 +0000 (08:14 -0700)
Add a new sysfs attribute 'esc' per chpid. This new attribute exports
the Endpoint-Security-Capability byte of channel-path description block,
which could be 0-None, 1-Authentication, 2 and 3-Encryption.

For example:
$ cat /sys/devices/css0/chp0.34/esc
0

[vneethv@linux.ibm.com: cleaned-up & modified description]

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/s390/cio/chp.c
drivers/s390/cio/chsc.h

index dfcbe54..8d0de6a 100644 (file)
@@ -384,6 +384,20 @@ static ssize_t chp_chid_external_show(struct device *dev,
 }
 static DEVICE_ATTR(chid_external, 0444, chp_chid_external_show, NULL);
 
+static ssize_t chp_esc_show(struct device *dev,
+                           struct device_attribute *attr, char *buf)
+{
+       struct channel_path *chp = to_channelpath(dev);
+       ssize_t rc;
+
+       mutex_lock(&chp->lock);
+       rc = sprintf(buf, "%x\n", chp->desc_fmt1.esc);
+       mutex_unlock(&chp->lock);
+
+       return rc;
+}
+static DEVICE_ATTR(esc, 0444, chp_esc_show, NULL);
+
 static ssize_t util_string_read(struct file *filp, struct kobject *kobj,
                                struct bin_attribute *attr, char *buf,
                                loff_t off, size_t count)
@@ -414,6 +428,7 @@ static struct attribute *chp_attrs[] = {
        &dev_attr_shared.attr,
        &dev_attr_chid.attr,
        &dev_attr_chid_external.attr,
+       &dev_attr_esc.attr,
        NULL,
 };
 static struct attribute_group chp_attr_group = {
index c2b83b6..32fa7fa 100644 (file)
@@ -27,7 +27,8 @@ struct channel_path_desc_fmt1 {
        u8 lsn;
        u8 desc;
        u8 chpid;
-       u32:24;
+       u32:16;
+       u8 esc;
        u8 chpp;
        u32 unused[2];
        u16 chid;