|
@@ -449,6 +449,32 @@ extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn,
|
|
|
unsigned long size);
|
|
|
#endif
|
|
|
|
|
|
+#ifdef __HAVE_COLOR_ZERO_PAGE
|
|
|
+static inline int is_zero_pfn(unsigned long pfn)
|
|
|
+{
|
|
|
+ extern unsigned long zero_pfn;
|
|
|
+ unsigned long offset_from_zero_pfn = pfn - zero_pfn;
|
|
|
+ return offset_from_zero_pfn <= (zero_page_mask >> PAGE_SHIFT);
|
|
|
+}
|
|
|
+
|
|
|
+static inline unsigned long my_zero_pfn(unsigned long addr)
|
|
|
+{
|
|
|
+ return page_to_pfn(ZERO_PAGE(addr));
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline int is_zero_pfn(unsigned long pfn)
|
|
|
+{
|
|
|
+ extern unsigned long zero_pfn;
|
|
|
+ return pfn == zero_pfn;
|
|
|
+}
|
|
|
+
|
|
|
+static inline unsigned long my_zero_pfn(unsigned long addr)
|
|
|
+{
|
|
|
+ extern unsigned long zero_pfn;
|
|
|
+ return zero_pfn;
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
#ifdef CONFIG_MMU
|
|
|
|
|
|
#ifndef CONFIG_TRANSPARENT_HUGEPAGE
|