Message ID | 20200409193543.18115-7-mathieu.desnoyers@efficios.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Thu, Apr 09, 2020 at 03:35:40PM -0400, Mathieu Desnoyers wrote: > The macro include/linux/mmzone.h:get_pageblock_migratetype() uses > the symbol get_pfnblock_flags_mask, which is not exported. That macro is > used within the kmem and page_ref trace events to trace the migrate type > of the target page. > > Exporting this symbol to GPL modules allows GPL kernel tracers to be > implemented as modules. Which might make some sense if we had such intree modules (and then even some as we could have higher level functions). Without that is obviously is a no-go.
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 114c56c3685d..390febb028a0 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -501,6 +501,7 @@ unsigned long get_pfnblock_flags_mask(struct page *page, unsigned long pfn, { return __get_pfnblock_flags_mask(page, pfn, end_bitidx, mask); } +EXPORT_SYMBOL_GPL(get_pfnblock_flags_mask); static __always_inline int get_pfnblock_migratetype(struct page *page, unsigned long pfn) {
The macro include/linux/mmzone.h:get_pageblock_migratetype() uses the symbol get_pfnblock_flags_mask, which is not exported. That macro is used within the kmem and page_ref trace events to trace the migrate type of the target page. Exporting this symbol to GPL modules allows GPL kernel tracers to be implemented as modules. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mm@kvack.org --- mm/page_alloc.c | 1 + 1 file changed, 1 insertion(+)