On Thu, 7 Feb 2002, David S. Miller wrote:> From: Rik van Riel <riel@conectiva.com.br>> Date: Thu, 7 Feb 2002 10:34:20 -0200 (BRST)>> Actually, at this point we _know_ page->list.{prev,next} are> NULL.>> We can use this to add the pages to a special list, from where> __alloc_pages() and kswapd can move them to the free list, in> process context.>> I don't think there should be any special logic on how to free a page> outside of the page allocator itself. Certainly this kind of stuff> doesn't belong in the networking.>> Pages can be freed from arbitrary contexts, and the page allocator> should be the part the knows how to deal with it.>> Maybe I don't understand and you're really suggesting something else.

The mechanism to do what I described above should of course bein __free_pages_ok().