reassign 289945 libc6 retitle 289945 please add support for long long dev_t tag 289945 patch upstream thanks
Please apply to allow udev to create nodes for drivers which need more than 2^8 minors. On Jan 12, Roland Dreier <[EMAIL PROTECTED]> wrote: > (I guess this bug should be reassigned to libc6) > > It seems that the change to glibc's mknod was applied about 15 months > ago, between glibc 2.3.2 and glibc 2.3.3. Here's the patch taken from > glibc CVS: > > Index: glibc-2.3.2/sysdeps/unix/sysv/linux/xmknod.c > =================================================================== > --- glibc-2.3.2.orig/sysdeps/unix/sysv/linux/xmknod.c 2002-08-04 > 01:22:58.000000000 -0700 > +++ glibc-2.3.2/sysdeps/unix/sysv/linux/xmknod.c 2005-01-11 > 17:43:15.209774232 -0800 > @@ -35,7 +35,7 @@ > int > __xmknod (int vers, const char *path, mode_t mode, dev_t *dev) > { > - unsigned short int k_dev; > + unsigned long long int k_dev; > > if (vers != _MKNOD_VER) > { > @@ -44,9 +44,12 @@ > } > > /* We must convert the value to dev_t type used by the kernel. */ > - k_dev = ((major (*dev) & 0xff) << 8) | (minor (*dev) & 0xff); > + k_dev = (*dev) & ((1ULL << 32) - 1); > + if (k_dev != *dev) > + return EOVERFLOW; > > - return INLINE_SYSCALL (mknod, 3, CHECK_STRING (path), mode, k_dev); > + return INLINE_SYSCALL (mknod, 3, CHECK_STRING (path), mode, > + (unsigned int) k_dev); > } > > weak_alias (__xmknod, _xmknod) -- ciao, Marco
signature.asc
Description: Digital signature