summaryrefslogtreecommitdiff
path: root/backport-include/linux/page_ref.h
diff options
context:
space:
mode:
authorOleksandr Suvorov <oleksandr.suvorov@toradex.com>2020-03-26 12:44:27 +0200
committerOleksandr Suvorov <oleksandr.suvorov@toradex.com>2020-03-26 12:46:50 +0200
commit87d308708712ff6075c4dd54b0519b47fdad8816 (patch)
tree2fb6458b1db7dd21be2648f42412dd2485846c76 /backport-include/linux/page_ref.h
Backports v5.4.27
Backports generated by toradex backports f6e8852f1ef28e6d3c9bae8400eb6a87a6b0c3e7 against mainline kernel tag v5.4.27 Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Diffstat (limited to 'backport-include/linux/page_ref.h')
-rw-r--r--backport-include/linux/page_ref.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/backport-include/linux/page_ref.h b/backport-include/linux/page_ref.h
new file mode 100644
index 0000000..12fd86c
--- /dev/null
+++ b/backport-include/linux/page_ref.h
@@ -0,0 +1,25 @@
+#ifndef __BP_PAGE_REF_H
+#define __BP_PAGE_REF_H
+#include <linux/version.h>
+#if LINUX_VERSION_IS_GEQ(4,6,0)
+#include_next <linux/page_ref.h>
+#else
+static inline void page_ref_inc(struct page *page)
+{
+ atomic_inc(&page->_count);
+}
+
+#if !LINUX_VERSION_IN_RANGE(4,4,216, 4,5,0)
+static inline int page_ref_count(struct page *page)
+{
+ return atomic_read(&page->_count);
+}
+#endif /* 4.4.216 <= x < 4.5 */
+
+static inline int page_ref_sub_and_test(struct page *page, int nr)
+{
+ return atomic_sub_and_test(nr, &page->_count);
+}
+#endif
+
+#endif /* __BP_PAGE_REF_H */