From f62b69ad6a0844979f8cdab3e090c07fc06c2dcd Mon Sep 17 00:00:00 2001 From: Paul Fulghum Date: Thu, 29 May 2003 21:56:54 -0700 Subject: [PATCH] tty_register_driver This patch reinstates the ability of tty devices to use dynamically allocated major numbers yet specify the minor numbers statically. The synclink drivers do this. --- drivers/char/tty_io.c | 2 +- fs/char_dev.c | 4 ++-- include/linux/fs.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index c95ecbc8bd7e..5b1cbccd11f2 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c @@ -2241,7 +2241,7 @@ int tty_register_driver(struct tty_driver *driver) return 0; if (!driver->major) { - error = alloc_chrdev_region(&dev, driver->num, + error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, (char*)driver->name); if (!error) { driver->major = MAJOR(dev); diff --git a/fs/char_dev.c b/fs/char_dev.c index a2881c94276e..394008aeccde 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c @@ -179,10 +179,10 @@ fail: return PTR_ERR(cd); } -int alloc_chrdev_region(dev_t *dev, unsigned count, char *name) +int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, char *name) { struct char_device_struct *cd; - cd = __register_chrdev_region(0, 0, count, name); + cd = __register_chrdev_region(0, baseminor, count, name); if (IS_ERR(cd)) return PTR_ERR(cd); *dev = MKDEV(cd->major, cd->baseminor); diff --git a/include/linux/fs.h b/include/linux/fs.h index 78b45c4afd9c..9ae05e3ff093 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1059,7 +1059,7 @@ extern void bd_release(struct block_device *); extern void blk_run_queues(void); /* fs/char_dev.c */ -extern int alloc_chrdev_region(dev_t *, unsigned, char *); +extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, char *); extern int register_chrdev_region(dev_t, unsigned, char *); extern int register_chrdev(unsigned int, const char *, struct file_operations *); -- cgit v1.2.3