aboutsummaryrefslogtreecommitdiff
path: root/drivers/s390/cio/blacklist.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-06 12:34:53 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-06 12:34:53 -0700
commit2bf1bef0d6c3636353938dd1f183a4522957fc35 (patch)
tree3d0aae8c8454e60b0e53f456b7e94127d91f9ccf /drivers/s390/cio/blacklist.c
parentd7ab7302f970a254997687a1cdede421a5635c68 (diff)
parent996b4a7d8f4e5dd531369396f2312b97e9400cdc (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull more s390 updates from Martin Schwidefsky: "This is the second batch of s390 patches for the 3.10 merge window. Heiko improved the memory detection, this fixes kdump for large memory sizes. Some kvm related memory management work, new ipldev/condev keywords in cio and bug fixes." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/mem_detect: remove artificial kdump memory types s390/mm: add pte invalidation notifier for kvm s390/zcrypt: ap bus rescan problem when toggle crypto adapters on/off s390/memory hotplug,sclp: get rid of per memory increment usecount s390/memory hotplug: provide memory_block_size_bytes() function s390/mem_detect: limit memory detection loop to "mem=" parameter s390/kdump,bootmem: fix bootmem allocator bitmap size s390: get rid of odd global real_memory_size s390/kvm: Change the virtual memory mapping location for Virtio devices s390/zcore: calculate real memory size using own get_mem_size function s390/mem_detect: add DAT sanity check s390/mem_detect: fix lockdep irq tracing s390/mem_detect: move memory detection code to mm folder s390/zfcpdump: exploit new cio_ignore keywords s390/cio: add condev keyword to cio_ignore s390/cio: add ipldev keyword to cio_ignore s390/uaccess: add "fallthrough" comments
Diffstat (limited to 'drivers/s390/cio/blacklist.c')
-rw-r--r--drivers/s390/cio/blacklist.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c
index 2d2a966a3b39..a9fe3de2dec1 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 <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,29 @@ 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 if (strcmp(parm, "condev") == 0) {
+ if (console_devno == -1)
+ continue;
+
+ from_cssid = to_cssid = 0;
+ from_ssid = to_ssid = 0;
+ from = to = console_devno;
} else {
rc = parse_busid(strsep(&parm, "-"), &from_cssid,
&from_ssid, &from, msgtrigger);