mknod fails for major/minor number greater than 255
Basheer, Mansoor Ahamed
mansoor.ahamed at ti.com
Tue Mar 11 13:47:27 UTC 2008
Current mknod implementation fails for major/minor number greater than
255.
I'm suggesting following change. Please comment.
-Mansoor
Signed-off-by: Mansoor Ahamed <mansoor.ahamed at ti.com>
--- uClibc/libc/sysdeps/linux/common/mknod.c 2008-03-11
17:43:54.000000000 +0530
+++ uClibc-new/libc/sysdeps/linux/common/mknod.c 2008-03-11
17:45:21.000000000 +0530
@@ -20,9 +20,8 @@ static inline _syscall3(int, __syscall_m
int mknod(const char *path, mode_t mode, dev_t dev)
{
/* We must convert the dev_t value to a __kernel_dev_t */
- __kernel_dev_t k_dev;
+ __kernel_dev_t k_dev = (__kernel_dev_t)dev;
- k_dev = ((major(dev) & 0xff) << 8) | (minor(dev) & 0xff);
return __syscall_mknod(path, mode, k_dev);
}
libc_hidden_def(mknod)
More information about the uClibc
mailing list