From: Dominik Brodowski <linux@dominikbrodowski.net>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org,
linux-usb-devel@lists.sourceforge.net,
Kay Sievers <kay.sievers@vrfy.org>
Subject: Re: [RFC] Changes to the driver model class code.
Date: Tue, 15 Mar 2005 20:08:47 +0100 [thread overview]
Message-ID: <20050315190847.GA1870@isilmar.linta.de> (raw)
In-Reply-To: <20050315170834.GA25475@kroah.com>
On Tue, Mar 15, 2005 at 09:08:34AM -0800, Greg KH wrote:
> Then I moved the USB host controller code to use this new interface.
> That was a bit more complex as it used the struct class and struct
> class_device code directly. As you can see by the patch, the result is
> pretty much identical, and actually a bit smaller in the end.
>
> So I'll be slowly converting the kernel over to using this new
> interface, and when finished, I can get rid of the old class apis (or
> actually, just make them static) so that no one can implement them
> improperly again...
>
> Comments?
The "old" class api _forced_ you to think of reference counting of
dynamically allocated objects, while it gets easier to get reference
counting wrong using this "simple"/"new" interface: while struct class will
always have fine reference counting, the "parent" struct [with struct class
no longer being embedded] needs to be thought of individually; and the
reference count cannot be shared any longer.
Also, it seems to me that you view the class subsystem to be too closely
related to /dev entries -- and for these /dev entries class_simple was
introduced, IIRC. However, /dev is not the reason the class subsystem was
introduced for -- instead, it describes _types_ of devices which want to
share (userspace and in-kernel) interfaces. For example pcmcia sockets which
can reside on different buses, but can be handled (mostly) the same way by
kernel- and userspace. For example, temperature sensors could be exported
using /sys/class/temp_sensors/... -- then userspace wouldn't need to know
whether the temperature was determined using an ACPI BIOS call or by
accessing an i2c device. Such "abstractions", and other kernel code whcih
uses these "abstractions" (a.k.a. class interfaces) are a great feature to
have, and one too less used by now.
Dominik
next prev parent reply other threads:[~2005-03-15 19:17 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-15 17:08 [RFC] Changes to the driver model class code Greg KH
2005-03-15 17:09 ` Greg KH
2005-03-15 17:10 ` Greg KH
2005-03-15 17:10 ` Greg KH
2005-03-15 17:11 ` Greg KH
2005-03-15 17:47 ` Dmitry Torokhov
2005-03-15 19:34 ` Greg KH
2005-03-15 19:47 ` [linux-usb-devel] " Dmitry Torokhov
2005-03-15 20:15 ` Dominik Brodowski
2005-03-15 22:14 ` Greg KH
2005-03-16 1:01 ` Dominik Brodowski
2005-03-16 3:42 ` Dmitry Torokhov
2005-03-27 14:42 ` Dominik Brodowski
2005-03-15 19:08 ` Dominik Brodowski [this message]
2005-03-15 19:30 ` [linux-usb-devel] " Dmitry Torokhov
2005-03-15 19:34 ` Sean
2005-03-15 19:45 ` John Lenz
2005-03-15 19:51 ` Greg KH
2005-03-15 20:06 ` Dominik Brodowski
2005-03-15 20:14 ` [linux-usb-devel] " Dmitry Torokhov
2005-03-15 20:35 ` David Brownell
2005-03-15 20:48 ` Dmitry Torokhov
2005-03-15 21:14 ` David Brownell
2005-03-15 21:23 ` Dominik Brodowski
2005-03-15 22:05 ` Dmitry Torokhov
2005-03-15 22:29 ` David Brownell
2005-03-16 23:16 ` Jon Smirl
2005-03-17 6:17 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050315190847.GA1870@isilmar.linta.de \
--to=linux@dominikbrodowski.net \
--cc=greg@kroah.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox