summaryrefslogtreecommitdiffstats
path: root/mm/swap_state.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-06-30 00:21:34 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-06-30 00:21:34 +0000
commit3917ac5846dd0f9ad1238166f90caab9912052e6 (patch)
tree1c298935def4f29edb39192365a65d73de999155 /mm/swap_state.c
parentaf2f803c8b2d469fe38e4a7ce952658dfcb6681a (diff)
o Merge with Linux 2.1.100.
o Cleanup the machine dependencies of floppy and rtc. The driver for the Dallas thingy in the Indy is still missing. o Handle allocation of zero'd pages correct for R4000SC / R4400SC. o Page colouring shit to match the virtual and physical colour of all mapped pages. This tends to produce extreme fragmentation problems, so it's deactivated for now. Users of R4000SC / R4400SC may re-enable the code in arch/mips/mm/init.c by removing the definition of CONF_GIVE_A_SHIT_ABOUT_COLOURS. Should get them somewhat further - but don't shake to hard ... o Fixed ptrace(2)-ing of syscalls, strace is now working again. o Fix the interrupt forwarding from the keyboard driver to the psaux driver, PS/2 mice are now working on the Indy. The fix is somewhat broken as it prevents generic kernels for Indy and machines which handle things different. o Things I can't remember.
Diffstat (limited to 'mm/swap_state.c')
-rw-r--r--mm/swap_state.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/swap_state.c b/mm/swap_state.c
index b575877ff..b91583340 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -219,7 +219,7 @@ void free_page_and_swap_cache(unsigned long addr)
delete_from_swap_cache(page);
}
- free_page(addr);
+ free_user_page(page, addr);
}
@@ -256,7 +256,7 @@ static struct page * lookup_swap_cache(unsigned long entry)
* only doing readahead, so don't worry if the page is already locked.
*/
-struct page * read_swap_cache_async(unsigned long entry, int wait)
+struct page * read_swap_cache_async(unsigned long entry, unsigned long addr, int wait)
{
struct page *found_page, *new_page = 0;
unsigned long new_page_addr = 0;
@@ -276,7 +276,7 @@ repeat:
/* The entry is not present. Lock down a new page, add it to
* the swap cache and read its contents. */
if (!new_page) {
- new_page_addr = __get_free_page(GFP_KERNEL);
+ new_page_addr = get_user_page(addr);
if (!new_page_addr)
return 0; /* Out of memory */
new_page = mem_map + MAP_NR(new_page_addr);