+/* compat macroses */
+#ifndef HAVE_SCATTERLIST_SETPAGE
+static inline void sg_set_page(struct scatterlist *sg, struct page *page,
+ unsigned int len, unsigned int offset)
+{
+ sg->page = page;
+ sg->offset = offset;
+ sg->length = len;
+}
+#endif
+
+#ifndef get_cpu
+# ifdef CONFIG_PREEMPT
+# define cfs_get_cpu() ({ preempt_disable(); smp_processor_id(); })
+# define cfs_put_cpu() preempt_enable()
+# else
+# define cfs_get_cpu() smp_processor_id()
+# define cfs_put_cpu()
+# endif
+#else
+# define cfs_get_cpu() get_cpu()
+# define cfs_put_cpu() put_cpu()
+#endif /* get_cpu & put_cpu */
+