浏览代码

[PATCH] memory hotadd fixes: change find_next_system_ram's return value manner

find_next_system_ram() returns valid memory range which meets requested area,
only used by memory-hot-add.

This function always rewrite requested resource even if returned area is not
fully fit in requested one.  And sometimes the returnd resource is larger than
requested area.  This annoyes the caller.  This patch changes the returned
value to fit in requested area.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Keith Mannthey <kmannth@gmail.com>
Cc: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMEZAWA Hiroyuki 19 年之前
父节点
当前提交
0f04ab5efb
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      kernel/resource.c

+ 4 - 2
kernel/resource.c

@@ -261,8 +261,10 @@ int find_next_system_ram(struct resource *res)
 	if (!p)
 	if (!p)
 		return -1;
 		return -1;
 	/* copy data */
 	/* copy data */
-	res->start = p->start;
-	res->end = p->end;
+	if (res->start < p->start)
+		res->start = p->start;
+	if (res->end > p->end)
+		res->end = p->end;
 	return 0;
 	return 0;
 }
 }
 #endif
 #endif