2009-07-10 20:43:24

by Gerardo Exequiel Pozzi

[permalink] [raw]
Subject: No more vcs1 and vcsa1 in 2.6.30.N

Hello.

Since upgrade my system to 2.6.30[.1]. I don't have anymore
/sys/devices/virtual/vc/vcs1 and /sys/devices/virtual/vc/vcs1 in
consequence not have anymore the corresponding char devs in /dev.

The problem is with this commit: {vcs: hook sysfs devices into object
lifetime instead of "binding"} [#1]
Reverting it solves the issue.

[#1]
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.30.y.git;a=commitdiff;h=4995f8ef9d3aac72745e12419d7fbaa8d01b1d81

Cheers,


Please CC to me, not subscribed to LKML. Thanks.

--
Gerardo Exequiel Pozzi ( djgera )
http://www.djgera.com.ar
KeyID: 0x1B8C330D
Key fingerprint = 0CAA D5D4 CD85 4434 A219 76ED 39AB 221B 1B8C 330D


2009-07-11 00:19:36

by Kay Sievers

[permalink] [raw]
Subject: Re: No more vcs1 and vcsa1 in 2.6.30.N

On Fri, 2009-07-10 at 17:35 -0300, Gerardo Exequiel Pozzi wrote:
> Since upgrade my system to 2.6.30[.1]. I don't have anymore
> /sys/devices/virtual/vc/vcs1 and /sys/devices/virtual/vc/vcs1 in
> consequence not have anymore the corresponding char devs in /dev.

Seems we missed the consoles, which are always pre-allocated, and not
created on demand. Does this help?

Thanks,
Kay

diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c
index d94d25c..c1791a6 100644
--- 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;
}

2009-07-11 00:49:40

by Gerardo Exequiel Pozzi

[permalink] [raw]
Subject: Re: No more vcs1 and vcsa1 in 2.6.30.N

Kay Sievers wrote:
> On Fri, 2009-07-10 at 17:35 -0300, Gerardo Exequiel Pozzi wrote:
>
>> Since upgrade my system to 2.6.30[.1]. I don't have anymore
>> /sys/devices/virtual/vc/vcs1 and /sys/devices/virtual/vc/vcs1 in
>> consequence not have anymore the corresponding char devs in /dev.
>>
>
> Seems we missed the consoles, which are always pre-allocated, and not
> created on demand. Does this help?
>
> Thanks,
> Kay
>
> diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c
> index d94d25c..c1791a6 100644
> --- 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;
> }
>
>
>
>
Yes, the problem is solved applying this patch. Thanks for the quick fix
Kay.

Good Luck!

--
Gerardo Exequiel Pozzi ( djgera )
http://www.djgera.com.ar
KeyID: 0x1B8C330D
Key fingerprint = 0CAA D5D4 CD85 4434 A219 76ED 39AB 221B 1B8C 330D