From: Marcel Holtmann <marcel@holtmann.org>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org,
Cornelia Huck <cornelia.huck@de.ibm.com>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: Re: [PATCH 32/36] driver core: Introduce device_move(): move a device to a new parent.
Date: Tue, 05 Dec 2006 16:26:11 +0100 [thread overview]
Message-ID: <1165332371.2756.23.camel@localhost> (raw)
In-Reply-To: <20061204230511.GA9382@kroah.com>
Hi Greg,
> > > > > Provide a function device_move() to move a device to a new parent device. Add
> > > > > auxilliary functions kobject_move() and sysfs_move_dir().
> > > > > kobject_move() generates a new uevent of type KOBJ_MOVE, containing the
> > > > > previous path (DEVPATH_OLD) in addition to the usual values. For this, a new
> > > > > interface kobject_uevent_env() is created that allows to add further
> > > > > environmental data to the uevent at the kobject layer.
> > > >
> > > > has this one been tested? I don't get it working. I always get an EINVAL
> > > > when trying to move the TTY device of a Bluetooth RFCOMM link around.
> > >
> > > I relied on Cornelia to test this. I think some s390 patches depend on
> > > this change, right?
> >
> > my pre-condition is that the TTY device has no parent and then we move
> > it to a Bluetooth ACL link as child. This however is not working or the
> > TTY change to use device instead of class_device has broken something.
>
> Hm, I don't think the class_device stuff has broken anything, but if you
> think so, please let me know.
I was checking why device_move() fails and it seems that the check for
is_registered is the problem here.
if (!device_is_registered(dev)) {
error = -EINVAL;
goto out;
}
The ACL link has been attached to the Bluetooth bus, but for some reason
it still thinks that it is unregistered. Is this check really needed. I
think it should be possible to also move devices that are not part of a
bus, yet. And removing that check makes it work for me.
And btw. I can't see any s390 patches that are using device_move() at
the moment.
> > > > And shouldn't device_move(dev, NULL) re-attach it to the virtual device
> > > > tree instead of failing?
> > >
> > > Yes, that would be good to have.
> >
> > Cornelia, please fix this, because otherwise we can't detach a device
> > from its parent. Storing the current virtual parent looks racy to me.
>
> You can always restore the previous "virtual" parent from the
> information given to you in the device itself. That is what the code
> does when it first registers the device.
>
> And yes, I too think it should be fixed.
My knowledge of the driver model is still limited. Can you fix that
quickly. This is really needed.
Regards
Marcel
next prev parent reply other threads:[~2006-12-05 15:26 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-01 23:16 [GIT PATCH] Driver core patches for 2.6.19 Greg KH
2006-12-01 23:21 ` [PATCH 1/36] Driver core: add notification of bus events Greg KH
2006-12-01 23:21 ` [PATCH 2/36] Driver core: fix "driver" symlink timing Greg KH
2006-12-01 23:21 ` [PATCH 3/36] Driver Core: Move virtual_device_parent() to core.c Greg KH
2006-12-01 23:21 ` [PATCH 4/36] CONFIG_SYSFS_DEPRECATED Greg KH
2006-12-01 23:21 ` [PATCH 5/36] Driver core: make old versions of udev work properly Greg KH
2006-12-01 23:21 ` [PATCH 6/36] CONFIG_SYSFS_DEPRECATED - bus symlinks Greg KH
2006-12-01 23:21 ` [PATCH 7/36] CONFIG_SYSFS_DEPRECATED - device symlinks Greg KH
2006-12-01 23:21 ` [PATCH 8/36] CONFIG_SYSFS_DEPRECATED - PHYSDEV* uevent variables Greg KH
2006-12-01 23:21 ` [PATCH 9/36] CONFIG_SYSFS_DEPRECATED - class symlinks Greg KH
2006-12-01 23:21 ` [PATCH 10/36] Driver core: convert vt code to use struct device Greg KH
2006-12-01 23:21 ` [PATCH 11/36] Driver core: convert vc " Greg KH
2006-12-01 23:21 ` [PATCH 12/36] Driver core: change misc class_devices to be real devices Greg KH
2006-12-01 23:21 ` [PATCH 13/36] Driver core: convert tty core to use struct device Greg KH
2006-12-01 23:21 ` [PATCH 14/36] Driver core: convert raw device code " Greg KH
2006-12-01 23:21 ` [PATCH 15/36] I2C: convert i2c-dev to use struct device instead of struct class_device Greg KH
2006-12-01 23:21 ` [PATCH 16/36] Driver core: convert msr code to use struct device Greg KH
2006-12-01 23:21 ` [PATCH 17/36] Driver core: convert cpuid " Greg KH
2006-12-01 23:21 ` [PATCH 18/36] Driver core: convert PPP " Greg KH
2006-12-01 23:21 ` [PATCH 19/36] Driver core: convert ppdev " Greg KH
2006-12-01 23:21 ` [PATCH 20/36] Driver core: convert mmc " Greg KH
2006-12-01 23:21 ` [PATCH 21/36] Driver core: convert firmware " Greg KH
2006-12-01 23:21 ` [PATCH 22/36] Driver core: convert fb " Greg KH
2006-12-01 23:21 ` [PATCH 23/36] Driver core: change mem class_devices to be real devices Greg KH
2006-12-01 23:21 ` [PATCH 24/36] Driver core: convert sound core to use struct device Greg KH
2006-12-01 23:21 ` [PATCH 25/36] Driver core: add dev_archdata to " Greg KH
2006-12-01 23:21 ` [PATCH 26/36] ACPI: Change ACPI to use dev_archdata instead of firmware_data Greg KH
2006-12-01 23:21 ` [PATCH 27/36] Driver core: Call platform_notify_remove later Greg KH
2006-12-01 23:21 ` [PATCH 28/36] cpu topology: consider sysfs_create_group return value Greg KH
2006-12-01 23:21 ` [PATCH 29/36] sysfs: sysfs_write_file() writes zero terminated data Greg KH
2006-12-01 23:22 ` [PATCH 30/36] driver core: Introduce device_find_child() Greg KH
2006-12-01 23:22 ` [PATCH 31/36] Driver core: make drivers/base/core.c:setup_parent() static Greg KH
2006-12-01 23:22 ` [PATCH 32/36] driver core: Introduce device_move(): move a device to a new parent Greg KH
2006-12-01 23:22 ` [PATCH 33/36] driver core: Use klist_remove() in device_move() Greg KH
2006-12-01 23:22 ` [PATCH 34/36] Driver core: platform_driver_probe(), can save codespace Greg KH
2006-12-01 23:22 ` [PATCH 35/36] Documentation/driver-model/platform.txt update/rewrite Greg KH
2006-12-01 23:22 ` [PATCH 36/36] Driver core: show drivers in /sys/module/ Greg KH
2006-12-03 16:26 ` [PATCH 32/36] driver core: Introduce device_move(): move a device to a new parent Marcel Holtmann
2006-12-04 19:58 ` Greg KH
2006-12-04 21:15 ` Marcel Holtmann
2006-12-04 23:05 ` Greg KH
2006-12-05 15:26 ` Marcel Holtmann [this message]
2006-12-06 5:58 ` Greg KH
2006-12-06 8:29 ` Marcel Holtmann
2006-12-06 9:03 ` Martin Schwidefsky
2007-01-08 13:21 ` Cornelia Huck
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=1165332371.2756.23.camel@localhost \
--to=marcel@holtmann.org \
--cc=cornelia.huck@de.ibm.com \
--cc=greg@kroah.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@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