2.3.16-1: 'struct sysinfo' ABI has incompatible change

Michael Elizabeth Chastain (mec@shout.net)
Mon, 30 Aug 1999 19:36:44 -0500


I am speed-reading through 2.3.16-1 and I see this snippet:

diff -u --recursive --new-file v2.3.15/linux/include/linux/kernel.h linux/include/linux/kernel.h
--- v2.3.15/linux/include/linux/kernel.h Thu Aug 26 13:05:41 1999
+++ linux/include/linux/kernel.h Thu Aug 26 12:34:55 1999
@@ -91,10 +91,11 @@
unsigned long freeram; /* Available memory size */
unsigned long sharedram; /* Amount of shared memory */
unsigned long bufferram; /* Memory used by buffers */
+ unsigned long totalbig; /* Total big memory size */
+ unsigned long freebig; /* Available big memory size */
unsigned long totalswap; /* Total swap space size */
unsigned long freeswap; /* swap space still available */
unsigned short procs; /* Number of current processes */
- char _f[22]; /* Pads structure to 64 bytes */
};

#endif

This is in 'struct sysinfo', which is the argument of the obscure
'sysinfo' call.

Thus, 2.2 clients will give strange results on 2.4 servers; and 2.4
clients will experience memory corruption when running on 2.2 servers.

Please, keep the total size the same, and put "totalbig" and "freebig"
into the padding area where they belong.

Michael Elizabeth Chastain
<mailto:mec@shout.net>
"love without fear"

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/