Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e6c83d1 authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky
Browse files

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: default avatarPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 12d84713
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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 
@@ -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
+19 −2
Original line number Diff line number Diff line
/*
 *   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 <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"
@@ -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);