<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">diff -Nru a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c
--- a/drivers/char/vc_screen.c	Tue Dec 23 12:53:14 2003
+++ b/drivers/char/vc_screen.c	Tue Dec 23 12:53:14 2003
@@ -36,6 +36,7 @@
 #include &lt;linux/kbd_kern.h&gt;
 #include &lt;linux/console.h&gt;
 #include &lt;linux/smp_lock.h&gt;
+#include &lt;linux/device.h&gt;
 #include &lt;asm/uaccess.h&gt;
 #include &lt;asm/byteorder.h&gt;
 #include &lt;asm/unaligned.h&gt;
@@ -469,6 +470,10 @@
 	.open		= vcs_open,
 };
 
+static struct class vc_class = {
+	.name	= "vc",
+};
+
 void vcs_make_devfs(struct tty_struct *tty)
 {
 	devfs_mk_cdev(MKDEV(VCS_MAJOR, tty-&gt;index + 1),
@@ -477,19 +482,26 @@
 	devfs_mk_cdev(MKDEV(VCS_MAJOR, tty-&gt;index + 129),
 			S_IFCHR|S_IRUSR|S_IWUSR,
 			"vcc/a%u", tty-&gt;index + 1);
+	simple_add_class_device(&amp;vc_class, MKDEV(VCS_MAJOR, tty-&gt;index + 1), NULL, "vcs%u", tty-&gt;index + 1);
+	simple_add_class_device(&amp;vc_class, MKDEV(VCS_MAJOR, tty-&gt;index + 129), NULL, "vcsa%u", tty-&gt;index + 1);
 }
 void vcs_remove_devfs(struct tty_struct *tty)
 {
 	devfs_remove("vcc/%u", tty-&gt;index + 1);
 	devfs_remove("vcc/a%u", tty-&gt;index + 1);
+	simple_remove_class_device(MKDEV(VCS_MAJOR, tty-&gt;index + 1));
+	simple_remove_class_device(MKDEV(VCS_MAJOR, tty-&gt;index + 129));
 }
 
 int __init vcs_init(void)
 {
 	if (register_chrdev(VCS_MAJOR, "vcs", &amp;vcs_fops))
 		panic("unable to get major %d for vcs device", VCS_MAJOR);
+	class_register(&amp;vc_class);
 
 	devfs_mk_cdev(MKDEV(VCS_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/0");
 	devfs_mk_cdev(MKDEV(VCS_MAJOR, 128), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/a0");
+	simple_add_class_device(&amp;vc_class, MKDEV(VCS_MAJOR, 0), NULL, "vcs");
+	simple_add_class_device(&amp;vc_class, MKDEV(VCS_MAJOR, 128), NULL, "vcsa");
 	return 0;
 }
</pre></body></html>