summaryrefslogtreecommitdiff
path: root/linux-core/drm_compat.h
diff options
context:
space:
mode:
authorPekka Paalanen <pq@iki.fi>2008-11-02 13:48:32 +0200
committerPekka Paalanen <pq@iki.fi>2008-11-02 13:55:23 +0200
commit87e90c73620b88005fcca5fd40aaaad0b08932e1 (patch)
tree127e9a37699ba8d67ca299d7ed0facab49dc3a5d /linux-core/drm_compat.h
parent00847dabe0fa5ccf796658f486e8f6f7a77e043b (diff)
nouveau: compat fix for set_page_locked().
The set_page_locked() function has changed its name again. 2.6.28 offers __set_page_locked() instead, which uses non-atomic __set_bit() to do the work. In this case, offer our own set_page_locked() using the atomic set_bit(), because I do not know if atomic access is really necessary. Atomic behaviour is the one previously expected. Signed-off-by: Pekka Paalanen <pq@iki.fi>
Diffstat (limited to 'linux-core/drm_compat.h')
-rw-r--r--linux-core/drm_compat.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/linux-core/drm_compat.h b/linux-core/drm_compat.h
index e09be479..bc4d2e58 100644
--- a/linux-core/drm_compat.h
+++ b/linux-core/drm_compat.h
@@ -392,4 +392,17 @@ extern struct page *drm_vm_sg_nopage(struct vm_area_struct *vma,
#endif
#endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
+#define set_page_locked SetPageLocked
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27))
+/*
+ * The kernel provides __set_page_locked, which uses the non-atomic
+ * __set_bit function. Let's use the atomic set_bit just in case.
+ */
+static inline void set_page_locked(struct page *page)
+{
+ set_bit(PG_locked, &page->flags);
+}
+#endif
+
#endif