Messages in this thread | | | Date | Sun, 30 Nov 2008 15:28:15 +0100 | From | "Kay Sievers" <> | Subject | Re: [PATCH] fix pktcdvd breakage from commit e105b8bfc769b0545b6f0f395179d1e43cbee822 |
| |
On Sun, Nov 30, 2008 at 15:13, Al Viro <viro@zeniv.linux.org.uk> wrote: > On Sun, Nov 30, 2008 at 02:57:14PM +0100, Kay Sievers wrote: >> > "It" being udev, presumably? >> >> Yes, udev, mdev, and a few other tools people use to populate /dev >> from the kernel supplied device information. >> >> > What a mess... How does drivers/usb/core/devio.c avoid essentially the same >> > problem? >> >> It's a special case, where two "struct device" have the same dev_t, >> but they both point to and handle the same device, so it's fine. The >> usb_device class is deprecated, no recent distro uses it, and will be >> removed some day. > > Would that happened to udev as well... Yeah, I know, but one can dream ;-/
If there are two devices with the same dev_t, and udev is configured to create the same names in /dev, it will create the node for the first event, and reuse is for the second identical event. There is no problem here.
> Bloody wonderful. So we have > * userland-exposed layout of directory trees created by pktcdvd > * uevent mess generated by device_create() and *also* userland-exposed > > So we need to preserve the layout, with the easiest way probably being "add > one more ktype and use kobject_init_and_add() instead of that device_create()". > Sigh...
What do you mean? We just need to replace the bogus "pd->pkt_dev" with MKDEV(0, 0) and we are fine.
Kay
| |