Merge commit 'v3.4-rc4' into next
[linux-2.6-microblaze.git] / include / linux / tty_driver.h
index 5cf6850..6e6dbb7 100644 (file)
@@ -50,6 +50,8 @@
  *     Note that tty_shutdown() is not called if ops->shutdown is defined.
  *     This means one is responsible to take care of calling ops->remove (e.g.
  *     via tty_driver_remove_tty) and releasing tty->termios.
+ *     Note that this hook may be called from *all* the contexts where one
+ *     uses tty refcounting (e.g. tty_port_tty_get).
  *
  *
  * void (*cleanup)(struct tty_struct * tty);
  *     if provided (otherwise EINVAL will be returned).
  */
 
+#include <linux/export.h>
 #include <linux/fs.h>
 #include <linux/list.h>
 #include <linux/cdev.h>
@@ -298,7 +301,6 @@ struct tty_driver {
        int     name_base;      /* offset of printed name */
        int     major;          /* major device number */
        int     minor_start;    /* start of minor device number */
-       int     minor_num;      /* number of *possible* devices */
        int     num;            /* number of devices allocated */
        short   type;           /* type of tty driver */
        short   subtype;        /* subtype of tty driver */
@@ -324,7 +326,7 @@ struct tty_driver {
 
 extern struct list_head tty_drivers;
 
-extern struct tty_driver *alloc_tty_driver(int lines);
+extern struct tty_driver *__alloc_tty_driver(int lines, struct module *owner);
 extern void put_tty_driver(struct tty_driver *driver);
 extern void tty_set_operations(struct tty_driver *driver,
                        const struct tty_operations *op);
@@ -332,6 +334,8 @@ extern struct tty_driver *tty_find_polling_driver(char *name, int *line);
 
 extern void tty_driver_kref_put(struct tty_driver *driver);
 
+#define alloc_tty_driver(lines) __alloc_tty_driver(lines, THIS_MODULE)
+
 static inline struct tty_driver *tty_driver_kref_get(struct tty_driver *d)
 {
        kref_get(&d->kref);