linux/arch/um/drivers
Jeff Dike 165dc59116 [PATCH] uml: Simplify console opening/closing and irq registration
This patch simplifies the opening and closing of host console devices and the
registration and deregistration of IRQs.  The intent is to make it obvious
that an IRQ can't exist without an open file descriptor.

chan_enable will now open the channel, and when both opening and IRQ
registration are desired, this should be used.  Opening only is done for the
initial console, so that interface still needs to exist.

The free_irqs_later interface is now gone.  It was intended to avoid freeing
an IRQ while it was being processed.  It did this, but it didn't eliminate the
possiblity of free_irq being called from an interrupt, which is bad.  In its
place is a list of irqs to be freed, which is processed by the signal handler
just before exiting.  close_one_chan now disables irqs.

When a host device disappears, it is just closed, and that disables IRQs.

The device id registered with the IRQ is now the chan structure, not the tty.
This is because the interrupt arrives on a descriptor associated with the
channel.  This caused equivalent changes in the arguments to line_timer_cb.
line_disable is gone since it is not used any more.

The count field in the line structure is gone.  tty->count is used instead.

The complicated logic in sigio_handler with freeing IRQs when necessary and
making sure its idea of the next irq is correct is now much simpler.  The irq
list can't be rearranged underneath it, so it is now a simple list walk.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-06 08:33:46 -08:00
..
chan_kern.c [PATCH] uml: Simplify console opening/closing and irq registration 2006-01-06 08:33:46 -08:00
chan_user.c [PATCH] uml console channels: fix the API of console_write 2005-11-13 18:14:14 -08:00
cow_sys.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cow_user.c [PATCH] uml: cleanup byte order macros for COW driver 2005-10-10 08:36:00 -07:00
cow.h [PATCH] uml: cleanup whitespace for COW driver 2005-10-10 08:36:00 -07:00
daemon_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
daemon_user.c [PATCH] uml: fix daemon transport exit path bug 2005-11-13 18:14:15 -08:00
daemon.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fd.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
harddog_kern.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
harddog_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
hostaudio_kern.c [PATCH] uml: update module interface 2005-07-27 16:25:48 -07:00
line.c [PATCH] uml: Simplify console opening/closing and irq registration 2006-01-06 08:33:46 -08:00
Makefile [PATCH] uml: revert block driver use of host AIO 2005-10-12 08:22:26 -07:00
mcast_kern.c [PATCH] uml: multicast driver cleanup 2005-05-20 15:48:17 -07:00
mcast_user.c [PATCH] uml: fix mcast network driver error handling 2005-11-13 18:14:14 -08:00
mcast.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mconsole_kern.c [PATCH] uml: Add static initializations and declarations 2006-01-06 08:33:46 -08:00
mconsole_user.c [PATCH] uml: revert "run mconsole "sysrq" in process context" 2005-09-30 12:41:18 -07:00
mmapper_kern.c [PATCH] mmaper_kern.c fixes [buffer overruns] 2005-08-27 10:11:40 -07:00
net_kern.c [PATCH] uml: Add static initializations and declarations 2006-01-06 08:33:46 -08:00
net_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
null.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcap_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcap_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcap_user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
port_kern.c [PATCH] useless linux/irq.h includes (arch/um) 2005-09-30 08:42:24 -07:00
port_user.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
port.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pty.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
random.c [PATCH] um: fix-up schedule_timeout() usage 2005-11-07 07:53:56 -08:00
slip_common.c [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slip_common.h [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slip_kern.c [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slip_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
slip.h [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slirp_kern.c [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slirp_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
slirp.h [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
ssl.c [PATCH] uml: move console configuration 2006-01-06 08:33:46 -08:00
ssl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
stderr_console.c [PATCH] uml: compile fixes for gcc 4 2005-06-08 16:21:12 -07:00
stdio_console.c [PATCH] uml: move console configuration 2006-01-06 08:33:46 -08:00
stdio_console.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tty.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
ubd_kern.c [PATCH] uml: non-void functions should return something 2006-01-06 08:33:45 -08:00
ubd_user.c [PATCH] uml: revert block driver use of host AIO 2005-10-12 08:22:26 -07:00
xterm_kern.c [PATCH] uml: add and use generic hw_controller_type->release 2005-06-21 19:07:32 -07:00
xterm.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
xterm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00