From 0e6c83d18759e282fb4cfc19478a4217923421b3 Mon Sep 17 00:00:00 2001 From: Sebastian Ott Date: Tue, 30 Apr 2013 17:16:17 +0200 Subject: [PATCH] s390/cio: add ipldev keyword to cio_ignore Provide an 'ipldev' keyword to cio_ignore to (un)ignore the CCW or FCP based boot device. Reviewed-by: Peter Oberparleiter Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky --- Documentation/s390/CommonIO | 13 +++++++------ drivers/s390/cio/blacklist.c | 21 +++++++++++++++++++-- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Documentation/s390/CommonIO b/Documentation/s390/CommonIO index d378cba..d90a5dd 100644 --- a/Documentation/s390/CommonIO +++ b/Documentation/s390/CommonIO @@ -8,9 +8,9 @@ Command line parameters Enable logging of debug information in case of ccw device timeouts. -* cio_ignore = {all} | - { | } | - {! | !} +* cio_ignore = device[,device[,..]] + + device := {all | [!]ipldev | [!] | [!]-} 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,9 +24,10 @@ Command line parameters 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 '!' 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' 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. 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 2d2a966..706eb9b 100644 --- a/drivers/s390/cio/blacklist.c +++ b/drivers/s390/cio/blacklist.c @@ -1,7 +1,7 @@ /* * S/390 common I/O routines -- blacklisting of specific devices * - * Copyright IBM Corp. 1999, 2002 + * Copyright IBM Corp. 1999, 2013 * Author(s): Ingo Adlung (adlung@de.ibm.com) * Cornelia Huck (cornelia.huck@de.ibm.com) * Arnd Bergmann (arndb@de.ibm.com) @@ -17,8 +17,9 @@ #include #include -#include #include +#include +#include #include "blacklist.h" #include "cio.h" @@ -172,6 +173,22 @@ static int blacklist_parse_parameters(char *str, range_action action, to_cssid = __MAX_CSSID; to_ssid = __MAX_SSID; to = __MAX_SUBCHANNEL; + } else if (strcmp(parm, "ipldev") == 0) { + if (ipl_info.type == IPL_TYPE_CCW) { + from_cssid = 0; + from_ssid = ipl_info.data.ccw.dev_id.ssid; + from = ipl_info.data.ccw.dev_id.devno; + } else if (ipl_info.type == IPL_TYPE_FCP || + ipl_info.type == IPL_TYPE_FCP_DUMP) { + from_cssid = 0; + from_ssid = ipl_info.data.fcp.dev_id.ssid; + from = ipl_info.data.fcp.dev_id.devno; + } else { + continue; + } + to_cssid = from_cssid; + to_ssid = from_ssid; + to = from; } else { rc = parse_busid(strsep(&parm, "-"), &from_cssid, &from_ssid, &from, msgtrigger); -- 2.7.4