@@ -46,33 +46,62 @@ extern struct page_ext_operations page_idle_ops;
4646
4747static inline bool page_is_young (struct page * page )
4848{
49- return test_bit (PAGE_EXT_YOUNG , & lookup_page_ext (page )-> flags );
49+ struct page_ext * page_ext = lookup_page_ext (page );
50+
51+ if (unlikely (!page_ext ))
52+ return false;
53+
54+ return test_bit (PAGE_EXT_YOUNG , & page_ext -> flags );
5055}
5156
5257static inline void set_page_young (struct page * page )
5358{
54- set_bit (PAGE_EXT_YOUNG , & lookup_page_ext (page )-> flags );
59+ struct page_ext * page_ext = lookup_page_ext (page );
60+
61+ if (unlikely (!page_ext ))
62+ return ;
63+
64+ set_bit (PAGE_EXT_YOUNG , & page_ext -> flags );
5565}
5666
5767static inline bool test_and_clear_page_young (struct page * page )
5868{
59- return test_and_clear_bit (PAGE_EXT_YOUNG ,
60- & lookup_page_ext (page )-> flags );
69+ struct page_ext * page_ext = lookup_page_ext (page );
70+
71+ if (unlikely (!page_ext ))
72+ return false;
73+
74+ return test_and_clear_bit (PAGE_EXT_YOUNG , & page_ext -> flags );
6175}
6276
6377static inline bool page_is_idle (struct page * page )
6478{
65- return test_bit (PAGE_EXT_IDLE , & lookup_page_ext (page )-> flags );
79+ struct page_ext * page_ext = lookup_page_ext (page );
80+
81+ if (unlikely (!page_ext ))
82+ return false;
83+
84+ return test_bit (PAGE_EXT_IDLE , & page_ext -> flags );
6685}
6786
6887static inline void set_page_idle (struct page * page )
6988{
70- set_bit (PAGE_EXT_IDLE , & lookup_page_ext (page )-> flags );
89+ struct page_ext * page_ext = lookup_page_ext (page );
90+
91+ if (unlikely (!page_ext ))
92+ return ;
93+
94+ set_bit (PAGE_EXT_IDLE , & page_ext -> flags );
7195}
7296
7397static inline void clear_page_idle (struct page * page )
7498{
75- clear_bit (PAGE_EXT_IDLE , & lookup_page_ext (page )-> flags );
99+ struct page_ext * page_ext = lookup_page_ext (page );
100+
101+ if (unlikely (!page_ext ))
102+ return ;
103+
104+ clear_bit (PAGE_EXT_IDLE , & page_ext -> flags );
76105}
77106#endif /* CONFIG_64BIT */
78107
0 commit comments