X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Fwrapper%2Fwriteback.h;h=71369ab260d2c655e213c8f8b799f3f4e32cdb93;hb=9f2d2694cf0655682a1f0c29a7f3b868680524a5;hp=e5f36c258534a211ba76d8b3a316c2dc4bdb3ce1;hpb=117ab60f69a98dcbc365de8008ab93e6699d153a;p=lttng-modules.git diff --git a/include/wrapper/writeback.h b/include/wrapper/writeback.h index e5f36c25..71369ab2 100644 --- a/include/wrapper/writeback.h +++ b/include/wrapper/writeback.h @@ -12,16 +12,11 @@ #ifndef _LTTNG_WRAPPER_WRITEBACK_H #define _LTTNG_WRAPPER_WRITEBACK_H -#include - #ifdef CONFIG_KALLSYMS_ALL + #include #include - - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) - static struct wb_domain *global_wb_domain_sym; static inline @@ -37,24 +32,19 @@ unsigned long wrapper_global_dirty_limit(void) return 0; } } -#else - -static unsigned long *global_dirty_limit_sym; +/* + * Canary function to check for 'global_wb_domain' at compile time. + * + * From 'include/linux/writeback.h': + * + * extern struct wb_domain global_wb_domain; + */ static inline -unsigned long wrapper_global_dirty_limit(void) +unsigned long __canary__global_wb_domain(void) { - if (!global_dirty_limit_sym) - global_dirty_limit_sym = - (void *) kallsyms_lookup_dataptr("global_dirty_limit"); - if (global_dirty_limit_sym) { - return *global_dirty_limit_sym; - } else { - printk_once(KERN_WARNING "LTTng: global_dirty_limit symbol lookup failed.\n"); - return 0; - } + return global_wb_domain.dirty_limit; } -#endif #else /* CONFIG_KALLSYMS_ALL */ @@ -66,6 +56,6 @@ unsigned long wrapper_global_dirty_limit(void) return global_dirty_limit; } -#endif +#endif /* CONFIG_KALLSYMS_ALL */ #endif /* _LTTNG_WRAPPER_WRITEBACK_H */