convert tty_drivers to list_heads
Subsystems (3)
PATCH 1/1 convert tty_drivers to list_heads
Convert the tty_drivers list to use list_heads instead of open coded doubly-linked lists.
--
Brian Gerst
drivers/char/tty_io.c +5 -14
@@ -113,7 +113,7 @@#define CHECK_TTY_COUNT 1struct termios tty_std_termios;/* for the benefit of tty drivers */ -struct tty_driver *tty_drivers;/* linked list of tty drivers */ +LIST_HEAD (tty_drivers);/* linked list of tty drivers */ struct tty_ldisc ldiscs[NR_LDISCS ];/* line disc dispatch table */ #ifdef CONFIG_UNIX98_PTYS
@@ -338,7 +338,7 @@ minor =minor (device); major =major (device); -for (p = tty_drivers; p; p = p->next) { +list_for_each_entry (p, &tty_drivers, tty_drivers) {if (p->major != major)continue ;if (minor < p->minor_start)
@@ -2083,10 +2083,7 @@if (!driver->put_char) driver->put_char = tty_default_put_char; - driver->prev =0 ; - driver->next = tty_drivers; -if (tty_drivers) tty_drivers->prev = driver; - tty_drivers = driver; +list_add (&driver->tty_drivers, &tty_drivers);if ( !(driver->flags &TTY_DRIVER_NO_DEVFS ) ) {for (i =0 ; i < driver->num; i++)
@@ -2110,7 +2107,7 @@if (*driver->refcount)return -EBUSY ; -for (p = tty_drivers; p; p = p->next) { +list_for_each_entry (p, &tty_drivers, tty_drivers) {if (p == driver) found++;else if (p->major == driver->major)
@@ -2127,13 +2124,7 @@ }else register_chrdev (driver->major, othername, &tty_fops); -if (driver->prev) - driver->prev->next = driver->next; -else - tty_drivers = driver->next; - -if (driver->next) - driver->next->prev = driver->prev; +list_del (&driver->tty_drivers);/* * Free the termios and termios_locked structures because
fs/proc/proc_tty.c +1 -2
@@ -14,7 +14,6 @@#include <linux/tty.h> #include <asm/bitops.h> -extern struct tty_driver *tty_drivers;/* linked list of tty drivers */ extern struct tty_ldisc ldiscs[];
@@ -40,7 +39,7 @@char range[20 ], deftype[20 ];char *type; -for (p = tty_drivers; p; p = p->next) { +list_for_each_entry (p, &tty_drivers, tty_drivers) {if (p->num >1 )sprintf (range,"%d-%d" , p->minor_start, p->minor_start + p->num -1 );
include/linux/tty_driver.h +4 -6
@@ -116,6 +116,7 @@*/ #include <linux/fs.h> +#include <linux/list.h> struct tty_driver {int magic;/* magic number for this structure */
@@ -170,14 +171,11 @@ int count, int *eof, void *data);int (*write_proc)(struct file *file,const char *buffer,unsigned long count,void *data); - -/* -* linked list pointers -*/ -struct tty_driver *next; -struct tty_driver *prev; +struct list_head tty_drivers; }; +extern struct list_head tty_drivers; +/* tty driver magic number */ #define TTY_DRIVER_MAGIC 0x5402