SPL_AC_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE
SPL_AC_SHRINK_CONTROL_STRUCT
SPL_AC_RWSEM_SPINLOCK_IS_RAW
- SPL_AC_PMD_ALLOC_WITH_MASK
])
AC_DEFUN([SPL_AC_MODULE_SYMVERS], [
])
EXTRA_KCFLAGS="$tmp_flags"
])
-
-dnl #
-dnl # Proposed VM Subsystem Bug Fix
-dnl # https://bugs.gentoo.org/show_bug.cgi?id=416685
-dnl #
-dnl # Make __pte_alloc_kernel() honor gfp flags passed to vmalloc()
-dnl # This is detected by checking a macro that is changed to support this.
-dnl #
-AC_DEFUN([SPL_AC_PMD_ALLOC_WITH_MASK], [
- AC_MSG_CHECKING([whether pmd_alloc_with_mask exists])
- SPL_LINUX_TRY_COMPILE([
- #if !defined(CONFIG_MMU)
- #define CONFIG_MMU
- #endif
-
- #if defined(RCH_HAS_4LEVEL_HACK)
- #undef RCH_HAS_4LEVEL_HACK
- #endif
-
- #include <linux/mm.h>
- ],[
- struct mm_struct init_mm;
- pud_t *pud = NULL;
- unsigned long addr = 0;
- gfp_t gfp_mask = GFP_KERNEL;
-
- pmd_alloc_with_mask(&init_mm, pud, addr, gfp_mask);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_PMD_ALLOC_WITH_MASK, 1,
- [pmd_alloc_with_mask exists])
- ],[
- AC_MSG_RESULT(no)
- ])
-])
if (skc->skc_flags & KMC_KMEM) {
ptr = (void *)__get_free_pages(flags, get_order(size));
} else {
-#ifdef HAVE_PMD_ALLOC_WITH_MASK
- ptr = __vmalloc(size, flags|__GFP_HIGHMEM, PAGE_KERNEL);
-#else
/*
* As part of vmalloc() an __pte_alloc_kernel() allocation
* may occur. This internal allocation does not honor the
} else {
ptr = __vmalloc(size, flags|__GFP_HIGHMEM, PAGE_KERNEL);
}
-#endif
}
/* Resulting allocated memory will be page aligned */
/* pgdat_list is available */
#undef HAVE_PGDAT_LIST
-/* pmd_alloc_with_mask exists */
-#undef HAVE_PMD_ALLOC_WITH_MASK
-
/* __put_task_struct() is available */
#undef HAVE_PUT_TASK_STRUCT