We hanged mknod to take unsigned int for the device number. That breaks architectures (such as PPC64) which use unsigned long for dev_t. Just use __kernel_old_dev_t. fs/namei.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN fs/namei.c~mknod64-64-bit-fix fs/namei.c --- 25/fs/namei.c~mknod64-64-bit-fix 2003-08-07 15:18:37.000000000 -0700 +++ 25-akpm/fs/namei.c 2003-08-07 15:18:37.000000000 -0700 @@ -1478,7 +1478,7 @@ out: } asmlinkage long -sys_mknod(const char __user *filename, int mode, unsigned int devnr) +sys_mknod(const char __user *filename, int mode, __kernel_old_dev_t devnr) { dev_t dev = devnr; _