This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / ppc64 / mm / hash_native.c
index 77297fc..0d8c8ab 100644 (file)
@@ -387,37 +387,33 @@ static void native_flush_hash_range(unsigned long context,
        local_irq_restore(flags);
 }
 
-#ifdef CONFIG_PPC_PSERIES
-/* Disable TLB batching on nighthawk */
-static inline int tlb_batching_enabled(void)
-{
-       struct device_node *root = of_find_node_by_path("/");
-       int enabled = 1;
-
-       if (root) {
-               const char *model = get_property(root, "model", NULL);
-               if (model && !strcmp(model, "IBM,9076-N81"))
-                       enabled = 0;
-               of_node_put(root);
-       }
-
-       return enabled;
-}
-#else
-static inline int tlb_batching_enabled(void)
-{
-       return 1;
-}
-#endif
-
 void hpte_init_native(void)
 {
+#ifdef CONFIG_PPC_PSERIES
+       struct device_node *root;
+       const char *model;
+#endif /* CONFIG_PPC_PSERIES */
+
        ppc_md.hpte_invalidate  = native_hpte_invalidate;
        ppc_md.hpte_updatepp    = native_hpte_updatepp;
        ppc_md.hpte_updateboltedpp = native_hpte_updateboltedpp;
        ppc_md.hpte_insert      = native_hpte_insert;
        ppc_md.hpte_remove      = native_hpte_remove;
-       if (tlb_batching_enabled())
-               ppc_md.flush_hash_range = native_flush_hash_range;
+
+#ifdef CONFIG_PPC_PSERIES
+       /* Disable TLB batching on nighthawk */
+       root = of_find_node_by_path("/");
+       if (root) {
+               model = get_property(root, "model", NULL);
+               if (!strcmp(model, "CHRP IBM,9076-N81")) {
+                       of_node_put(root);
+                       goto bail;
+               }
+               of_node_put(root);
+       }
+#endif /* CONFIG_PPC_PSERIES */
+
+       ppc_md.flush_hash_range = native_flush_hash_range;
+ bail:
        htab_finish_init();
 }