lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ac3eb2510903290936tc80e904o2266108bd6c04cf2@mail.gmail.com>
Date:	Sun, 29 Mar 2009 18:36:46 +0200
From:	Kay Sievers <kay.sievers@...y.org>
To:	Jean Delvare <khali@...ux-fr.org>
Cc:	Greg Kroah-Hartman <gregkh@...e.de>, linux-kernel@...r.kernel.org,
	Mauro Carvalho Chehab <mchehab@...radead.org>,
	Michael E Brown <Michael_E_Brown@...l.com>
Subject: Re: Class device namespaces

On Sun, Mar 29, 2009 at 17:48, Jean Delvare <khali@...ux-fr.org> wrote:
> I am a little confused by the directories created when one registers a
> class device. When a class device is registered as the children of a
> real device, a subdirectory by the class name is created, and the class
> device is created there, effectively granting each class a separate
> namespace. Example:
>
> /sys/devices/pci0000:00/0000:00:1f.3/i2c-adapter/i2c-0
>
> where 0000:00:1f.3 is the physical device, i2c-adapter the class name
> and i2c-0 the class device.
>
> OTOH, if I create a class device as the children of another class
> device, the class device is created directly, without a directory
> between the parent and the child. Example:
>
> /sys/class/i2c-adapter/i2c-0/i2c-0
>
> where the first i2c-0 is an i2c-adapter class device, and the second
> i2c-0 is an i2c-dev class device. I would have expected:
>
> /sys/class/i2c-adapter/i2c-0/i2c-dev/i2c-0
>
> The current behavior seems inconsistent to me. Is it done so on purpose,
> or is this accidental? If on purpose, what's the reason?

It's on purpose. The "glue" directory exists only between class
devices and bus devices. There is no need for class devices to have
such a "glue". When we moved the class devs as childs of the bus devs,
people complained, that they could no longer rename their netif to
"irq", because the name was already taken by a pci dev atrribute. :)

> I am asking because this is causing trouble in practice. We have both
> i2c-dev and firmware_class which try to create class devices by the
> same name and this of course collides. While I would blame
> firmware_class for coming up with an horrible naming scheme (or
> actually, for not coming up with any naming scheme) it might still be a
> good idea to prevent such collisions at the driver core level.

You have multiple instances, which request a firmware file for the
same parent device at the same time? Can't they request the firmware
for the actual child instead of using the same parent?

If the same parent needs to work, the firmware class needs to be fixed
to allow that. Maybe it should use the requested firmware filename
with the '/' translated to '!' as the name in sysfs, instead of the
easy-to-have-a-clash device name of the parent?

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ