mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
locking: Introduce __cleanup() based infrastructure
Use __attribute__((__cleanup__(func))) to build: - simple auto-release pointers using __free() - 'classes' with constructor and destructor semantics for scope-based resource management. - lock guards based on the above classes. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20230612093537.614161713%40infradead.org
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include <linux/cpumask.h>
|
||||
#include <linux/pfn.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/cleanup.h>
|
||||
|
||||
#include <asm/percpu.h>
|
||||
|
||||
@@ -127,6 +128,9 @@ extern void __init setup_per_cpu_areas(void);
|
||||
extern void __percpu *__alloc_percpu_gfp(size_t size, size_t align, gfp_t gfp) __alloc_size(1);
|
||||
extern void __percpu *__alloc_percpu(size_t size, size_t align) __alloc_size(1);
|
||||
extern void free_percpu(void __percpu *__pdata);
|
||||
|
||||
DEFINE_FREE(free_percpu, void __percpu *, free_percpu(_T))
|
||||
|
||||
extern phys_addr_t per_cpu_ptr_to_phys(void *addr);
|
||||
|
||||
#define alloc_percpu_gfp(type, gfp) \
|
||||
|
||||
Reference in New Issue
Block a user