diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-08-19 18:50:23 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-08-19 18:50:23 +0000 |
commit | dc8c5eb262005ea0461c9ce4c079077fa39a02b6 (patch) | |
tree | 9d3b53ed6661164c40a83f2834796a06ac9215c6 /linux-2.4.26-xen-sparse/mm/page_alloc.c | |
parent | b148045b89453607a9f267bb9a77997846ba45b5 (diff) | |
download | xen-dc8c5eb262005ea0461c9ce4c079077fa39a02b6.tar.gz xen-dc8c5eb262005ea0461c9ce4c079077fa39a02b6.tar.bz2 xen-dc8c5eb262005ea0461c9ce4c079077fa39a02b6.zip |
bitkeeper revision 1.1159.42.8 (4124f66fUINxrel-POThC1of633DIA)
Clean up network-backend driver changes to common files.
There is now a 'foreign page' hook into the page allocator, and
a CONFIG_ option for forcing page-sized rx skbs.
Diffstat (limited to 'linux-2.4.26-xen-sparse/mm/page_alloc.c')
-rw-r--r-- | linux-2.4.26-xen-sparse/mm/page_alloc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/linux-2.4.26-xen-sparse/mm/page_alloc.c b/linux-2.4.26-xen-sparse/mm/page_alloc.c index 62ed7751a5..fda37e1929 100644 --- a/linux-2.4.26-xen-sparse/mm/page_alloc.c +++ b/linux-2.4.26-xen-sparse/mm/page_alloc.c @@ -89,6 +89,9 @@ static void __free_pages_ok (struct page *page, unsigned int order) struct page *base; zone_t *zone; + if (PageForeign(page)) + return (PageForeignDestructor(page))(page); + /* * Yes, think what happens when other parts of the kernel take * a reference to a page in order to pin it for io. -ben @@ -102,7 +105,7 @@ static void __free_pages_ok (struct page *page, unsigned int order) if (page->buffers) BUG(); if (page->mapping) - return (*(void(*)(struct page *))page->mapping)(page); + BUG(); if (!VALID_PAGE(page)) BUG(); if (PageLocked(page)) |