diff --git a/include/linux/page_pinner.h b/include/linux/page_pinner.h index ba14d7636dc0..6dd0f9d3b394 100644 --- a/include/linux/page_pinner.h +++ b/include/linux/page_pinner.h @@ -41,6 +41,9 @@ static inline void dump_page_pinner(struct page *page) static inline void page_pinner_put_page(struct page *page) { + if (!static_branch_unlikely(&page_pinner_inited)) + return; + if (!static_branch_unlikely(&failure_tracking)) return; @@ -49,6 +52,9 @@ static inline void page_pinner_put_page(struct page *page) static inline void page_pinner_failure_detect(struct page *page) { + if (!static_branch_unlikely(&page_pinner_inited)) + return; + if (!static_branch_unlikely(&failure_tracking)) return; diff --git a/mm/page_pinner.c b/mm/page_pinner.c index a444584103ad..74543cefce4f 100644 --- a/mm/page_pinner.c +++ b/mm/page_pinner.c @@ -57,6 +57,7 @@ static struct longterm_pinner acf_pinner = { static bool page_pinner_enabled; DEFINE_STATIC_KEY_FALSE(page_pinner_inited); +EXPORT_SYMBOL(page_pinner_inited); DEFINE_STATIC_KEY_TRUE(failure_tracking); EXPORT_SYMBOL(failure_tracking);