mirror of
https://github.com/torvalds/linux.git
synced 2026-10-15 20:30:02 +02:00
Support for discovering memory blocks with no preserved memory will be added in coming patches. These areas will also be marked as scratch to allow allocations from them. Memblock will switch to looking through the scratch array to decide the right migratetype. Expose kho_scratch_overlap() to KHO users. Since it is now used by non-debug code, move it out of kexec_handover_debug.c and into kexec_handover.c. Gate the overlap checks in kho_preserve_folio() and kho_preserve_pages() by IS_ENABLED(CONFIG_KEXEC_HANDOVER_DEBUG) instead. Since kexec_handover_debug.c is now empty, delete it. Add a stub for kho_scratch_overlap() to memblock tests to make sure it compiles. It will be used in memblock by a coming commit. No functional changes. Signed-off-by: Pratyush Yadav (Google) <pratyush@kernel.org> Link: https://patch.msgid.link/20260801084833.1897543-14-pratyush@kernel.org Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef LINUX_KEXEC_HANDOVER_INTERNAL_H
|
|
#define LINUX_KEXEC_HANDOVER_INTERNAL_H
|
|
|
|
#include <linux/kexec_handover.h>
|
|
#include <linux/list.h>
|
|
#include <linux/types.h>
|
|
|
|
#ifdef CONFIG_KEXEC_HANDOVER_DEBUGFS
|
|
#include <linux/debugfs.h>
|
|
|
|
struct kho_debugfs {
|
|
struct dentry *dir;
|
|
struct dentry *sub_fdt_dir;
|
|
struct list_head fdt_list;
|
|
};
|
|
|
|
#else
|
|
struct kho_debugfs {};
|
|
#endif
|
|
|
|
extern struct kho_scratch *kho_scratch;
|
|
extern unsigned int kho_scratch_cnt;
|
|
|
|
#ifdef CONFIG_KEXEC_HANDOVER_DEBUGFS
|
|
int kho_debugfs_init(void);
|
|
void kho_in_debugfs_init(struct kho_debugfs *dbg, const void *fdt);
|
|
int kho_out_debugfs_init(struct kho_debugfs *dbg);
|
|
int kho_debugfs_blob_add(struct kho_debugfs *dbg, const char *name,
|
|
const void *blob, size_t size, bool root);
|
|
void kho_debugfs_blob_remove(struct kho_debugfs *dbg, void *blob);
|
|
#else
|
|
static inline int kho_debugfs_init(void) { return 0; }
|
|
static inline void kho_in_debugfs_init(struct kho_debugfs *dbg,
|
|
const void *fdt) { }
|
|
static inline int kho_out_debugfs_init(struct kho_debugfs *dbg) { return 0; }
|
|
static inline int kho_debugfs_blob_add(struct kho_debugfs *dbg,
|
|
const char *name, const void *blob,
|
|
size_t size, bool root) { return 0; }
|
|
static inline void kho_debugfs_blob_remove(struct kho_debugfs *dbg,
|
|
void *blob) { }
|
|
#endif /* CONFIG_KEXEC_HANDOVER_DEBUGFS */
|
|
|
|
#endif /* LINUX_KEXEC_HANDOVER_INTERNAL_H */
|