mm: change __get_vm_area_node() to use fls_long()
[deliverable/linux.git] / mm / migrate.c
index 85e04268603143826e8cd80c533419feb221ad56..ec1802d85f054c508c646e2379f83eb3b5f3a2ba 100644 (file)
@@ -900,13 +900,24 @@ out:
        return rc;
 }
 
+/*
+ * gcc 4.7 and 4.8 on arm get an ICEs when inlining unmap_and_move().  Work
+ * around it.
+ */
+#if (GCC_VERSION >= 40700 && GCC_VERSION < 40900) && defined(CONFIG_ARM)
+#define ICE_noinline noinline
+#else
+#define ICE_noinline
+#endif
+
 /*
  * Obtain the lock on page, remove all ptes and migrate the page
  * to the newly allocated page in newpage.
  */
-static int unmap_and_move(new_page_t get_new_page, free_page_t put_new_page,
-                       unsigned long private, struct page *page, int force,
-                       enum migrate_mode mode)
+static ICE_noinline int unmap_and_move(new_page_t get_new_page,
+                                  free_page_t put_new_page,
+                                  unsigned long private, struct page *page,
+                                  int force, enum migrate_mode mode)
 {
        int rc = 0;
        int *result = NULL;
This page took 0.024822 seconds and 5 git commands to generate.