Flush dcache page is supposed to run on pages not objects of varying
length. It is suprising that this has not lead to earlier problems.
Objects allocated this way may straddle a page boundary under some
conditions and in that case virt_to_page may not lead to a page that
covers the complete object that is supposed to be flushed. Hopefully the
"size" of the allocated object were whole pages.
2.6.22 cleans up these issues and this one follows in those footsteps.
The reason for the introduction of the quicklist f.e. was to have a clear
separation between page sized allocation and the variable allocations
through slab allocators.
-