mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-12-26 12:21:01 +01:00
liburcu doesn't have kfree_rcu (or anything similar). Despite that, we can hack around it in a trivial fashion, by adding a wrapper. The wrapper only works for maple_nodes because we cannot get the kmem_cache pointer any other way in the test code. Link: https://lore.kernel.org/all/20250812162124.59417-1-pfalcato@suse.de/ Suggested-by: Pedro Falcato <pfalcato@suse.de> Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Reviewed-by: Suren Baghdasaryan <surenb@google.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
25 lines
637 B
C
25 lines
637 B
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
#ifndef __MAPLE_SHARED_H__
|
|
#define __MAPLE_SHARED_H__
|
|
|
|
#define CONFIG_DEBUG_MAPLE_TREE
|
|
#define CONFIG_MAPLE_SEARCH
|
|
#define MAPLE_32BIT (MAPLE_NODE_SLOTS > 31)
|
|
#include "shared.h"
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
#include "linux/init.h"
|
|
|
|
void maple_rcu_cb(struct rcu_head *head);
|
|
#define rcu_cb maple_rcu_cb
|
|
|
|
#define kfree_rcu(_struct, _memb) \
|
|
do { \
|
|
typeof(_struct) _p_struct = (_struct); \
|
|
\
|
|
call_rcu(&((_p_struct)->_memb), rcu_cb); \
|
|
} while(0);
|
|
|
|
|
|
#endif /* __MAPLE_SHARED_H__ */
|