__get_swap_page() minor problem

From: Marcelo Tosatti (marcelo@conectiva.com.br)
Date: Wed Jan 03 2001 - 23:25:19 EST


Hi,

If the check for "count >= SWAP_MAP_MAX" in __get_swap_page is true, we
will end up trying to unlock a not-yet-locked spinlock.

Here goes a patch to change this.

--- linux/mm/swapfile.c.orig Thu Jan 4 04:10:08 2001
+++ linux/mm/swapfile.c Thu Jan 4 04:10:12 2001
@@ -90,8 +90,12 @@
         int type, wrapped = 0;
 
         entry.val = 0; /* Out of memory */
- if (count >= SWAP_MAP_MAX)
- goto bad_count;
+ if (count >= SWAP_MAP_MAX) {
+ printk(KERN_ERR "get_swap_page: bad count %hd from %p\n",
+ count, __builtin_return_address(0));
+ return entry;
+ }
+
         swap_list_lock();
         type = swap_list.next;
         if (type < 0)
@@ -130,11 +134,6 @@
 out:
         swap_list_unlock();
         return entry;
-
-bad_count:
- printk(KERN_ERR "get_swap_page: bad count %hd from %p\n",
- count, __builtin_return_address(0));
- goto out;
 }
 
 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jan 07 2001 - 21:00:17 EST