Driver core: exclude kobject_uevent.c for !CONFIG_HOTPLUG
Move uevent specific logic from the core into kobject_uevent.c, which does no longer require to link the unused string array if hotplug is not compiled in. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
07c015e765
commit
5c5daf657c
@@ -23,17 +23,6 @@
|
||||
#include <net/sock.h>
|
||||
|
||||
|
||||
/* the strings here must match the enum in include/linux/kobject.h */
|
||||
const char *kobject_actions[] = {
|
||||
"add",
|
||||
"remove",
|
||||
"change",
|
||||
"move",
|
||||
"online",
|
||||
"offline",
|
||||
};
|
||||
|
||||
#if defined(CONFIG_HOTPLUG)
|
||||
u64 uevent_seqnum;
|
||||
char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
|
||||
static DEFINE_SPINLOCK(sequence_lock);
|
||||
@@ -41,6 +30,50 @@ static DEFINE_SPINLOCK(sequence_lock);
|
||||
static struct sock *uevent_sock;
|
||||
#endif
|
||||
|
||||
/* the strings here must match the enum in include/linux/kobject.h */
|
||||
static const char *kobject_actions[] = {
|
||||
[KOBJ_ADD] = "add",
|
||||
[KOBJ_REMOVE] = "remove",
|
||||
[KOBJ_CHANGE] = "change",
|
||||
[KOBJ_MOVE] = "move",
|
||||
[KOBJ_ONLINE] = "online",
|
||||
[KOBJ_OFFLINE] = "offline",
|
||||
};
|
||||
|
||||
/**
|
||||
* kobject_action_type - translate action string to numeric type
|
||||
*
|
||||
* @buf: buffer containing the action string, newline is ignored
|
||||
* @len: length of buffer
|
||||
* @type: pointer to the location to store the action type
|
||||
*
|
||||
* Returns 0 if the action string was recognized.
|
||||
*/
|
||||
int kobject_action_type(const char *buf, size_t count,
|
||||
enum kobject_action *type)
|
||||
{
|
||||
enum kobject_action action;
|
||||
int ret = -EINVAL;
|
||||
|
||||
if (count && buf[count-1] == '\n')
|
||||
count--;
|
||||
|
||||
if (!count)
|
||||
goto out;
|
||||
|
||||
for (action = 0; action < ARRAY_SIZE(kobject_actions); action++) {
|
||||
if (strncmp(kobject_actions[action], buf, count) != 0)
|
||||
continue;
|
||||
if (kobject_actions[action][count] != '\0')
|
||||
continue;
|
||||
*type = action;
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* kobject_uevent_env - send an uevent with environmental data
|
||||
*
|
||||
@@ -270,5 +303,3 @@ static int __init kobject_uevent_init(void)
|
||||
|
||||
postcore_initcall(kobject_uevent_init);
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_HOTPLUG */
|
||||
|
Reference in New Issue
Block a user