On Tue, 10 May 2016 15:39:43 -0500
Reza Arbab <arbab@xxxxxxxxxxxxxxxxxx> wrote:
<snip>
+ if (idx < target) {<snip>
+ /* pages must be at end of current zone */
+ if (pfn + nr_pages != zone_end_pfn(zone))
+ return 0;
+ if (target < idx) {
+ /* pages must be at beginning of current zone */
+ if (pfn != zone->zone_start_pfn)
+ return 0;
According your patch, memory address must be continuous for changing zone.
So if memory address is uncontinuous as follows, memory address 0x180000000-0x1FFFFFFFF
can be changed from ZONE_NORMAL to ZONE_MOVABLE. But memory address 0x80000000-0xFFFFFFFF
can not be changed from ZONE_NORMAL to ZONE_MOVABLE since it does not meet
above condition.
Memory address
0x80000000 - 0xFFFFFFFF
0x180000000 - 0x1FFFFFFFF