From: Mathieu Desnoyers Date: Mon, 13 Apr 2020 18:42:50 +0000 (-0400) Subject: wrapper: remove page_alloc wrapper X-Git-Tag: for-upstreaming-review-1~83 X-Git-Url: http://git.liburcu.org/?p=lttng-modules.git;a=commitdiff_plain;h=4b4a8b1980b91b11e6d3b628f7285906fa46c676 wrapper: remove page_alloc wrapper --- diff --git a/Makefile b/Makefile index 5358701b..a96ab73c 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,6 @@ ifneq ($(KERNELRELEASE),) lttng-context-callstack.o lttng-calibrate.o \ lttng-context-hostname.o wrapper/random.o \ probes/lttng.o wrapper/trace-clock.o \ - wrapper/page_alloc.o \ lttng-tracker-id.o \ lttng-filter.o lttng-filter-interpreter.o \ lttng-filter-specialize.o \ diff --git a/lttng-events.c b/lttng-events.c index ff13b7c0..dbf267f8 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -7,12 +7,6 @@ * Copyright (C) 2010-2012 Mathieu Desnoyers */ -/* - * This page_alloc.h wrapper needs to be included before gfpflags.h because it - * overrides a function with a define. - */ -#include "wrapper/page_alloc.h" - #include #include #include @@ -2936,12 +2930,6 @@ static int __init lttng_events_init(void) { int ret; - ret = wrapper_get_pfnblock_flags_mask_init(); - if (ret) - return ret; - ret = wrapper_get_pageblock_flags_mask_init(); - if (ret) - return ret; ret = lttng_probes_init(); if (ret) return ret; diff --git a/probes/lttng-probe-kmem.c b/probes/lttng-probe-kmem.c index afd418d9..01f2d9f1 100644 --- a/probes/lttng-probe-kmem.c +++ b/probes/lttng-probe-kmem.c @@ -8,11 +8,6 @@ * Copyright (C) 2012 Mentor Graphics Corp. */ -/* - * This page_alloc.h wrapper needs to be included before gfpflags.h because it - * overrides a function with a define. - */ -#include #include #include #include diff --git a/wrapper/page_alloc.c b/wrapper/page_alloc.c deleted file mode 100644 index 7951e881..00000000 --- a/wrapper/page_alloc.c +++ /dev/null @@ -1,102 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) - * wrapper/page_alloc.c - * - * wrapper around get_pfnblock_flags_mask and Ubuntu - * get_pageblock_flags_mask. Using KALLSYMS to get their address when - * available, else we need to have a kernel that exports this function - * to GPL modules. - * - * Copyright (C) 2015 Mathieu Desnoyers - */ - -#include - -#if (defined(CONFIG_KALLSYMS) \ - && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2) \ - || LTTNG_KERNEL_RANGE(3,14,36, 3,15,0) \ - || LTTNG_KERNEL_RANGE(3,18,10, 3,19,0) \ - || LTTNG_DEBIAN_KERNEL_RANGE(3,16,7,9,0,0, 3,17,0,0,0,0) \ - || LTTNG_UBUNTU_KERNEL_RANGE(3,16,7,34, 3,17,0,0))) - -#include -#include -#include -#include -#include - -static -unsigned long (*get_pfnblock_flags_mask_sym)(struct page *page, - unsigned long pfn, - unsigned long end_bitidx, - unsigned long mask); - -unsigned long wrapper_get_pfnblock_flags_mask(struct page *page, - unsigned long pfn, - unsigned long end_bitidx, - unsigned long mask) -{ - WARN_ON_ONCE(!get_pfnblock_flags_mask_sym); - if (get_pfnblock_flags_mask_sym) { - return get_pfnblock_flags_mask_sym(page, pfn, end_bitidx, mask); - } else { - return -ENOSYS; - } -} -EXPORT_SYMBOL_GPL(wrapper_get_pfnblock_flags_mask); - -int wrapper_get_pfnblock_flags_mask_init(void) -{ - get_pfnblock_flags_mask_sym = - (void *) kallsyms_lookup_funcptr("get_pfnblock_flags_mask"); - if (!get_pfnblock_flags_mask_sym) - return -1; - return 0; -} - -#else - -#include - -#endif - -#if (defined(CONFIG_KALLSYMS) \ - && LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,50, 3,14,0,0)) - -#include -#include -#include -#include -#include - -static -unsigned long (*get_pageblock_flags_mask_sym)(struct page *page, - unsigned long end_bitidx, - unsigned long mask); - -unsigned long wrapper_get_pageblock_flags_mask(struct page *page, - unsigned long end_bitidx, - unsigned long mask) -{ - WARN_ON_ONCE(!get_pageblock_flags_mask_sym); - if (get_pageblock_flags_mask_sym) { - return get_pageblock_flags_mask_sym(page, end_bitidx, mask); - } else { - return -ENOSYS; - } -} -EXPORT_SYMBOL_GPL(wrapper_get_pageblock_flags_mask); - -int wrapper_get_pageblock_flags_mask_init(void) -{ - get_pageblock_flags_mask_sym = - (void *) kallsyms_lookup_funcptr("get_pageblock_flags_mask"); - if (!get_pageblock_flags_mask_sym) - return -1; - return 0; -} - -#else - -#include - -#endif diff --git a/wrapper/page_alloc.h b/wrapper/page_alloc.h deleted file mode 100644 index af9c0536..00000000 --- a/wrapper/page_alloc.h +++ /dev/null @@ -1,78 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) - * - * wrapper/page_alloc.h - * - * wrapper around get_pfnblock_flags_mask. Using KALLSYMS to get its address - * when available, else we need to have a kernel that exports this function to - * GPL modules. - * - * Copyright (C) 2015 Mathieu Desnoyers - */ - -#ifndef _LTTNG_WRAPPER_PAGE_ALLOC_H -#define _LTTNG_WRAPPER_PAGE_ALLOC_H - -#include - -/* - * We need to redefine get_pfnblock_flags_mask to our wrapper, because - * the get_pageblock_migratetype() macro uses it. - */ -#if (defined(CONFIG_KALLSYMS) \ - && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2) \ - || LTTNG_KERNEL_RANGE(3,14,36, 3,15,0) \ - || LTTNG_KERNEL_RANGE(3,18,10, 3,19,0) \ - || LTTNG_DEBIAN_KERNEL_RANGE(3,16,7,9,0,0, 3,17,0,0,0,0) \ - || LTTNG_UBUNTU_KERNEL_RANGE(3,16,7,34, 3,17,0,0))) - -#define get_pfnblock_flags_mask wrapper_get_pfnblock_flags_mask - -#include - -int wrapper_get_pfnblock_flags_mask_init(void); - -#else - -#include - -static inline -int wrapper_get_pfnblock_flags_mask_init(void) -{ - return 0; -} - -#endif - -/* - * For a specific range of Ubuntu 3.13 kernels, we need to redefine - * get_pageblock_flags_mask to our wrapper, because the - * get_pageblock_migratetype() macro uses it. This function has been - * introduced into mainline within commit - * e58469bafd0524e848c3733bc3918d854595e20f, but never actually showed - * up in a stable kernel version, since it has been changed by commit - * dc4b0caff24d9b2918e9f27bc65499ee63187eba. Since Ubuntu chose to only - * backport the former commit but not the latter, we need to do a - * special case to cover this. - */ -#if (defined(CONFIG_KALLSYMS) \ - && LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,50, 3,14,0,0)) - -#define get_pageblock_flags_mask wrapper_get_pageblock_flags_mask - -#include - -int wrapper_get_pageblock_flags_mask_init(void); - -#else - -#include - -static inline -int wrapper_get_pageblock_flags_mask_init(void) -{ - return 0; -} - -#endif - -#endif /* _LTTNG_WRAPPER_PAGE_ALLOC_H */