瀏覽代碼

[PATCH] Fix for LKDTM MEM_SWAPOUT crashpoint

The MEM_SWAPOUT crashpoint in LKDTM could be broken as some compilers
inline the call to shrink_page_list() and symbol lookup for this function
name fails.  Replacing it with the function shrink_inactive_list(), which
is the only function calling shrink_page_list().

Signed-off-by: Ankita Garg <ankita@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ankita Garg 18 年之前
父節點
當前提交
18a61e4adb
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      drivers/misc/lkdtm.c

+ 4 - 4
drivers/misc/lkdtm.c

@@ -157,8 +157,8 @@ void jp_ll_rw_block(int rw, int nr, struct buffer_head *bhs[])
 
 
 struct scan_control;
 struct scan_control;
 
 
-unsigned long jp_shrink_page_list(struct list_head *page_list,
-                                        struct scan_control *sc)
+unsigned long jp_shrink_inactive_list(unsigned long max_scan,
+				struct zone *zone, struct scan_control *sc)
 {
 {
 	lkdtm_handler();
 	lkdtm_handler();
 	jprobe_return();
 	jprobe_return();
@@ -297,8 +297,8 @@ int lkdtm_module_init(void)
 		lkdtm.entry = (kprobe_opcode_t*) jp_ll_rw_block;
 		lkdtm.entry = (kprobe_opcode_t*) jp_ll_rw_block;
 		break;
 		break;
 	case MEM_SWAPOUT:
 	case MEM_SWAPOUT:
-		lkdtm.kp.symbol_name = "shrink_page_list";
-		lkdtm.entry = (kprobe_opcode_t*) jp_shrink_page_list;
+		lkdtm.kp.symbol_name = "shrink_inactive_list";
+		lkdtm.entry = (kprobe_opcode_t*) jp_shrink_inactive_list;
 		break;
 		break;
 	case TIMERADD:
 	case TIMERADD:
 		lkdtm.kp.symbol_name = "hrtimer_start";
 		lkdtm.kp.symbol_name = "hrtimer_start";