aboutsummaryrefslogtreecommitdiffstats
path: root/linux-2.4.26-xen-sparse/mm/page_alloc.c
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-08-19 18:50:23 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-08-19 18:50:23 +0000
commitdc8c5eb262005ea0461c9ce4c079077fa39a02b6 (patch)
tree9d3b53ed6661164c40a83f2834796a06ac9215c6 /linux-2.4.26-xen-sparse/mm/page_alloc.c
parentb148045b89453607a9f267bb9a77997846ba45b5 (diff)
downloadxen-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.c5
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))