diff options
| author | Maxime Ripard <maxime@cerno.tech> | 2022-06-08 19:11:27 +0200 |
|---|---|---|
| committer | Maxime Ripard <maxime@cerno.tech> | 2022-06-08 19:11:27 +0200 |
| commit | 6e2b347d42e54282e4c6cfa08272db462b178f7f (patch) | |
| tree | 7686345b2e24c406a57feffcad558484f9552366 /include/linux/stackdepot.h | |
| parent | e54a4424925a27ed94dff046db3ce5caf4b1e748 (diff) | |
| parent | f2906aa863381afb0015a9eb7fefad885d4e5a56 (diff) | |
| download | cachepc-linux-6e2b347d42e54282e4c6cfa08272db462b178f7f.tar.gz cachepc-linux-6e2b347d42e54282e4c6cfa08272db462b178f7f.zip | |
Merge v5.19-rc1 into drm-misc-fixes
Let's kick-off the start of the 5.19 fix cycle
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Diffstat (limited to 'include/linux/stackdepot.h')
| -rw-r--r-- | include/linux/stackdepot.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/include/linux/stackdepot.h b/include/linux/stackdepot.h index 17f992fe6355..bc2797955de9 100644 --- a/include/linux/stackdepot.h +++ b/include/linux/stackdepot.h @@ -20,18 +20,36 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries, gfp_t gfp_flags, bool can_alloc); /* - * Every user of stack depot has to call this during its own init when it's - * decided that it will be calling stack_depot_save() later. + * Every user of stack depot has to call stack_depot_init() during its own init + * when it's decided that it will be calling stack_depot_save() later. This is + * recommended for e.g. modules initialized later in the boot process, when + * slab_is_available() is true. * * The alternative is to select STACKDEPOT_ALWAYS_INIT to have stack depot * enabled as part of mm_init(), for subsystems where it's known at compile time * that stack depot will be used. + * + * Another alternative is to call stack_depot_want_early_init(), when the + * decision to use stack depot is taken e.g. when evaluating kernel boot + * parameters, which precedes the enablement point in mm_init(). + * + * stack_depot_init() and stack_depot_want_early_init() can be called regardless + * of CONFIG_STACKDEPOT and are no-op when disabled. The actual save/fetch/print + * functions should only be called from code that makes sure CONFIG_STACKDEPOT + * is enabled. */ +#ifdef CONFIG_STACKDEPOT int stack_depot_init(void); -#ifdef CONFIG_STACKDEPOT_ALWAYS_INIT -static inline int stack_depot_early_init(void) { return stack_depot_init(); } +void __init stack_depot_want_early_init(void); + +/* This is supposed to be called only from mm_init() */ +int __init stack_depot_early_init(void); #else +static inline int stack_depot_init(void) { return 0; } + +static inline void stack_depot_want_early_init(void) { } + static inline int stack_depot_early_init(void) { return 0; } #endif |
