1
0
Fork 0

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 <peter.oberparleiter@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
hifive-unleashed-5.1
Sebastian Ott 2013-04-30 17:16:17 +02:00 committed by Martin Schwidefsky
parent 12d8471315
commit 0e6c83d187
2 changed files with 26 additions and 8 deletions

View File

@ -8,9 +8,9 @@ Command line parameters
Enable logging of debug information in case of ccw device timeouts. Enable logging of debug information in case of ccw device timeouts.
* cio_ignore = {all} | * cio_ignore = device[,device[,..]]
{<device> | <range of devices>} |
{!<device> | !<range of devices>} device := {all | [!]ipldev | [!]<devno> | [!]<devno>-<devno>}
The given devices will be ignored by the common I/O-layer; no detection 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 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 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. give a device number 0xabcd, it will be interpreted as 0.0.abcd.
You can use the 'all' keyword to ignore all devices. You can use the 'all' keyword to ignore all devices. The 'ipldev' keyword can
The '!' operator will cause the I/O-layer to _not_ ignore a device. be used to refer to the CCW based boot device (this is probably useful only
The command line is parsed from left to right. 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, For example,
cio_ignore=0.0.0023-0.0.0042,0.0.4711 cio_ignore=0.0.0023-0.0.0042,0.0.4711

View File

@ -1,7 +1,7 @@
/* /*
* S/390 common I/O routines -- blacklisting of specific devices * 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) * Author(s): Ingo Adlung (adlung@de.ibm.com)
* Cornelia Huck (cornelia.huck@de.ibm.com) * Cornelia Huck (cornelia.huck@de.ibm.com)
* Arnd Bergmann (arndb@de.ibm.com) * Arnd Bergmann (arndb@de.ibm.com)
@ -17,8 +17,9 @@
#include <linux/ctype.h> #include <linux/ctype.h>
#include <linux/device.h> #include <linux/device.h>
#include <asm/cio.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/cio.h>
#include <asm/ipl.h>
#include "blacklist.h" #include "blacklist.h"
#include "cio.h" #include "cio.h"
@ -172,6 +173,22 @@ static int blacklist_parse_parameters(char *str, range_action action,
to_cssid = __MAX_CSSID; to_cssid = __MAX_CSSID;
to_ssid = __MAX_SSID; to_ssid = __MAX_SSID;
to = __MAX_SUBCHANNEL; 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 { } else {
rc = parse_busid(strsep(&parm, "-"), &from_cssid, rc = parse_busid(strsep(&parm, "-"), &from_cssid,
&from_ssid, &from, msgtrigger); &from_ssid, &from, msgtrigger);