mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
217bbd8188
Based on an original patch from Michael Schmitz: Because mem_init() is now called before device init, devices that rely on ST-RAM may find all ST-RAM already allocated to other users by the time device init happens. In particular, a large initrd RAM disk may use up enough of ST-RAM to cause atari_stram_alloc() to resort to __get_dma_pages() allocation. In the current state of Atari memory management, all of RAM is marked DMA capable, so __get_dma_pages() may well return RAM that is not in actual fact DMA capable. Using this for frame buffer or SCSI DMA buffer causes subtle failure. The ST-RAM allocator has been changed to allocate memory from a pool of reserved ST-RAM of configurable size, set aside on ST-RAM init (i.e. before mem_init()). As long as this pool is not exhausted, allocation of real ST-RAM can be guaranteed. Other changes: - Replace the custom allocator in the ST-RAM pool by the existing allocator in the resource subsystem, - Remove mem_init_done and its hook, as memory init is now done before device init, - Remove /proc/stram, as ST-RAM usage now shows up under /proc/iomem, e.g. 005f2000-006f1fff : ST-RAM Pool 005f2000-0063dfff : atafb 0063e000-00641fff : ataflop 00642000-00642fff : SCSI Signed-off-by: Michael Schmitz <schmitz@debian.org> [Andreas Schwab <schwab@linux-m68k.org>: Use memparse()] [Geert: Use the resource subsystem instead of a custom allocator] Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> |
||
---|---|---|
.. | ||
amiga | ||
apollo | ||
atari | ||
bvme6000 | ||
configs | ||
emu | ||
fpsp040 | ||
hp300 | ||
ifpsp060 | ||
include/asm | ||
kernel | ||
lib | ||
mac | ||
math-emu | ||
mm | ||
mvme16x | ||
mvme147 | ||
platform | ||
q40 | ||
sun3 | ||
sun3x | ||
tools/amiga | ||
install.sh | ||
Kconfig | ||
Kconfig.debug | ||
Kconfig.mmu | ||
Kconfig.nommu | ||
Makefile | ||
Makefile_mm | ||
Makefile_no |