[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ac3eb2510810141532m508fab47v8abc87f09ffa4cc7@mail.gmail.com>
Date: Wed, 15 Oct 2008 00:32:23 +0200
From: "Kay Sievers" <kay.sievers@...y.org>
To: "Peter Osterlund" <petero2@...ia.com>
Cc: "Greg KH" <greg@...ah.com>, Nix <nix@...eri.org.uk>,
linux-kernel@...r.kernel.org, a.zummo@...ertech.it
Subject: Re: pktcdvd -> sysfs warning with 2.6.27
On Tue, Oct 14, 2008 at 9:53 PM, Peter Osterlund <petero2@...ia.com> wrote:
> Kay Sievers <kay.sievers@...y.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@...ia.com> wrote:
>>> > Greg KH <greg@...ah.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.
Ah, if the char device nodes are dead anyway, care to change it to
MKDEV(0, 0), so we get rid of the warnings? This should also go into
-stable I guess, after it's fixed in the current tree.
> 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?
A named (will automatically created in a subdir) sysfs attribute group
below the block device maybe?
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/sysfs.h;h=37fa24152bd810f7d9dd67b685e738179b5bfdf9;hb=HEAD#l33
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