--- busybox-1.10.2/util-linux/mdev.c Thu May 8 17:22:48 2008 +++ busybox-1.10.2-mdev/util-linux/mdev.c Fri May 9 20:16:18 2008 @@ -72,8 +72,14 @@ /* Determine device name, type, major and minor */ device_name = bb_basename(path); /* http://kernel.org/doc/pending/hotplug.txt says that only - * "/sys/block/..." is for block devices. "sys/bus" etc is not! */ - type = (strncmp(&path[5], "block/", 6) == 0 ? S_IFBLK : S_IFCHR); + * "/sys/block/..." is for block devices. "/sys/bus" etc is not! + * Since kernel 2.6.25 block devices are also in /sys/class/block. */ + /* TODO: would it be acceptable to just use strstr(path, "/block/")? */ + if (strncmp(&path[5], "class/block/"+6, 6) != 0 + && strncmp(&path[5], "class/block/", 12) != 0) + type = S_IFCHR; + else + type = S_IFBLK; if (ENABLE_FEATURE_MDEV_CONF) { FILE *fp;