From: Alan Cox Date: Thu, 19 Feb 2015 23:22:10 +0000 (+0000) Subject: simple: panic on corrupted swap X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=5362ec4dbd7c61b754226e432b977d084051d4e0;p=FUZIX.git simple: panic on corrupted swap --- diff --git a/Kernel/simple.c b/Kernel/simple.c index 915c301b..70c6da9b 100644 --- a/Kernel/simple.c +++ b/Kernel/simple.c @@ -62,28 +62,24 @@ int swapout(ptptr p) swapproc = p; - if (page) { + if (!page) + panic("%x: process already swapped!\n", p); #ifdef DEBUG - kprintf("Swapping out %x (%d)\n", p, p->p_page); + kprintf("Swapping out %x (%d)\n", p, p->p_page); #endif - /* Are we out of swap ? */ - map = swapmap_alloc(); - if (map == 0) - return ENOMEM; - flush_cache(p); - blk = map * SWAP_SIZE; - /* Write the app (and possibly the uarea etc..) to disk */ - swapwrite(SWAPDEV, blk, SWAPTOP - SWAPBASE, - SWAPBASE); - p->p_page = 0; - p->p_page2 = map; + /* Are we out of swap ? */ + map = swapmap_alloc(); + if (map == 0) + return ENOMEM; + flush_cache(p); + blk = map * SWAP_SIZE; + /* Write the app (and possibly the uarea etc..) to disk */ + swapwrite(SWAPDEV, blk, SWAPTOP - SWAPBASE, + SWAPBASE); + p->p_page = 0; + p->p_page2 = map; #ifdef DEBUG - kprintf("%x: swapout done %d\n", p, p->p_page); -#endif - } -#ifdef DEBUG - else - kprintf("%x: process already swapped!\n", p); + kprintf("%x: swapout done %d\n", p, p->p_page); #endif return 0; }