 arch/x86_64/ia32/ia32_ioctl.c |    2 +-
 drivers/char/tty_io.c         |    3 ---
 drivers/net/slip.c            |    4 ++--
 fs/proc/array.c               |    2 +-
 include/linux/tty.h           |    6 +++++-
 kernel/acct.c                 |    2 +-
 6 files changed, 10 insertions(+), 9 deletions(-)

diff -puN arch/x86_64/ia32/ia32_ioctl.c~KD31-tty_devnum-B5 arch/x86_64/ia32/ia32_ioctl.c
--- 25/arch/x86_64/ia32/ia32_ioctl.c~KD31-tty_devnum-B5	2003-09-21 22:35:09.000000000 -0700
+++ 25-akpm/arch/x86_64/ia32/ia32_ioctl.c	2003-09-21 22:35:09.000000000 -0700
@@ -35,7 +35,7 @@ static int tiocgdev(unsigned fd, unsigne
 	real_tty = (struct tty_struct *)file->private_data;
 	if (!real_tty) 	
 		return -EINVAL; 
-	return put_user(real_tty->device, ptr); 
+	return put_user(tty_devnum(real_tty), ptr); 
 } 
 
 
diff -puN drivers/char/tty_io.c~KD31-tty_devnum-B5 drivers/char/tty_io.c
--- 25/drivers/char/tty_io.c~KD31-tty_devnum-B5	2003-09-21 22:35:09.000000000 -0700
+++ 25-akpm/drivers/char/tty_io.c	2003-09-21 22:35:09.000000000 -0700
@@ -826,7 +826,6 @@ static int init_dev(struct tty_driver *d
 	if(!tty)
 		goto fail_no_mem;
 	initialize_tty_struct(tty);
-	tty->device = MKDEV(driver->major, driver->minor_start) + idx;
 	tty->driver = driver;
 	tty->index = idx;
 	tty_line_name(driver, idx, tty->name);
@@ -854,8 +853,6 @@ static int init_dev(struct tty_driver *d
 		if (!o_tty)
 			goto free_mem_out;
 		initialize_tty_struct(o_tty);
-		o_tty->device = MKDEV(driver->other->major,
-					driver->other->minor_start) + idx;
 		o_tty->driver = driver->other;
 		o_tty->index = idx;
 		tty_line_name(driver->other, idx, o_tty->name);
diff -puN drivers/net/slip.c~KD31-tty_devnum-B5 drivers/net/slip.c
--- 25/drivers/net/slip.c~KD31-tty_devnum-B5	2003-09-21 22:35:09.000000000 -0700
+++ 25-akpm/drivers/net/slip.c	2003-09-21 22:35:09.000000000 -0700
@@ -869,12 +869,12 @@ slip_open(struct tty_struct *tty)
 
 	/* OK.  Find a free SLIP channel to use. */
 	err = -ENFILE;
-	if ((sl = sl_alloc(tty->device)) == NULL)
+	if ((sl = sl_alloc(tty_devnum(tty))) == NULL)
 		goto err_exit;
 
 	sl->tty = tty;
 	tty->disc_data = sl;
-	sl->line = tty->device;
+	sl->line = tty_devnum(tty);
 	sl->pid = current->pid;
 	if (tty->driver->flush_buffer)
 		tty->driver->flush_buffer(tty);
diff -puN fs/proc/array.c~KD31-tty_devnum-B5 fs/proc/array.c
--- 25/fs/proc/array.c~KD31-tty_devnum-B5	2003-09-21 22:35:09.000000000 -0700
+++ 25-akpm/fs/proc/array.c	2003-09-21 22:35:09.000000000 -0700
@@ -306,7 +306,7 @@ int proc_pid_stat(struct task_struct *ta
 		mm = mmgrab(mm);
 	if (task->tty) {
 		tty_pgrp = task->tty->pgrp;
-		tty_nr = task->tty->device;
+		tty_nr = tty_devnum(task->tty);
 	}
 	task_unlock(task);
 	if (mm) {
diff -puN include/linux/tty.h~KD31-tty_devnum-B5 include/linux/tty.h
--- 25/include/linux/tty.h~KD31-tty_devnum-B5	2003-09-21 22:35:09.000000000 -0700
+++ 25-akpm/include/linux/tty.h	2003-09-21 22:35:09.000000000 -0700
@@ -264,7 +264,6 @@ struct tty_struct {
 	char name[64];
 	int pgrp;
 	int session;
-	dev_t	device;
 	unsigned long flags;
 	int count;
 	struct winsize winsize;
@@ -419,5 +418,10 @@ extern void console_print(const char *);
 extern int vt_ioctl(struct tty_struct *tty, struct file * file,
 		    unsigned int cmd, unsigned long arg);
 
+static inline dev_t tty_devnum(struct tty_struct *tty)
+{
+	return MKDEV(tty->driver->major, tty->driver->minor_start) + tty->index;
+}
+
 #endif /* __KERNEL__ */
 #endif
diff -puN kernel/acct.c~KD31-tty_devnum-B5 kernel/acct.c
--- 25/kernel/acct.c~KD31-tty_devnum-B5	2003-09-21 22:35:09.000000000 -0700
+++ 25-akpm/kernel/acct.c	2003-09-21 22:35:09.000000000 -0700
@@ -342,7 +342,7 @@ static void do_acct_process(long exitcod
 	ac.ac_stime = encode_comp_t(current->stime);
 	ac.ac_uid = current->uid;
 	ac.ac_gid = current->gid;
-	ac.ac_tty = current->tty ? current->tty->device : 0;
+	ac.ac_tty = current->tty ? tty_devnum(current->tty) : 0;
 
 	ac.ac_flag = 0;
 	if (current->flags & PF_FORKNOEXEC)

_
