linux/arch/um/kernel
Paolo 'Blaisorblade' Giarrusso dbce706e25 [PATCH] uml: add and use generic hw_controller_type->release
With Chris Wedgwood <cw@f00f.org>

Currently UML must explicitly call the UML-specific
free_irq_by_irq_and_dev() for each free_irq call it's done.

This is needed because ->shutdown and/or ->disable are only called when the
last "action" for that irq is removed.

Instead, for UML shared IRQs (UML IRQs are very often, if not always,
shared), for each dev_id some setup is done, which must be cleared on the
release of that fd.  For instance, for each open console a new instance
(i.e.  new dev_id) of the same IRQ is requested().

Exactly, a fd is stored in an array (pollfds), which is after read by a
host thread and passed to poll().  Each event registered by poll() triggers
an interrupt.  So, for each free_irq() we must remove the corresponding
host fd from the table, which we do via this -release() method.

In this patch we add an appropriate hook for this, and remove all uses of
it by pointing the hook to the said procedure; this is safe to do since the
said procedure.

Also some cosmetic improvements are included.

This is heavily based on some work by Chris Wedgwood, which however didn't
get the patch merged for something I'd call a "misunderstanding" (the need
for this patch wasn't cleanly explained, thus adding the generic hook was
felt as undesirable).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
CC: Ingo Molnar <mingo@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-21 19:07:32 -07:00
..
skas [PATCH] uml: fix strace -f 2005-06-08 16:21:12 -07:00
tt [PATCH] uml: remove jail mode + other leftovers 2005-05-28 16:46:14 -07:00
config.c.in Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dyn.lds.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
exec_kern.c [PATCH] uml: remove 2_5compat.h 2005-05-28 16:46:11 -07:00
exitcode.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gmon_syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gprof_syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
helper.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
initrd.c [PATCH] uml: initrd cleanup 2005-05-20 15:48:18 -07:00
irq_user.c [PATCH] uml: add and use generic hw_controller_type->release 2005-06-21 19:07:32 -07:00
irq.c [PATCH] uml: add and use generic hw_controller_type->release 2005-06-21 19:07:32 -07:00
ksyms.c [PATCH] uml: Export clear_user_* 2005-05-20 15:48:18 -07:00
main.c [PATCH] uml: remove duplicate includes 2005-06-13 20:58:43 -07:00
Makefile [PATCH] uml: initrd cleanup 2005-05-20 15:48:18 -07:00
mem_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mem.c [PATCH] mm: remove PG_highmem 2005-06-21 18:46:17 -07:00
physmem.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
process_kern.c [PATCH] uml: remove unused code 2005-05-28 16:46:12 -07:00
process.c [PATCH] uml: use fork instead of clone 2005-06-13 20:58:43 -07:00
ptrace.c [PATCH] uml: fix a couple of warnings 2005-05-28 16:46:11 -07:00
reboot.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
resource.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigio_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigio_user.c [PATCH] uml: Fix SIGWINCH relaying 2005-05-05 16:36:36 -07:00
signal_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
signal_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
syscall_kern.c [PATCH] uml: x86_64 fixes 2005-05-06 22:09:31 -07:00
syscall_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysrq.c [PATCH] uml: stack dump fix 2005-05-28 16:46:13 -07:00
tempfile.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
time_kern.c [PATCH] uml: s390 preparation, delay moved to arch 2005-05-05 16:36:38 -07:00
time.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
trap_kern.c [PATCH] uml: remove 2_5compat.h 2005-05-28 16:46:11 -07:00
trap_user.c [PATCH] uml: S390 preparation, abstract host page fault data 2005-05-05 16:36:36 -07:00
tty_log.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uaccess_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
um_arch.c [PATCH] uml: remove duplicate includes 2005-06-13 20:58:43 -07:00
umid.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uml.lds.S [PATCH] uml: small fixes left over from rc4 2005-05-20 15:48:17 -07:00
user_util.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vmlinux.lds.S [PATCH] uml: include the linker script rather than symlink it 2005-05-05 16:36:33 -07:00