All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: netdev@vger.kernel.org
Subject: Re: Converting network devices from class devices causes namespace pollution
Date: Sun, 18 Feb 2007 19:01:14 -0800	[thread overview]
Message-ID: <20070219030114.GA13666@suse.de> (raw)
In-Reply-To: <m1bqjr84fe.fsf@ebiederm.dsl.xmission.com>

On Sun, Feb 18, 2007 at 03:52:05PM -0700, Eric W. Biederman wrote:
> Greg KH <gregkh@suse.de> writes:
> 
> > On Sun, Feb 18, 2007 at 08:55:20AM -0700, Eric W. Biederman wrote:
> >> User space is allowed to rename network devices to anything any name
> >> not currently taken by another network device.
> >> 
> >> However when I now do something like:
> >> 
> >> ip link set eth0 name irq
> >> 
> >> The rename half happens (because it is legal), but sysfs can't support
> >> it because of the ridiculous directory eth0 is in.  After that
> >> point things go hideously wrong.
> >
> > What goes wrong?  What is not renamed properly?
> 
> It gets half renamed. 

Ick :(

> > Oh, you can't rename it to something like "irq".  Well that's pretty
> > foolish on your behalf :)
> 
> No it is pretty foolish on your behalf to add this extra restriction.
> Currently this is a worse set of restrictions than DOS had with
> it's magic character devices.

Hey, don't be mean here...

> >> The current situation is hideous namespace pollution, and breaks user
> >> space, and is only likely only a matter of time before we have a
> >> reasonable instead of an strained conflict of names.
> >
> > Do we really have a problem here?
> 
> Yes.

Actually, you are right, I fixed this problem over a year ago, and then
introduced it recently again :(

We need our own namespace for these devices, and we have it today
already.  Look if you enable CONFIG_SYSFS_DEPRECATED, or on a pre-2.6.19
machine at what shows up in the pci device directories:
$ ls -l /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/
total 0
lrwxrwxrwx  1 root root     0 2007-02-18 18:56 bus -> ../../../../bus/pci
-r--r--r--  1 root root  4096 2007-02-18 18:56 class
-rw-r--r--  1 root root  4096 2007-02-18 18:56 config
-r--r--r--  1 root root  4096 2007-02-18 13:06 device
lrwxrwxrwx  1 root root     0 2007-02-18 18:56 driver -> ../../../../bus/pci/drivers/tg3
-r--r--r--  1 root root  4096 2007-02-18 18:56 irq
-r--r--r--  1 root root  4096 2007-02-18 18:56 local_cpus
-r--r--r--  1 root root  4096 2007-02-18 18:56 modalias
lrwxrwxrwx  1 root root     0 2007-02-18 18:56 net:eth0 -> ../../../../class/net/eth0
drwxr-xr-x  2 root root     0 2007-02-12 08:06 power
-r--r--r--  1 root root  4096 2007-02-18 18:56 resource
-rw-------  1 root root 65536 2007-02-18 18:56 resource0
-r--r--r--  1 root root  4096 2007-02-18 13:06 subsystem_device
-r--r--r--  1 root root  4096 2007-02-18 13:06 subsystem_vendor
--w-------  1 root root  4096 2007-02-18 18:56 uevent
-r--r--r--  1 root root  4096 2007-02-18 13:06 vendor

So, all we need to do is rename these devices back to the "net:eth0"
name, and everything will be fine.  I'll work on fixing that tomorrow as
it will take a bit of hacking on the kobject symlink function and the
driver core code (but it gets us rid of a symlink in "compatiblity
mode", which is always a nice win...)

And thanks for your calm and reasoned statements in pointing out this
bug, it wasn't deliberate by any means :)

thanks,

greg k-h

  reply	other threads:[~2007-02-19  3:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-18 15:55 Converting network devices from class devices causes namespace pollution Eric W. Biederman
2007-02-18 19:46 ` Greg KH
2007-02-18 22:52   ` Eric W. Biederman
2007-02-19  3:01     ` Greg KH [this message]
2007-02-19  8:19       ` 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=20070219030114.GA13666@suse.de \
    --to=gregkh@suse.de \
    --cc=ebiederm@xmission.com \
    --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.