chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5ef4268
)
[PATCH] clean up match_place()
author
kay.sievers@vrfy.org
<kay.sievers@vrfy.org>
Mon, 21 Feb 2005 12:45:33 +0000
(13:45 +0100)
committer
Greg KH
<gregkh@suse.de>
Wed, 27 Apr 2005 06:36:13 +0000
(23:36 -0700)
namedev.c
patch
|
blob
|
history
diff --git
a/namedev.c
b/namedev.c
index 146dad604b2f639096d98abb14d9e6a787f5f8b7..aa45b79b13a917af91af56ae84cecea7a4cdef1f 100644
(file)
--- a/
namedev.c
+++ b/
namedev.c
@@
-553,32
+553,27
@@
static int match_id(struct config_device *dev, struct sysfs_class_device *class_
static int match_place(struct config_device *dev, struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_device)
{
char path[SYSFS_PATH_MAX];
static int match_place(struct config_device *dev, struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_device)
{
char path[SYSFS_PATH_MAX];
- int found;
- char *temp = NULL;
+ char *temp;
/* we have to have a sysfs device for PLACE to work */
if (!sysfs_device)
return -ENODEV;
/* we have to have a sysfs device for PLACE to work */
if (!sysfs_device)
return -ENODEV;
- found = 0;
strfieldcpy(path, sysfs_device->path);
temp = strrchr(path, '/');
dbg("search '%s' in '%s', path='%s'", dev->place, temp, path);
strfieldcpy(path, sysfs_device->path);
temp = strrchr(path, '/');
dbg("search '%s' in '%s', path='%s'", dev->place, temp, path);
- if (strstr(temp, dev->place) != NULL) {
- found = 1;
- } else {
- *temp = 0x00;
- temp = strrchr(path, '/');
- dbg("search '%s' in '%s', path='%s'", dev->place, temp, path);
- if (strstr(temp, dev->place) != NULL)
- found = 1;
- }
- if (!found) {
- dbg("place doesn't match");
- return -ENODEV;
- }
+ if (strstr(temp, dev->place) != NULL)
+ return 0;
- return 0;
+ /* try the parent */
+ temp[0] = '\0';
+ temp = strrchr(path, '/');
+ dbg("search '%s' in '%s', path='%s'", dev->place, temp, path);
+ if (strstr(temp, dev->place) == NULL)
+ return 0;
+
+ dbg("place doesn't match");
+ return -ENODEV;
}
static int match_rule(struct udevice *udev, struct config_device *dev,
}
static int match_rule(struct udevice *udev, struct config_device *dev,