All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Kay Sievers <kay.sievers@vrfy.org>
Cc: Greg KH <greg@kroah.com>, Greg KH <gregkh@suse.de>,
	Johannes Berg <johannes@sipsolutions.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	"Maciej W. Rozycki" <macro@linux-mips.org>,
	netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH] Driver-core: Fix bluetooth network device rename  regression
Date: Tue, 27 Jul 2010 22:12:51 -0700	[thread overview]
Message-ID: <m1aapcqje4.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <AANLkTimA9Mo0B6MOn31KQ=L+raeCUg6eH3Mqf=vB5AYz@mail.gmail.com> (Kay Sievers's message of "Wed\, 28 Jul 2010 06\:41\:52 +0200")

Kay Sievers <kay.sievers@vrfy.org> writes:

> On Tue, Jul 27, 2010 at 22:53, Eric W. Biederman <ebiederm@xmission.com> wrote:
>> Kay Sievers <kay.sievers@vrfy.org> writes:
>
>>> It should only be used if it's really needed for known used userspace
>>> interfaces. A few others that got converted already did not need it.
>>
>> Interesting.  The symlink creation is slightly buggy in that it is
>> created after the uevent for device creation has been sent.  Which can
>> lead to some interesting races in userspace.
>
> At uevent time the 'subsystem' is specified by the 'sybsystem' link
> and the SUBSYSTEM property in the event environment. The device should
> not really rely on finding itself linked in class. The class and bus
> link collections are only to find a group of devices of the same
> subsystem, and this should not be a real world problem here.

I agree that there should be no real world problems.
The bottom line is that every sysfs attribute should be created
before we send the uevent or else we get horribly subtle
races or we get user space code that starts looping looking
for the interface.

> Also there are plans to merge struct class and struct bus_type
> completely and keep only a few flags around where stuff should show up
> for compatibility. At that point all stuff will be created at the same
> time.

That part seems reasonable.

>> As for the rest the bus compat code is similar but not quite the same
>> as the class code, so I would be extremely reluctant to deploy it
>> except in extremely limited cases.  Backwards compatibility is
>> important, and we should strive our best to maintain backwards
>> compatibility it for the kernel<->userspace ABIs.
>
> Today, the only real difference between class and bus devices are
> these 'collection links', the devices otherwise look completely the
> same. There should be no important difference.

I don't see the class subdirectories created for bus devices, and I
don't see any equivalent.  At least for the network devices this is a
huge difference, because the device namespace is controlled by
userspace and it is NOT ok to have namespace conflicts with arbitrary
sysfs attributes.

> Buses are very much preferred over classes today, no new stuff should
> create any class. The bus directories are extendable and have a
> reasonable layout with the devices/ subdirectory, unlike the flat
> class directories where people got the silly idea to mix devices lists
> with attributes to confuse everything.

Which is generally reasonable.  However busses appear to have the silly
idea that it is ok to mix child child device lists of different kinds
of children with attributes and confuse everything.

At the subsystem level bus devices look better.
At the individual device level bus devices stacked on bus devices 
appear to be a namespace disaster.

Eric


  reply	other threads:[~2010-07-28  5:13 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-16257-10286@https.bugzilla.kernel.org/>
     [not found] ` <20100621150826.762ac9f2.akpm@linux-foundation.org>
2010-06-21 22:22   ` [Bugme-new] [Bug 16257] New: sysfs changes break hwsim and bnep drivers Eric W. Biederman
2010-06-21 22:29     ` Greg KH
2010-06-21 22:55       ` Eric W. Biederman
2010-06-21 23:10         ` Greg KH
2010-06-22  0:05           ` Eric W. Biederman
2010-06-22  3:56             ` Greg KH
2010-07-08 16:31               ` [PATCH] sysfs: Don't allow the creation of symlinks we can't remove Eric W. Biederman
2010-07-08 16:37                 ` [RFC][PATCH] mac80211_hwsim: No parent is better than an illegimate one Eric W. Biederman
2010-07-12  6:46                   ` Johannes Berg
2010-07-12 14:23                     ` Eric W. Biederman
2010-07-12 14:29                       ` Johannes Berg
2010-07-08 21:19                 ` [PATCH] sysfs: Don't allow the creation of symlinks we can't remove Greg KH
2010-07-08 22:28                   ` Eric W. Biederman
2010-07-08 23:06                     ` Greg KH
2010-07-19 20:34                       ` Andrew Morton
2010-07-20 20:13                         ` Greg KH
2010-07-21  5:08                           ` [PATCH 0/2] Support untagged symlinks to tagged directories Eric W. Biederman
2010-07-21  5:10                             ` [PATCH 1/2] sysfs: sysfs_delete_link handle symlinks from untagged " Eric W. Biederman
2010-07-21  5:12                               ` [PATCH 2/2] sysfs: allow creating " Eric W. Biederman
2010-07-21 19:02                             ` [PATCH 0/2] Support untagged symlinks " Greg KH
2010-07-21 20:20                               ` Eric W. Biederman
2010-07-21 20:36                                 ` Greg KH
2010-07-22  9:16                             ` [PATCH] Driver-core: Fix bluetooth network device rename regression Eric W. Biederman
2010-07-22 13:38                               ` Kay Sievers
2010-07-22 14:10                                 ` Johannes Berg
2010-07-22 15:30                                   ` Kay Sievers
2010-07-22 17:18                                 ` Eric W. Biederman
2010-07-22 17:44                                   ` Kay Sievers
2010-07-22 18:20                                     ` Johannes Berg
2010-07-22 18:28                                       ` Greg KH
2010-07-22 18:36                                         ` Johannes Berg
2010-07-22 18:54                                           ` Greg KH
2010-07-23  1:31                                             ` Eric W. Biederman
2010-07-26 18:09                                               ` Greg KH
2010-07-27  9:10                                                 ` Kay Sievers
2010-07-27 13:49                                                   ` Greg KH
2010-07-27 13:59                                                     ` Johannes Berg
2010-07-27 15:09                                                       ` Greg KH
2010-07-27 15:32                                                         ` Kay Sievers
2010-07-27 18:17                                                     ` Eric W. Biederman
2010-07-27 18:24                                                       ` Kay Sievers
2010-07-27 18:36                                                         ` Greg KH
2010-07-27 18:44                                                           ` Eric W. Biederman
2010-07-27 18:54                                                             ` Kay Sievers
2010-07-27 20:53                                                               ` Eric W. Biederman
2010-07-28  4:41                                                                 ` Kay Sievers
2010-07-28  5:12                                                                   ` Eric W. Biederman [this message]
2010-07-28  5:26                                                                     ` Kay Sievers
2010-07-28  7:57                                                                       ` Eric W. Biederman
2010-07-25  5:43                                             ` [PATCH] Driver-core: Always create class directories for classses that support namespaces Eric W. Biederman
2010-07-26 18:07                                               ` Greg KH
2010-07-22 23:03                                       ` [PATCH] Driver-core: Fix bluetooth network device rename regression Kay Sievers
2010-07-10 22:30                 ` [PATCH] sysfs: Don't allow the creation of symlinks we can't remove Maciej W. Rozycki
2010-07-22  9:54                 ` Johannes Berg
2010-07-22 10:05                   ` Eric W. Biederman
2010-07-22 10:10                     ` Johannes Berg
2010-07-22 10:35                       ` Eric W. Biederman
2010-07-22 10:41                         ` Johannes Berg
2010-07-22 11:27                           ` Eric W. Biederman
2010-07-22 11:30                             ` Johannes Berg
2010-07-08 16:55               ` [Bugme-new] [Bug 16257] New: sysfs changes break hwsim and bnep drivers Eric W. Biederman

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=m1aapcqje4.fsf@fess.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@linux-foundation.org \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=johannes@sipsolutions.net \
    --cc=kay.sievers@vrfy.org \
    --cc=macro@linux-mips.org \
    --cc=netdev@vger.kernel.org \
    --cc=rjw@sisk.pl \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.