X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev.c;h=bbff89bad5165ca1ee50ed98f2c6950d95cf704c;hp=0d0a5da2074d22d1ab731831021da0570dd72946;hb=c53735efc9720b28676c1b51fbed04dc592236e8;hpb=4070d2fea01f3c9ee9b9761b5ec795e2c13b126b diff --git a/udev.c b/udev.c index 0d0a5da20..bbff89bad 100644 --- a/udev.c +++ b/udev.c @@ -139,12 +139,20 @@ help: return retval; } +static char *subsystem_blacklist[] = { + "net", + "scsi_host", + "scsi_device", + "", +}; + static inline int udev_hotplug(int argc, char **argv) { char *action; char *devpath; char *subsystem; int retval = -EINVAL; + int i; subsystem = argv[1]; @@ -162,10 +170,14 @@ static inline int udev_hotplug(int argc, char **argv) goto exit; } - /* but we don't care about net class devices */ - if (strcmp(subsystem, "net") == 0) { - dbg("don't care about net devices"); - goto exit; + /* skip blacklisted subsystems */ + i = 0; + while (subsystem_blacklist[i][0] != '\0') { + if (strcmp(subsystem, subsystem_blacklist[i]) == 0) { + dbg("don't care about '%s' devices", subsystem); + goto exit; + } + i++; } action = get_action(); @@ -209,7 +221,7 @@ exit_sysbus: sysbus_disconnect(); exit: - return retval; + return -retval; } int main(int argc, char **argv, char **envp)