Re: Size of sector_t in userspace [Was: fix 41 'make headers_check' warnings]

From: Sam Ravnborg
Date: Wed Jan 21 2009 - 06:33:17 EST


On Wed, Jan 21, 2009 at 09:21:25AM +0100, Jens Axboe wrote:
> On Wed, Jan 21 2009, Sam Ravnborg wrote:
> > Hi Jens.
> >
> > In an attempt to fix some of the issues in our exported Headers jsr
> > encountered some strange stuff in types.h.
> >
> > types.h is exported to userspace where we do not have access to CONFIG_*
> > symbols.
> > Despite this we use CONFGI_LBD to decide the size of sector_t like this:
> >
> > #ifdef CONFIG_LBD
> > typedef u64 sector_t;
> > typedef u64 blkcnt_t;
> > #else
> > typedef unsigned long sector_t;
> > typedef unsigned long blkcnt_t;
> > #endif
> >
> > But as CONFIG_LBD is never defined in userspace sector_t is now 32
> > bit on 32 bit boxes and 64 bit on 64 bit boxes (in userspace).
> >
> > Is sector:t (and the companion blkcnt_t) really used by userspace?
> > If it is - what size is it expected to have?
>
> I don't think it's used by userspace, at least it cannot be used in
> userspace <-> kernelspace interactions, since the size isn't fixed.

Thanks Jens.

In that case I suggest we should make it private to the kernel.
We should not expose types from the kernel that is not used
in the kerenl.

Jaswinder - move it inside a ifdef __KERNEL__ / endif block.
Reference Jens' answer above and Cc: Jens on the patch.

Thanks,
Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/