Skip to content

Commit

Permalink
s390/cio: add ipldev keyword to cio_ignore
Browse files Browse the repository at this point in the history
Provide an 'ipldev' keyword to cio_ignore to (un)ignore the
CCW or FCP based boot device.

Reviewed-by: Peter Oberparleiter <[email protected]>
Signed-off-by: Sebastian Ott <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
  • Loading branch information
Sebastian Ott authored and Martin Schwidefsky committed May 2, 2013
1 parent 12d8471 commit 0e6c83d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
13 changes: 7 additions & 6 deletions Documentation/s390/CommonIO
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Command line parameters

Enable logging of debug information in case of ccw device timeouts.

* cio_ignore = {all} |
{<device> | <range of devices>} |
{!<device> | !<range of devices>}
* cio_ignore = device[,device[,..]]

device := {all | [!]ipldev | [!]<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
Expand All @@ -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
Expand Down
21 changes: 19 additions & 2 deletions drivers/s390/cio/blacklist.c
Original file line number Diff line number Diff line change
@@ -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 ([email protected])
* Cornelia Huck ([email protected])
* Arnd Bergmann ([email protected])
Expand All @@ -17,8 +17,9 @@
#include <linux/ctype.h>
#include <linux/device.h>

#include <asm/cio.h>
#include <asm/uaccess.h>
#include <asm/cio.h>
#include <asm/ipl.h>

#include "blacklist.h"
#include "cio.h"
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 0e6c83d

Please sign in to comment.