diff options
Diffstat (limited to 'package/busybox/busybox-1.10.2-mdev.patch')
-rw-r--r-- | package/busybox/busybox-1.10.2-mdev.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.10.2-mdev.patch b/package/busybox/busybox-1.10.2-mdev.patch new file mode 100644 index 000000000..37271beaa --- /dev/null +++ b/package/busybox/busybox-1.10.2-mdev.patch @@ -0,0 +1,31 @@ +--- busybox-1.10.2/util-linux/mdev.c Thu May 8 17:22:48 2008 ++++ busybox-1.10.2-mdev/util-linux/mdev.c Sat May 24 18:43:40 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; +@@ -172,8 +178,9 @@ + /* substitute %1..9 with off[1..9], if any */ + n = 0; + s = val; +- while (*s && *s++ == '%') +- n++; ++ while (*s) ++ if (*s++ == '%') ++ n++; + + p = alias = xzalloc(strlen(val) + n * strlen(device_name)); + s = val + 1; |