From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: put "device" symlink into hotplug environment?
Date: Wed, 03 Nov 2004 23:39:59 +0000 [thread overview]
Message-ID: <20041103233959.GA17546@vrfy.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 791 bytes --]
Hi Greg,
what if we put the sysfs path of the physical device into the hotplug
environment? All virtual devices will not have the key. This would solve
all the wait for the "device" link issues and we can throw away one of
the exception lists as the kernel will tell us if it is going to create
a symlink.
I get hotplug events like this now:
physical backed device:
ACTION=add
SUBSYSTEM=net
DEVPATH=/class/net/eth0
DEVSYSDEV=/devices/pci0000:00/0000:00:1e.0/0000:02:01.0
INTERFACE=eth0
SEQNUM=966
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
virtual:
ACTION=add
SUBSYSTEM=net
DEVPATH=/class/net/dummy0
INTERFACE=dummy0
SEQNUM=977
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/
The current patch is only for class-devices block-devices are not covered.
Thanks,
Kay
[-- Attachment #2: kernel-DEVSYSDEV-01.patch --]
[-- Type: text/plain, Size: 1021 bytes --]
===== drivers/base/class.c 1.54 vs edited =====
--- 1.54/drivers/base/class.c 2004-10-08 20:32:52 +02:00
+++ edited/drivers/base/class.c 2004-11-04 00:23:56 +01:00
@@ -283,8 +283,27 @@ static int class_hotplug(struct kset *ks
{
struct class_device *class_dev = to_class_dev(kobj);
int retval = 0;
+ int i = 0;
+ int length = 0;
pr_debug("%s - name = %s\n", __FUNCTION__, class_dev->class_id);
+
+ if (class_dev->dev) {
+ /* add physical device backing this class to environment */
+ char *dev = kobject_get_path(&class_dev->dev->kobj, GFP_KERNEL);
+
+ add_hotplug_env_var(envp, num_envp, &i, buffer, buffer_size,
+ &length, "DEVSYSDEV=%s", dev);
+ kfree(dev);
+
+ /* terminate, set to next free slot, shrink available space */
+ envp[i] = NULL;
+ envp = &envp[i];
+ num_envp -= i;
+ buffer = &buffer[length];
+ buffer_size -= length;
+ }
+
if (class_dev->class->hotplug) {
/* have the bus specific function add its stuff */
retval = class_dev->class->hotplug (class_dev, envp, num_envp,
next reply other threads:[~2004-11-03 23:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-03 23:39 Kay Sievers [this message]
2004-11-04 0:12 ` put "device" symlink into hotplug environment? Kay Sievers
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=20041103233959.GA17546@vrfy.org \
--to=kay.sievers@vrfy.org \
--cc=linux-hotplug@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).