linux/arch/s390/kernel
Heiko Carstens 15e9b586e0 [S390] Reset infrastructure for re-IPL.
In case of re-IPL and diag308 doesn't work we have to reset all devices
manually and wait synchronously that each reset finished.
This patch adds the necessary infrastucture and the first exploiter of it.

Subsystems that need to add a function that needs to be called at re-IPL
may register/unregister this function via

struct reset_call {
	struct reset_call *next;
	void (*fn)(void);
};

void register_reset_call(struct reset_call *reset);
void unregister_reset_call(struct reset_call *reset);

When the registered function get called the context is:

- all cpus beside the current one are stopped
- all machine checks and interrupts are disabled
- prefixing is disabled
- a default machine check handler is available for use

The registered functions may not take any locks are sleep.

For the common I/O layer part of this patch:

Introduce a reset_call css_reset that does the following:
- clear all subchannels
- perform a rchp on all channel paths and wait for the resulting
  machine checks
This replaces the calls to clear_all_subchannels() and
cio_reset_channel_paths() for kexec and ccw reipl. reipl_ccw_dev() now
uses reipl_find_schid() to determine the subchannel id for a given
device id.
Also remove cio_reset_channel_paths() and friends since they are not
needed anymore.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2006-12-04 15:40:26 +01:00
..
asm-offsets.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
audit.c [PATCH] audit: AUDIT_PERM support 2006-09-11 13:32:30 -04:00
binfmt_elf32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
bitmap.S
compat_audit.c [PATCH] audit: AUDIT_PERM support 2006-09-11 13:32:30 -04:00
compat_exec_domain.c
compat_linux.c [S390] uaccess error handling. 2006-10-27 12:39:22 +02:00
compat_linux.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
compat_ptrace.h
compat_signal.c [S390] uaccess error handling. 2006-10-27 12:39:22 +02:00
compat_wrapper.S [S390] sys_getcpu compat wrapper. 2006-10-27 12:39:10 +02:00
cpcmd.c [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
crash.c [PATCH] kdump: dynamic per cpu allocation of memory for saving cpu registers 2006-01-10 08:01:26 -08:00
debug.c [PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private 2006-09-27 08:26:17 -07:00
ebcdic.c
entry64.S [S390] Whitespace cleanup. 2006-09-28 16:56:37 +02:00
entry.S [S390] Whitespace cleanup. 2006-09-28 16:56:37 +02:00
head31.S [S390] Remove crept in whitespace from head*.S again. 2006-10-04 20:02:15 +02:00
head64.S [S390] Remove crept in whitespace from head*.S again. 2006-10-04 20:02:15 +02:00
head.S [S390] remove salipl memory detection. 2006-12-04 15:39:47 +01:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
ipl.c [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
irq.c [PATCH] lockdep: irqtrace subsystem, move account_system_vtime() calls into kernel/softirq.c 2006-07-03 15:27:10 -07:00
kprobes.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
machine_kexec.c [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
Makefile [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
module.c [S390] Fix sparse warnings. 2006-07-12 16:41:55 +02:00
process.c [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
profile.c [S390] Fix sparse warnings. 2006-07-12 16:41:55 +02:00
ptrace.c [PATCH] drop task argument of audit_syscall_{entry,exit} 2006-05-01 06:06:18 -04:00
reipl64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
reipl.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
reset.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] irq change improvements. 2006-10-11 15:31:26 +02:00
s390_ksyms.c [PATCH] remove bogus arch-specific syscall exports 2006-10-11 11:17:07 -07:00
semaphore.c [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
setup.c [S390] IRQs too early enabled. 2006-11-06 10:49:02 +01:00
signal.c [S390] uaccess error handling. 2006-10-27 12:39:22 +02:00
smp.c [S390] irq change build fixes. 2006-10-06 16:38:35 +02:00
stacktrace.c [S390] stacktrace bug. 2006-10-11 15:31:52 +02:00
sys_s390.c [PATCH] provide kernel_execve on all architectures 2006-10-02 07:57:23 -07:00
syscalls.S [S390] Wire up epoll_pwait syscall. 2006-10-18 18:30:45 +02:00
time.c [S390] Use CONFIG_GENERIC_TIME and define TOD clock source. 2006-10-06 16:38:48 +02:00
traps.c [S390] uaccess error handling. 2006-10-27 12:39:22 +02:00
vmlinux.lds.S [PATCH] vmlinux.lds: consolidate initcall sections 2006-10-27 15:34:51 -07:00
vtime.c [S390] irq change improvements. 2006-10-11 15:31:26 +02:00