aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2013-04-30 11:16:17 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-05-02 09:50:20 -0400
commit0e6c83d18759e282fb4cfc19478a4217923421b3 (patch)
tree465961a27c8ce1ffadbb4f8038657d504c9cd406 /drivers/s390
parent12d8471315e01f0663a45fa5b4ae2fc0f38d1dea (diff)
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>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/cio/blacklist.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c
index 2d2a966a3b39..706eb9b6513f 100644
--- a/drivers/s390/cio/blacklist.c
+++ b/drivers/s390/cio/blacklist.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * S/390 common I/O routines -- blacklisting of specific devices 2 * S/390 common I/O routines -- blacklisting of specific devices
3 * 3 *
4 * Copyright IBM Corp. 1999, 2002 4 * Copyright IBM Corp. 1999, 2013
5 * Author(s): Ingo Adlung (adlung@de.ibm.com) 5 * Author(s): Ingo Adlung (adlung@de.ibm.com)
6 * Cornelia Huck (cornelia.huck@de.ibm.com) 6 * Cornelia Huck (cornelia.huck@de.ibm.com)
7 * Arnd Bergmann (arndb@de.ibm.com) 7 * Arnd Bergmann (arndb@de.ibm.com)
@@ -17,8 +17,9 @@
17#include <linux/ctype.h> 17#include <linux/ctype.h>
18#include <linux/device.h> 18#include <linux/device.h>
19 19
20#include <asm/cio.h>
21#include <asm/uaccess.h> 20#include <asm/uaccess.h>
21#include <asm/cio.h>
22#include <asm/ipl.h>
22 23
23#include "blacklist.h" 24#include "blacklist.h"
24#include "cio.h" 25#include "cio.h"
@@ -172,6 +173,22 @@ static int blacklist_parse_parameters(char *str, range_action action,
172 to_cssid = __MAX_CSSID; 173 to_cssid = __MAX_CSSID;
173 to_ssid = __MAX_SSID; 174 to_ssid = __MAX_SSID;
174 to = __MAX_SUBCHANNEL; 175 to = __MAX_SUBCHANNEL;
176 } else if (strcmp(parm, "ipldev") == 0) {
177 if (ipl_info.type == IPL_TYPE_CCW) {
178 from_cssid = 0;
179 from_ssid = ipl_info.data.ccw.dev_id.ssid;
180 from = ipl_info.data.ccw.dev_id.devno;
181 } else if (ipl_info.type == IPL_TYPE_FCP ||
182 ipl_info.type == IPL_TYPE_FCP_DUMP) {
183 from_cssid = 0;
184 from_ssid = ipl_info.data.fcp.dev_id.ssid;
185 from = ipl_info.data.fcp.dev_id.devno;
186 } else {
187 continue;
188 }
189 to_cssid = from_cssid;
190 to_ssid = from_ssid;
191 to = from;
175 } else { 192 } else {
176 rc = parse_busid(strsep(&parm, "-"), &from_cssid, 193 rc = parse_busid(strsep(&parm, "-"), &from_cssid,
177 &from_ssid, &from, msgtrigger); 194 &from_ssid, &from, msgtrigger);