X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Fpage_isolation.c;h=63a3db10a8c0c26535e82e620826d70d04a9589b;hb=6a143041532e7df4bd243f4994d46112bd7137ca;hp=242c03121d7317b26c88a030bd42d783ac844ab3;hpb=8b94e0b8be360cf5460331e56a2678ba265f0694;p=linux-2.6-microblaze.git diff --git a/mm/page_isolation.c b/mm/page_isolation.c index 242c03121d73..63a3db10a8c0 100644 --- a/mm/page_isolation.c +++ b/mm/page_isolation.c @@ -170,6 +170,14 @@ __first_valid_page(unsigned long pfn, unsigned long nr_pages) * pageblocks we may have modified and return -EBUSY to caller. This * prevents two threads from simultaneously working on overlapping ranges. * + * Please note that there is no strong synchronization with the page allocator + * either. Pages might be freed while their page blocks are marked ISOLATED. + * In some cases pages might still end up on pcp lists and that would allow + * for their allocation even when they are in fact isolated already. Depending + * on how strong of a guarantee the caller needs drain_all_pages might be needed + * (e.g. __offline_pages will need to call it after check for isolated range for + * a next retry). + * * Return: the number of isolated pageblocks on success and -EBUSY if any part * of range cannot be isolated. */