|
@@ -941,15 +941,15 @@ static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages,
|
|
* When CONFIG_MOVABLE_NODE, we permit onlining of a node which doesn't have
|
|
* When CONFIG_MOVABLE_NODE, we permit onlining of a node which doesn't have
|
|
* normal memory.
|
|
* normal memory.
|
|
*/
|
|
*/
|
|
-static bool can_online_high_movable(struct zone *zone)
|
|
|
|
|
|
+static bool can_online_high_movable(int nid)
|
|
{
|
|
{
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
#else /* CONFIG_MOVABLE_NODE */
|
|
#else /* CONFIG_MOVABLE_NODE */
|
|
/* ensure every online node has NORMAL memory */
|
|
/* ensure every online node has NORMAL memory */
|
|
-static bool can_online_high_movable(struct zone *zone)
|
|
|
|
|
|
+static bool can_online_high_movable(int nid)
|
|
{
|
|
{
|
|
- return node_state(zone_to_nid(zone), N_NORMAL_MEMORY);
|
|
|
|
|
|
+ return node_state(nid, N_NORMAL_MEMORY);
|
|
}
|
|
}
|
|
#endif /* CONFIG_MOVABLE_NODE */
|
|
#endif /* CONFIG_MOVABLE_NODE */
|
|
|
|
|
|
@@ -1083,7 +1083,7 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_typ
|
|
|
|
|
|
if ((zone_idx(zone) > ZONE_NORMAL ||
|
|
if ((zone_idx(zone) > ZONE_NORMAL ||
|
|
online_type == MMOP_ONLINE_MOVABLE) &&
|
|
online_type == MMOP_ONLINE_MOVABLE) &&
|
|
- !can_online_high_movable(zone))
|
|
|
|
|
|
+ !can_online_high_movable(pfn_to_nid(pfn)))
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
if (online_type == MMOP_ONLINE_KERNEL) {
|
|
if (online_type == MMOP_ONLINE_KERNEL) {
|