Messages in this thread | | | Subject | Re: pktcdvd -> sysfs warning with 2.6.27 | From | Peter Osterlund <> | Date | Tue, 14 Oct 2008 21:53:59 +0200 |
| |
Kay Sievers <kay.sievers@vrfy.org> writes:
> On Tue, 2008-10-14 at 10:38 +0200, Kay Sievers wrote: >> On Tue, Oct 14, 2008 at 7:27 AM, Peter Osterlund <petero2@telia.com> wrote: >> > Greg KH <greg@kroah.com> writes: >> > >> >> Both of those should get "real" majors assigned to them. It's not ok to >> >> randomly go grabbing major:minor numbers like this for code that is in >> >> mainline. >> > >> > It's not about random grabbing. It's about getting a dynamically >> > assigned number. The pktcdvd driver once had static numbers, but at >> > the time when the driver was merged into the mainline kernel, dynamic >> > numbers were considered better. Therefore I changed the driver to use >> > dynamic numbers. >> >> The pktcdvd driver allocates a dynamic block major, which is fine. But >> doesn't it use the same number, and now not allocated, for the char >> devices it uses? That looks like something that needs to fixed, right? >> >> static void pkt_sysfs_dev_new(struct pktcdvd_device *pd) >> { >> if (class_pktcdvd) { >> pd->dev = device_create_drvdata(class_pktcdvd, NULL, >> pd->pkt_dev, NULL, >> "%s", pd->name); > > Something similar to this, with error checking, might be needed. It has > two independent majors now in block and char: > $ grep pkt /proc/devices > 251 pktcdvd-char > 252 pktcdvd
Maybe, but that character device would not be used for anything, besides creating sub-directories in /sys/class/pktcdvd. The driver implements a block device, not a character device.
Is it possible to create a custom directory in sysfs corresponding to a block device? A directory /sys/block/pktcdvd0 is apparently created automatically, but is it possible to extend that directory with driver specific data?
-- Peter Osterlund - petero2@telia.com http://web.telia.com/~u89404340
| |