From: Hugh Dickins <hugh@veritas.com>

rme96xx busmaster_malloc miscalculates and fails to set PageReserved on any
page of char *buf; but busmaster_free does it right, so do the same (I
don't have the card, just noticed this while sifting for rmap BUGs).

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 sound/oss/rme96xx.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN sound/oss/rme96xx.c~rme96xx-fix-pagereserved-range sound/oss/rme96xx.c
--- 25/sound/oss/rme96xx.c~rme96xx-fix-pagereserved-range	Mon Jun  6 15:23:37 2005
+++ 25-akpm/sound/oss/rme96xx.c	Mon Jun  6 15:23:37 2005
@@ -807,7 +807,7 @@ static void* busmaster_malloc(int size) 
                 struct page* page, *last_page;
 
                 page = virt_to_page(buf);
-                last_page = virt_to_page(buf + (1 << pg));
+                last_page = page + (1 << pg);
                 DBG(printk("setting reserved bit\n"));
                 while (page < last_page) {
 			SetPageReserved(page);
_