diff
+ spinlock_t page_free_lock;
  static inline void free_the_page(struct page *page, unsigned int order)
  {
+     spin_lock(&page_free_lock);
      if (pcp_allowed_order(order))        /* Via pcp? */
          free_unref_page(page, order);
      else
          __free_pages_ok(page, order, FPI_NONE);
+     spin_unlock(&page_free_lock);
  }
