[PATCH] mknod fix for major/minor number greater than 255

Basheer Mansoor Ahamed mansoor.ahamed at gmail.com
Wed Mar 12 06:27:24 UTC 2008


Hi,

Resending message (my outlook settings corrupts inline patch) from
gmail account.

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 gmail.com>

--- libc/sysdeps/linux/common/mknod.c    2008-03-11 17:43:54.000000000 +0530
+++ 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