mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 02:49:32 +03:00
Revert "Detect kernels that honor gfp flags passed to vmalloc()"
This reverts commit 36811b4430
.
Which is no longer required because there is now SPL code in
place to safely handle the deadlocks the kernel patch was designed
to address. Therefore we can unconditionally use vmalloc() and
drop all the PF_MEMALLOC code.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
d47e664ad4
commit
bc03e07a7c
@ -88,7 +88,6 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
|
||||
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], [
|
||||
@ -2235,38 +2234,3 @@ AC_DEFUN([SPL_AC_RWSEM_SPINLOCK_IS_RAW], [
|
||||
])
|
||||
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)
|
||||
])
|
||||
])
|
||||
|
@ -843,9 +843,6 @@ kv_alloc(spl_kmem_cache_t *skc, int size, int flags)
|
||||
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
|
||||
@ -869,7 +866,6 @@ kv_alloc(spl_kmem_cache_t *skc, int size, int flags)
|
||||
} else {
|
||||
ptr = __vmalloc(size, flags|__GFP_HIGHMEM, PAGE_KERNEL);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Resulting allocated memory will be page aligned */
|
||||
|
@ -165,9 +165,6 @@
|
||||
/* 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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user