diff options
Diffstat (limited to 'arch/s390/include/asm/page.h')
-rw-r--r-- | arch/s390/include/asm/page.h | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index a86ad4084073..75ce9b065f9f 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h | |||
@@ -155,28 +155,6 @@ static inline int page_reset_referenced(unsigned long addr) | |||
155 | #define _PAGE_ACC_BITS 0xf0 /* HW access control bits */ | 155 | #define _PAGE_ACC_BITS 0xf0 /* HW access control bits */ |
156 | 156 | ||
157 | /* | 157 | /* |
158 | * Test and clear dirty bit in storage key. | ||
159 | * We can't clear the changed bit atomically. This is a potential | ||
160 | * race against modification of the referenced bit. This function | ||
161 | * should therefore only be called if it is not mapped in any | ||
162 | * address space. | ||
163 | * | ||
164 | * Note that the bit gets set whenever page content is changed. That means | ||
165 | * also when the page is modified by DMA or from inside the kernel. | ||
166 | */ | ||
167 | #define __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY | ||
168 | static inline int page_test_and_clear_dirty(unsigned long pfn, int mapped) | ||
169 | { | ||
170 | unsigned char skey; | ||
171 | |||
172 | skey = page_get_storage_key(pfn << PAGE_SHIFT); | ||
173 | if (!(skey & _PAGE_CHANGED)) | ||
174 | return 0; | ||
175 | page_set_storage_key(pfn << PAGE_SHIFT, skey & ~_PAGE_CHANGED, mapped); | ||
176 | return 1; | ||
177 | } | ||
178 | |||
179 | /* | ||
180 | * Test and clear referenced bit in storage key. | 158 | * Test and clear referenced bit in storage key. |
181 | */ | 159 | */ |
182 | #define __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG | 160 | #define __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG |