Re: [PATCH 34/36] tty: add 'active' sysfs attribute to tty0 andconsole device

From: Kay Sievers
Date: Fri Jan 07 2011 - 08:21:19 EST


On Fri, Jan 7, 2011 at 10:09, Jiri Slaby <jslaby@xxxxxxx> wrote:
> On 01/06/2011 11:23 PM, Greg Kroah-Hartman wrote:
>> --- a/drivers/tty/tty_io.c
>> +++ b/drivers/tty/tty_io.c
>> @@ -3232,9 +3232,45 @@ static int __init tty_class_init(void)
>> Âpostcore_initcall(tty_class_init);
>>
>> Â/* 3/2004 jmc: why do these devices exist? */
>> -
>> Âstatic struct cdev tty_cdev, console_cdev;
>>
>> +static ssize_t show_cons_active(struct device *dev,
>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â struct device_attribute *attr, char *buf)
>> +{
>> + Â Â struct console *cs[16];
>> + Â Â int i = 0;
>> + Â Â struct console *c;
>> + Â Â ssize_t count = 0;
>> +
>> + Â Â acquire_console_sem();
>> + Â Â for (c = console_drivers; c; c = c->next) {
>
> This should be:
> for_each_console(c)
> like somebody already suggested.

That's exported now? It was local to printk.c at least that time.

Anyway, the only sensible change here is to convert that home-grown
->next thing to a proper kernel linked list, and use the common
iterators instead of doing it on our own, or export new custom ones.

>> + Â Â Â Â Â Â if (!c->device)
>> + Â Â Â Â Â Â Â Â Â Â continue;
>
> Why are consoles without devices ignored here?

It's a common pattern all over the place. What is a "console without a
device" that would be interesting here?

> Other than that there are 2 build warnings, see below.
>
>> - Â Â device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), NULL, "tty0");
>> + Â Â tty0dev = device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), NULL, "tty0");
>> + Â Â if (IS_ERR(tty0dev))
>> + Â Â Â Â Â Â tty0dev = NULL;
>> + Â Â else
>> + Â Â Â Â Â Â device_create_file(tty0dev, &dev_attr_active);
>
> drivers/tty/vt/vt.c: In function âvty_initâ:
> drivers/tty/vt/vt.c:2997:21: warning: ignoring return value of
> âdevice_create_fileâ, declared with attribute warn_unused_result

The code doesn't even check device_create(). :)

Anyway we actually don't want to check the return value of
file_create(), it's a non-fatal error, if it ever happens.

What's the preferred way to do that:
int ignore = device_create_file()
?

Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/