Not really... it comes down to "implicit padding in kernel ABI structures is bad". They can easily become security holes. Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: >On Mon, Feb 20, 2012 at 01:07, H. Peter Anvin <hpa@xxxxxxxxx> wrote: >> --- a/include/linux/sysinfo.h >> +++ b/include/linux/sysinfo.h >> @@ -1,22 +1,24 @@ >> #ifndef _LINUX_SYSINFO_H >> #define _LINUX_SYSINFO_H >> >> +#include <linux/types.h> >> + >> #define SI_LOAD_SHIFT 16 >> struct sysinfo { >> - long uptime; /* Seconds since boot */ >> - unsigned long loads[3]; /* 1, 5, and 15 minute load >averages */ >> - unsigned long totalram; /* Total usable main memory >size */ >> - unsigned long freeram; /* Available memory size */ >> - unsigned long sharedram; /* Amount of shared memory */ >> - unsigned long bufferram; /* Memory used by buffers */ >> - unsigned long totalswap; /* Total swap space size */ >> - unsigned long freeswap; /* swap space still available >*/ >> - unsigned short procs; /* Number of current >processes */ >> - unsigned short pad; /* explicit padding for m68k >*/ >> - unsigned long totalhigh; /* Total high memory size */ >> - unsigned long freehigh; /* Available high memory size >*/ >> - unsigned int mem_unit; /* Memory unit size in bytes >*/ >> - char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 >uses this.. */ >> + __kernel_long_t uptime; /* Seconds since boot */ >> + __kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load >averages */ >> + __kernel_ulong_t totalram; /* Total usable main memory >size */ >> + __kernel_ulong_t freeram; /* Available memory size */ >> + __kernel_ulong_t sharedram; /* Amount of shared memory */ >> + __kernel_ulong_t bufferram; /* Memory used by buffers */ >> + __kernel_ulong_t totalswap; /* Total swap space size */ >> + __kernel_ulong_t freeswap; /* swap space still available >*/ >> + __u16 procs; /* Number of current >processes */ >> + __u16 pad; /* Explicit padding for m68k >*/ > >Fueling the discussion about natural vs. 4-byte alignment? > >> + __kernel_ulong_t totalhigh; /* Total high memory size */ >> + __kernel_ulong_t freehigh; /* Available high memory size >*/ >> + __u32 mem_unit; /* Memory unit size in bytes >*/ >> + char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; /* >Padding: libc5 uses this.. */ >> }; > >Gr{oetje,eeting}s, > > Geert > >-- >Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- >geert@xxxxxxxxxxxxxx > >In personal conversations with technical people, I call myself a >hacker. But >when I'm talking to journalists I just say "programmer" or something >like that. > -- Linus Torvalds -- Sent from my mobile phone. Please excuse my brevity and lack of formatting. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html