| From c46a7aec556ffdbdb7357db0b05904b176cb3375 Mon Sep 17 00:00:00 2001 |
| From: Kay Sievers <kay.sievers@vrfy.org> |
| Date: Mon, 20 Jul 2009 16:04:55 +0100 |
| Subject: vc: create vcs(a) devices for consoles |
| |
| From: Kay Sievers <kay.sievers@vrfy.org> |
| |
| commit c46a7aec556ffdbdb7357db0b05904b176cb3375 upstream. |
| |
| The buffer for the consoles are unconditionally allocated at con_init() |
| time, which miss the creation of the vcs(a) devices. |
| |
| Since 2.6.30 (commit 4995f8ef9d3aac72745e12419d7fbaa8d01b1d81, 'vcs: |
| hook sysfs devices into object lifetime instead of "binding"' to be |
| exact) these devices are no longer created at open() and removed on |
| close(), but controlled by the lifetime of the buffers. |
| |
| Reported-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> |
| Tested-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> |
| Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> |
| Signed-off-by: Alan Cox <alan@linux.intel.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/char/vc_screen.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/drivers/char/vc_screen.c |
| +++ b/drivers/char/vc_screen.c |
| @@ -495,11 +495,15 @@ void vcs_remove_sysfs(int index) |
| |
| int __init vcs_init(void) |
| { |
| + unsigned int i; |
| + |
| if (register_chrdev(VCS_MAJOR, "vcs", &vcs_fops)) |
| panic("unable to get major %d for vcs device", VCS_MAJOR); |
| vc_class = class_create(THIS_MODULE, "vc"); |
| |
| device_create(vc_class, NULL, MKDEV(VCS_MAJOR, 0), NULL, "vcs"); |
| device_create(vc_class, NULL, MKDEV(VCS_MAJOR, 128), NULL, "vcsa"); |
| + for (i = 0; i < MIN_NR_CONSOLES; i++) |
| + vcs_make_sysfs(i); |
| return 0; |
| } |