USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
[platform/kernel/linux-rpi.git] / mm / page_alloc.c
index 95546f3..afed33f 100644 (file)
@@ -3809,14 +3809,9 @@ should_reclaim_retry(gfp_t gfp_mask, unsigned order,
        else
                (*no_progress_loops)++;
 
-       /*
-        * Make sure we converge to OOM if we cannot make any progress
-        * several times in the row.
-        */
-       if (*no_progress_loops > MAX_RECLAIM_RETRIES) {
-               /* Before OOM, exhaust highatomic_reserve */
-               return unreserve_highatomic_pageblock(ac, true);
-       }
+       if (*no_progress_loops > MAX_RECLAIM_RETRIES)
+               goto out;
+
 
        /*
         * Keep reclaiming pages while there is a chance this will lead
@@ -3859,6 +3854,11 @@ should_reclaim_retry(gfp_t gfp_mask, unsigned order,
                schedule_timeout_uninterruptible(1);
        else
                cond_resched();
+out:
+       /* Before OOM, exhaust highatomic_reserve */
+       if (!ret)
+               return unreserve_highatomic_pageblock(ac, true);
+
        return ret;
 }
 
@@ -6475,6 +6475,7 @@ static void break_down_buddy_pages(struct zone *zone, struct page *page,
                        next_page = page;
                        current_buddy = page + size;
                }
+               page = next_page;
 
                if (set_page_guard(zone, current_buddy, high, migratetype))
                        continue;
@@ -6482,7 +6483,6 @@ static void break_down_buddy_pages(struct zone *zone, struct page *page,
                if (current_buddy != target) {
                        add_to_free_list(current_buddy, zone, high, migratetype);
                        set_buddy_order(current_buddy, high);
-                       page = next_page;
                }
        }
 }