From patchwork Sun Jun 20 12:46:54 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Eric W. Biederman" X-Patchwork-Id: 56264 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id B4E17B7D97 for ; Sun, 20 Jun 2010 22:47:17 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753493Ab0FTMrE (ORCPT ); Sun, 20 Jun 2010 08:47:04 -0400 Received: from out01.mta.xmission.com ([166.70.13.231]:47402 "EHLO out01.mta.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753441Ab0FTMrB (ORCPT ); Sun, 20 Jun 2010 08:47:01 -0400 Received: from in02.mta.xmission.com ([166.70.13.52]) by out01.mta.xmission.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1OQJvP-0004G9-6c; Sun, 20 Jun 2010 06:46:59 -0600 Received: from c-67-188-5-249.hsd1.ca.comcast.net ([67.188.5.249] helo=fess.ebiederm.org) by in02.mta.xmission.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1OQJvN-0003Xj-HW; Sun, 20 Jun 2010 06:46:59 -0600 Received: from fess.ebiederm.org (localhost [127.0.0.1]) by fess.ebiederm.org (8.14.3/8.14.3/Debian-4) with ESMTP id o5KCksY1014249; Sun, 20 Jun 2010 05:46:54 -0700 Received: (from eric@localhost) by fess.ebiederm.org (8.14.3/8.14.3/Submit) id o5KCksA9014248; Sun, 20 Jun 2010 05:46:54 -0700 To: Greg KH Cc: Johannes Berg , netdev , Kay Sievers References: <1275484611.3915.11.camel@jlt3.sipsolutions.net> <1275998127.1899.38.camel@yio.site> <1275998603.3706.118.camel@jlt3.sipsolutions.net> <1276005970.3706.132.camel@jlt3.sipsolutions.net> <1276007174.3706.133.camel@jlt3.sipsolutions.net> <1276009590.3706.135.camel@jlt3.sipsolutions.net> <1276014816.3706.137.camel@jlt3.sipsolutions.net> <1276250151.3640.11.camel@jlt3.sipsolutions.net> <1276507247.3926.13.camel@jlt3.sipsolutions.net> <1277033628.3642.1.camel@jlt3.sipsolutions.net> From: ebiederm@xmission.com (Eric W. Biederman) Date: Sun, 20 Jun 2010 05:46:54 -0700 In-Reply-To: (Kay Sievers's message of "Sun\, 20 Jun 2010 13\:46\:20 +0200") Message-ID: User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) MIME-Version: 1.0 X-XM-SPF: eid=; ; ; mid=; ; ; hst=in02.mta.xmission.com; ; ; ip=67.188.5.249; ; ; frm=ebiederm@xmission.com; ; ; spf=neutral X-SA-Exim-Connect-IP: 67.188.5.249 X-SA-Exim-Rcpt-To: greg@kroah.com, kay.sievers@vrfy.org, netdev@vger.kernel.org, johannes@sipsolutions.net X-SA-Exim-Mail-From: ebiederm@xmission.com X-Spam-DCC: XMission; sa02 1397; Body=1 Fuz1=1 Fuz2=1 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa02.xmission.com X-Spam-Level: X-Spam-Status: No, score=-4.4 required=8.0 tests=ALL_TRUSTED,BAYES_00, DCC_CHECK_NEGATIVE,T_TooManySym_01,T_TooManySym_02,UNTRUSTED_Relay, XM_SPF_Neutral autolearn=disabled version=3.2.5 X-Spam-Combo: ;Greg KH X-Spam-Relay-Country: X-Spam-Report: * -1.8 ALL_TRUSTED Passed through trusted hosts only via SMTP * -3.0 BAYES_00 BODY: Bayesian spam probability is 0 to 1% * [score: 0.0000] * -0.0 DCC_CHECK_NEGATIVE Not listed in DCC * [sa02 1397; Body=1 Fuz1=1 Fuz2=1] * 0.0 T_TooManySym_01 4+ unique symbols in subject * 0.0 XM_SPF_Neutral SPF-Neutral * 0.0 T_TooManySym_02 5+ unique symbols in subject * 0.4 UNTRUSTED_Relay Comes from a non-trusted relay Subject: [PATCH] Driver-core: Always create network class directories in get_device_parent. X-SA-Exim-Version: 4.2.1 (built Thu, 25 Oct 2007 00:26:12 +0000) X-SA-Exim-Scanned: Yes (on in02.mta.xmission.com) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In get_device_parent there was added 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. Devices in the input subsystem are affected by this code path so there is a reasonable chance that some piece of user space will break if we just remove this kludge. At the same time there are at least two network drivers that have potential unnecessary namespace conflicts because class directories have not been created for their network devices. 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 convservative bit of code. Let's fix the device layer for network devices. Signed-off-by: Eric W. Biederman --- drivers/base/core.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 9630fbd..ffb8443 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -673,7 +673,7 @@ static struct kobject *get_device_parent(struct device *dev, */ if (parent == NULL) parent_kobj = virtual_device_parent(dev); - else if (parent->class) + else if (parent->class && (strcmp(dev->class->name, "net") != 0)) return &parent->kobj; else parent_kobj = &parent->kobj;