Linux 5.0 compat: Use totalhigh_pages()
Linux kernel commit ca79b0c211af63fa3276f0e3fd7dd9ada2439839 "mm: convert totalram_pages and totalhigh_pages variables to atomic" replaced `totalhigh_pages` with an inline function `totalhigh_pages()`. This broke compilation on IA32, etc, as ZoL uses `totalhigh_pages` on archs with highmem. Confirmed on Fedora 30 (5.0.9-301.fc30.i686). Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com> Closes #8677 Closes #8701
This commit is contained in:
parent
1eacf2b3b0
commit
de3e0b914b
|
@ -0,0 +1,19 @@
|
||||||
|
dnl #
|
||||||
|
dnl # 5.0 API change
|
||||||
|
dnl #
|
||||||
|
dnl # ca79b0c211af mm: convert totalram_pages and totalhigh_pages variables to atomic
|
||||||
|
dnl #
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_TOTALHIGH_PAGES], [
|
||||||
|
AC_MSG_CHECKING([whether totalhigh_pages() exists])
|
||||||
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
|
#include <linux/highmem.h>
|
||||||
|
],[
|
||||||
|
unsigned long pages __attribute__ ((unused));
|
||||||
|
pages = totalhigh_pages();
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_TOTALHIGH_PAGES, 1, [totalhigh_pages() exists])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
])
|
|
@ -164,6 +164,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
|
||||||
ZFS_AC_KERNEL_IN_COMPAT_SYSCALL
|
ZFS_AC_KERNEL_IN_COMPAT_SYSCALL
|
||||||
ZFS_AC_KERNEL_KTIME_GET_COARSE_REAL_TS64
|
ZFS_AC_KERNEL_KTIME_GET_COARSE_REAL_TS64
|
||||||
ZFS_AC_KERNEL_TOTALRAM_PAGES_FUNC
|
ZFS_AC_KERNEL_TOTALRAM_PAGES_FUNC
|
||||||
|
ZFS_AC_KERNEL_TOTALHIGH_PAGES
|
||||||
ZFS_AC_KERNEL_BLK_QUEUE_DISCARD
|
ZFS_AC_KERNEL_BLK_QUEUE_DISCARD
|
||||||
ZFS_AC_KERNEL_BLK_QUEUE_SECURE_ERASE
|
ZFS_AC_KERNEL_BLK_QUEUE_SECURE_ERASE
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,12 @@
|
||||||
#define zfs_totalram_pages totalram_pages
|
#define zfs_totalram_pages totalram_pages
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_TOTALHIGH_PAGES
|
||||||
|
#define zfs_totalhigh_pages totalhigh_pages()
|
||||||
|
#else
|
||||||
|
#define zfs_totalhigh_pages totalhigh_pages
|
||||||
|
#endif
|
||||||
|
|
||||||
#define membar_producer() smp_wmb()
|
#define membar_producer() smp_wmb()
|
||||||
#define physmem zfs_totalram_pages
|
#define physmem zfs_totalram_pages
|
||||||
#define freemem (nr_free_pages() + \
|
#define freemem (nr_free_pages() + \
|
||||||
|
|
|
@ -4828,7 +4828,7 @@ arc_all_memory(void)
|
||||||
{
|
{
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
#ifdef CONFIG_HIGHMEM
|
#ifdef CONFIG_HIGHMEM
|
||||||
return (ptob(zfs_totalram_pages - totalhigh_pages));
|
return (ptob(zfs_totalram_pages - zfs_totalhigh_pages));
|
||||||
#else
|
#else
|
||||||
return (ptob(zfs_totalram_pages));
|
return (ptob(zfs_totalram_pages));
|
||||||
#endif /* CONFIG_HIGHMEM */
|
#endif /* CONFIG_HIGHMEM */
|
||||||
|
|
Loading…
Reference in New Issue