bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux device number bug report


From: Shen Feng
Subject: Re: Linux device number bug report
Date: Thu, 15 Jan 2004 08:38:36 +0800

Hello,

No. It's the latest glibc.
Please refer to /usr/include/sys/sysmacros.h.

The Linux device number is extended to 32 bit, not 16 bit.
As following, "major" should be 12-bit, and "minor" should be 20-bit. 
    mmmm mmmm mmmm MMMM MMMM MMMM mmmm mmmm
"M" means major device number.
"m" means minor device number.


Regards,
Shen Feng
--------------------------------------------------
Dept. of Technology and Development 
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
No. 16-5, Guanzhou Rd., Nanjing, P.R.China 
PHONE: +86+25-86630523-633 
FUJITSU INTERNAL: 79955-633 
FAX: +86+25-83317685  
Mail: address@hidden 
--------------------------------------------------

----- Original Message ----- 
From: "Yoshinori K. Okuji" <address@hidden>
To: "Shen Feng" <address@hidden>
Cc: <address@hidden>
Sent: Wednesday, January 14, 2004 7:43 PM
Subject: Re: Linux device number bug report


> On Tuesday 13 January 2004 04:38, Shen Feng wrote:
> > I think the following code in lib/device.c
> >
> >      60 # ifndef MAJOR
> >      61 #  ifndef MINORBITS
> >      62 #   define MINORBITS    8
> >      63 #  endif /* ! MINORBITS */
> >      64 #  define MAJOR(dev)    ((unsigned int) ((dev) >> MINORBITS))
> >      65 # endif /* ! MAJOR */
> >
> > should be changed as following:
> >
> >      60 # ifndef MAJOR
> >      61 #  define MAJOR(dev)    ((dev >> 8) & 0xfff) | ((unsigned
> > int) (dev >> 32) & ~0xfff) 62 # endif /* ! MAJOR */
> 
> It seems not to change anything. Did you try the code?
> 
> > The code "((dev >> 8) & 0xfff) | ((unsigned int) (dev >> 32) &
> > ~0xfff)" is from glibc. I think this will fix the Linux device number
> > extention bug. Is it OK?
> 
> I guess it is in an old version of glibc.
> 
> Okuji

reply via email to

[Prev in Thread] Current Thread [Next in Thread]