Problem with hotplug functions

From: Marcel Holtmann
Date: Sat Oct 30 2004 - 11:33:37 EST


Hi,

I have a little problem with the hotplug functions and in particular
with the one from firmware_class. The problem is that the extra env
variables are not set when hotplug is called. Maybe this is fixed
somewhere, but the lastest Bitkeeper snapshot of the Linus tree is not
working for me.

I see a problem in kobject_hotplug() at lib/kobject_uevent.c:

if (hotplug_ops->hotplug) {
/* have the kset specific function add its stuff */
retval = hotplug_ops->hotplug (kset, kobj,
&envp[i], NUM_ENVP - i, scratch,
BUFFER_SIZE - (scratch - buffer));
if (retval) {
pr_debug ("%s - hotplug() returned %d\n",
__FUNCTION__, retval);
goto exit;
}
}

spin_lock(&sequence_lock);
seq = ++hotplug_seqnum;
spin_unlock(&sequence_lock);

envp [i++] = scratch;
scratch += sprintf(scratch, "SEQNUM=%lld", (long long)seq) + 1;

The hotplug function of hotplug_ops get called, but afterwards its
values are overwritten by the sequence number. Is this correct or do I
made a thinking mistake?

Regards

Marcel


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/