]> Git Repo - J-linux.git/blobdiff - drivers/s390/cio/css.c
Merge tag 's390-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[J-linux.git] / drivers / s390 / cio / css.c
index c17d6c99f4044b0ccc86422cf7d71eca75854961..cca1a7c4bb3366e73bf80e107f96931fe94a53d7 100644 (file)
@@ -854,7 +854,7 @@ css_generate_pgid(struct channel_subsystem *css, u32 tod_high)
        if (css_general_characteristics.mcss) {
                css->global_pgid.pgid_high.ext_cssid.version = 0x80;
                css->global_pgid.pgid_high.ext_cssid.cssid =
-                       (css->cssid < 0) ? 0 : css->cssid;
+                       css->id_valid ? css->cssid : 0;
        } else {
                css->global_pgid.pgid_high.cpu_addr = stap();
        }
@@ -877,7 +877,7 @@ static ssize_t real_cssid_show(struct device *dev, struct device_attribute *a,
 {
        struct channel_subsystem *css = to_css(dev);
 
-       if (css->cssid < 0)
+       if (!css->id_valid)
                return -EINVAL;
 
        return sprintf(buf, "%x\n", css->cssid);
@@ -975,7 +975,12 @@ static int __init setup_css(int nr)
        css->device.dma_mask = &css->device.coherent_dma_mask;
 
        mutex_init(&css->mutex);
-       css->cssid = chsc_get_cssid(nr);
+       ret = chsc_get_cssid_iid(nr, &css->cssid, &css->iid);
+       if (!ret) {
+               css->id_valid = true;
+               pr_info("Partition identifier %01x.%01x\n", css->cssid,
+                       css->iid);
+       }
        css_generate_pgid(css, (u32) (get_tod_clock() >> 32));
 
        ret = device_register(&css->device);
This page took 0.029682 seconds and 4 git commands to generate.