From: ebiederm@xmission.com (Eric W. Biederman)
To: Greg KH <greg@kroah.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
netdev <netdev@vger.kernel.org>,
Kay Sievers <kay.sievers@vrfy.org>
Subject: [PATCH] Driver-core: Always create class directories fixing the broken network drivers.
Date: Sat, 19 Jun 2010 23:20:37 -0700 [thread overview]
Message-ID: <m139wiuswa.fsf_-_@fess.ebiederm.org> (raw)
In-Reply-To: <AANLkTin2sci1gSmwx-tjazYGFAcUNRKhJFI7Bt0KvVe3@mail.gmail.com> (Kay Sievers's message of "Mon\, 14 Jun 2010 11\:39\:11 +0200")
In get_device_parent there is a check to not add a class directory
when a class device was put under another class device. The check was
put in place as a just in case measure to not break old userspace if
any existing code happened to depend on it. Currently the only known
way that we get a class device under a class device is due to the
rearrangement of devices that happened when the new sysfs layout was
introduced.
With the introduction of tagged sysfs directories for properly
handling network namespace support this omission in creating the class
directories went from a bad thing in terms of namespace pollution, to
actually breaking device_remove.
Currently there are two reported network device drivers that break
because the class directory was not created by the device layer. The
usb bnep driver and the mac80211_hwsim driver.
Every solution proposed changes the sysfs layout for the affected
devices, and thus has the potential to break userspace.
Since we are changing the sysfs layout anyway, and since we are now
talking about several devices all with the same problem, all caused by
the same over conservative bit of code. Let's kill that bit of code.
There have been other proposals to fix this but they all have been
more complicated, and none of them have actually resulted in working
code.
Any userspace that works with both the old and the new sysfs layouts
should not be affected by this change, and even if someone depends
on it we are talking a very small number of drivers overall that
are affected.
My apologoies for not fully catching this hole in the logic the
when this code was originally added.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
drivers/base/core.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 9630fbd..7b1c4d4 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -673,8 +673,6 @@ static struct kobject *get_device_parent(struct device *dev,
*/
if (parent == NULL)
parent_kobj = virtual_device_parent(dev);
- else if (parent->class)
- return &parent->kobj;
else
parent_kobj = &parent->kobj;
--
1.6.5.2.143.g8cc62
next prev parent reply other threads:[~2010-06-20 6:20 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
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
2010-06-20 6:20 ` Eric W. Biederman [this message]
2010-06-20 10:52 ` [PATCH] Driver-core: Always create class directories fixing the broken network drivers 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=m139wiuswa.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 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.