Kernel writes to RAM it doesn't own on 2.4.24

From: Richard B. Johnson
Date: Fri Apr 16 2004 - 11:00:11 EST



Hello again,

If I start a system that has 1 Gb of memory with mem=500m,
the value of the kernel's num_physpages is 0x20000 as would
be expected. If I multiply that by PAGE_SIZE, I get 0x20000000,
also as expected. If I observe that memory region, I note
that somebody has written something there!

This is not good. The kernel touches RAM it doesn't own. I have
booted the system with only the internal floppy controller
and no other modules installed. I see the same thing.

Script started on Fri Apr 16 11:33:39 2004
# monitor
TMD Platinum(tm) Control System Version 2.0
Copyright(c) 1999-2003, Analogic Corporation

Enter "help" for commands

PLATINUM> dump=20000000
20000000 78 56 34 12 21 43 65 87-FF FF FF FF FF FF FF FF xV4.!Ce.........
20000010 FF FF FF FF FF FF FF FD-FF FF FF FF FF FF FF FF ................
20000020 FF FF FF FF FF FE FF FF-FF FF FE FF FF FF FF FF ................
[SNIPPED...]

My temporary work around for the kernel's destroying a
precious DMA buffer is to start one page higher. However,
whomever is writing to that RAM is likely writing other
places it doesn't belong also. This could lead to some
very interesting bugs.

Note that the value written there is 0x12345678, twice, once
in little endian and another in swap-nibble big endian, like
a mirror. This is evil.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (5596.77 BogoMips).
Note 96.31% of all statistics are fiction.
-
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/