tty: The big operations rework
- Operations are now a shared const function block as with most other Linux objects - Introduce wrappers for some optional functions to get consistent behaviour - Wrap put_char which used to be patched by the tty layer - Document which functions are needed/optional - Make put_char report success/fail - Cache the driver->ops pointer in the tty as tty->ops - Remove various surplus lock calls we no longer need - Remove proc_write method as noted by Alexey Dobriyan - Introduce some missing sanity checks where certain driver/ldisc combinations would oops as they didn't check needed methods were present [akpm@linux-foundation.org: fix fs/compat_ioctl.c build] [akpm@linux-foundation.org: fix isicom] [akpm@linux-foundation.org: fix arch/ia64/hp/sim/simserial.c build] [akpm@linux-foundation.org: fix kgdb] Signed-off-by: Alan Cox <alan@redhat.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Cc: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
@@ -192,16 +192,14 @@ void proc_tty_register_driver(struct tty_driver *driver)
|
||||
{
|
||||
struct proc_dir_entry *ent;
|
||||
|
||||
if ((!driver->read_proc && !driver->write_proc) ||
|
||||
!driver->driver_name ||
|
||||
if (!driver->ops->read_proc || !driver->driver_name ||
|
||||
driver->proc_entry)
|
||||
return;
|
||||
|
||||
ent = create_proc_entry(driver->driver_name, 0, proc_tty_driver);
|
||||
if (!ent)
|
||||
return;
|
||||
ent->read_proc = driver->read_proc;
|
||||
ent->write_proc = driver->write_proc;
|
||||
ent->read_proc = driver->ops->read_proc;
|
||||
ent->owner = driver->owner;
|
||||
ent->data = driver;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user