summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/xen/biomerge.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/xen/biomerge.c')
-rw-r--r--kernel/drivers/xen/biomerge.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/kernel/drivers/xen/biomerge.c b/kernel/drivers/xen/biomerge.c
index 0edb91c0d..4da69dbf7 100644
--- a/kernel/drivers/xen/biomerge.c
+++ b/kernel/drivers/xen/biomerge.c
@@ -6,10 +6,18 @@
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
const struct bio_vec *vec2)
{
- unsigned long mfn1 = pfn_to_mfn(page_to_pfn(vec1->bv_page));
- unsigned long mfn2 = pfn_to_mfn(page_to_pfn(vec2->bv_page));
+#if XEN_PAGE_SIZE == PAGE_SIZE
+ unsigned long bfn1 = pfn_to_bfn(page_to_pfn(vec1->bv_page));
+ unsigned long bfn2 = pfn_to_bfn(page_to_pfn(vec2->bv_page));
return __BIOVEC_PHYS_MERGEABLE(vec1, vec2) &&
- ((mfn1 == mfn2) || ((mfn1+1) == mfn2));
+ ((bfn1 == bfn2) || ((bfn1+1) == bfn2));
+#else
+ /*
+ * XXX: Add support for merging bio_vec when using different page
+ * size in Xen and Linux.
+ */
+ return 0;
+#endif
}
EXPORT_SYMBOL(xen_biovec_phys_mergeable);