From: Hugh Dickins 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 Signed-off-by: Andrew Morton --- 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); _