s390/cio: add condev keyword to cio_ignore
Provide a 'condev' keyword to cio_ignore to (un)ignore the
CCW console device.
Reviewed-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
diff --git a/Documentation/s390/CommonIO b/Documentation/s390/CommonIO
index d90a5dd..6e0f63f3 100644
--- a/Documentation/s390/CommonIO
+++ b/Documentation/s390/CommonIO
@@ -10,7 +10,7 @@
* cio_ignore = device[,device[,..]]
- device := {all | [!]ipldev | [!]<devno> | [!]<devno>-<devno>}
+ device := {all | [!]ipldev | [!]condev | [!]<devno> | [!]<devno>-<devno>}
The given devices will be ignored by the common I/O-layer; no detection
and device sensing will be done on any of those devices. The subchannel to
@@ -24,10 +24,11 @@
device numbers (0xabcd or abcd, for 2.4 backward compatibility). If you
give a device number 0xabcd, it will be interpreted as 0.0.abcd.
- You can use the 'all' keyword to ignore all devices. The 'ipldev' keyword can
- be used to refer to the CCW based boot device (this is probably useful only
- when combined with the '!' operator). The '!' operator will cause the I/O-layer
- to _not_ ignore a device. The command line is parsed from left to right.
+ You can use the 'all' keyword to ignore all devices. The 'ipldev' and 'condev'
+ keywords can be used to refer to the CCW based boot device and CCW console
+ device respectively (these are probably useful only when combined with the '!'
+ operator). The '!' operator will cause the I/O-layer to _not_ ignore a device.
+ The command line is parsed from left to right.
For example,
cio_ignore=0.0.0023-0.0.0042,0.0.4711
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c
index 706eb9b..a9fe3de 100644
--- a/drivers/s390/cio/blacklist.c
+++ b/drivers/s390/cio/blacklist.c
@@ -189,6 +189,13 @@
to_cssid = from_cssid;
to_ssid = from_ssid;
to = from;
+ } else if (strcmp(parm, "condev") == 0) {
+ if (console_devno == -1)
+ continue;
+
+ from_cssid = to_cssid = 0;
+ from_ssid = to_ssid = 0;
+ from = to = console_devno;
} else {
rc = parse_busid(strsep(&parm, "-"), &from_cssid,
&from_ssid, &from, msgtrigger);