This problem is well known, but unfortunately there is no clean fix
for it yet :-( The source of the problem is that only memory below
16M is suitable for DMA. The way how memory allocation works is that
the memory manager first searches for suitable memory which is already
free, and if none is found, it tries to free some more by swapping or
tossing away buffers. Unfortunately, the last part of the algorithm
(freeing more memory) doesn't have any knowledge of the _kind_ of
memory requested. Hence this part will say "there is plenty of memory
available", but all that memory will be above 16M. Thus the upper
layer will fail because it still can't find any suitable memory.
One workaround for this problem is to boot with floppy=nodma.
Regards,
Alain