netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Kay Sievers <kay.sievers@vrfy.org>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	Greg KH <greg@kroah.com>, netdev <netdev@vger.kernel.org>
Subject: Re: [RFC][PATCH] Fix another namespace issue with devices assigned to  classes
Date: Thu, 03 Jun 2010 03:00:48 -0700	[thread overview]
Message-ID: <m1vda0o2pb.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <AANLkTinTSQ6Ncz3FqgFHasJc2ZKfm2vaweJHUam9b-gi@mail.gmail.com> (Kay Sievers's message of "Thu\, 3 Jun 2010 11\:30\:20 +0200")

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

> On Thu, Jun 3, 2010 at 02:53, Eric W. Biederman <ebiederm@xmission.com> wrote:
>>
>> In the last painful restructuring of sysfs we created started
>> creating class directories under normal devices so we could place
>> devices such as network devices directly under their the hardware
>> that implements them instead of in their class directories like
>> /sys/class/net/.  This creation of class directories avoids the
>> need to worry about namespace clonflicts if something is renamed.
>>
>> A special exception was made for devices that were still placed
>> directly in their class directory.  Looking at how this interacts
>> with the wireless network devices it appears this special exception
>> is either completely unneeded or at least needs to be restricted to
>> a parent device with the same class as the child device.  Certainly
>> in the case of unrelated classes we very much have the possibility
>> of namespace classes and we should be creating the subdirectory.
>
> The class-glue-directories are only created between a bus-parent and
> and a class device. Class devices usually don't have other class
> devices as parents, that's why it wasn't done that way.


> If people use class devices from other classes as parents, they should
> definitely convert the class that acts as a parent to a bus, to fit
> into the usual model. All that was really never meant to be used that
> way. The current behavior, to not to create the glue-directory is at
> least the intended one from the driver core's perspective.
>
> What kind of classes do this, where this change would help or would be needed?


> I don't mind trying if that change will work for people, I can't tell
> if there are any other users doing things like this which could break
> with such a change. Stuff like udev will be fine with directories
> inserted, but there are many things out there, that just access their
> parents attributes with ../../foo, which might no longer work when we
> insert directories.

To the best of my knowledge we are talking a very limited number of
real world cases.

The driver in particular that causes problems is mac80211_hwsim. It
winds up placing network devices in a directory that isn't prepared to
take network namespace tagged members, with the result that when the
module is removed we don't delete the symlinks from /sys/class/net/.
I see no reason to believe we are free of possible namespace conflicts
either, which is why I suggested the patch.

From my perspective not creating the directory in some weird corner case that
appears to practically to never happen looks like an ugly nasty special case.

If the solution winds up being converting mac80211_hwsim to using a
bus instead of a class that seems reasonable to me as well.  More code
in one place to remove the chance of problems elsewhere.

Eric

  reply	other threads:[~2010-06-03 10:00 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-02 13:16 sysfs class/net/ problem Johannes Berg
2010-06-02 15:46 ` Greg KH
2010-06-02 15:48   ` Johannes Berg
2010-06-02 16:17     ` Eric W. Biederman
2010-06-02 16:21       ` Johannes Berg
2010-06-02 16:43         ` Eric W. Biederman
2010-06-02 17:00           ` Johannes Berg
2010-06-02 17:23             ` Eric W. Biederman
2010-06-02 17:52               ` Johannes Berg
2010-06-02 18:05                 ` Eric W. Biederman
2010-06-02 18:55                   ` Johannes Berg
2010-06-02 19:12                     ` Johannes Berg
2010-06-02 19:25                   ` Johannes Berg
2010-06-02 23:09                     ` Eric W. Biederman
2010-06-03  0:53                       ` [RFC][PATCH] Fix another namespace issue with devices assigned to classes Eric W. Biederman
2010-06-03  9:30                         ` Kay Sievers
2010-06-03 10:00                           ` Eric W. Biederman [this message]
2010-06-04  6:54                         ` Johannes Berg
2010-06-04  8:15                           ` Kay Sievers
2010-06-04  8:28                             ` Johannes Berg
2010-06-04  8:34                               ` Kay Sievers
2010-06-06 13:08                                 ` Johannes Berg
2010-06-06 17:17                                   ` Kay Sievers
2010-06-07  9:42                                     ` Johannes Berg
2010-06-07  9:53                                       ` Kay Sievers
2010-06-07 10:14                                         ` Johannes Berg
2010-06-07 11:05                                           ` Kay Sievers
2010-06-07 11:41                                             ` Johannes Berg
2010-06-07 12:26                                               ` Kay Sievers
2010-06-07 12:36                                                 ` Johannes Berg
2010-06-07 12:54                                                   ` Kay Sievers
2010-06-08  9:27                                                     ` Johannes Berg
2010-06-08  9:30                                                       ` Kay Sievers
2010-06-08  9:45                                                         ` Johannes Berg
2010-06-08 11:55                                                           ` Kay Sievers
2010-06-08 12:03                                                             ` Johannes Berg
2010-06-08 13:54                                                               ` Kay Sievers
2010-06-08 14:06                                                                 ` Johannes Berg
2010-06-08 14:21                                                                   ` Kay Sievers
2010-06-08 14:26                                                                     ` Johannes Berg
2010-06-08 14:47                                                                       ` Kay Sievers
2010-06-08 15:06                                                                         ` Johannes Berg
2010-06-08 16:26                                                                           ` Kay Sievers
2010-06-08 16:33                                                                             ` Johannes Berg
2010-06-08 16:39                                                                               ` Kay Sievers
2010-06-11  9:55                                                                                 ` Johannes Berg
2010-06-14  9:13                                                                                   ` Kay Sievers
2010-06-14  9:20                                                                                     ` Johannes Berg
2010-06-14  9:39                                                                                       ` Kay Sievers
     [not found]                                                                                         ` <bug-16215-7251@https.bugzilla.kernel.org/>
2010-06-20  6:20                                                                                           ` [PATCH] Driver-core: Always create class directories fixing the broken network drivers Eric W. Biederman
2010-06-20 10:52                                                                                             ` Kay Sievers
2010-06-20 11:33                                                                                               ` Johannes Berg
2010-06-20 11:46                                                                                                 ` Kay Sievers
2010-06-20 12:29                                                                                                   ` Eric W. Biederman
2010-06-20 13:37                                                                                                     ` Kay Sievers
2010-06-20 12:46                                                                                                   ` [PATCH] Driver-core: Always create network class directories in get_device_parent Eric W. Biederman
2010-06-21 22:20                                                                                                     ` Greg KH
2010-06-21 23:00                                                                                                       ` 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=m1vda0o2pb.fsf@fess.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=greg@kroah.com \
    --cc=johannes@sipsolutions.net \
    --cc=kay.sievers@vrfy.org \
    --cc=netdev@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).