#include <asm-generic/io.h>
-#define ARCH_BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
- (!xen_domain() || xen_biovec_phys_mergeable(vec1, vec2))
-
#ifdef CONFIG_MMU
#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
extern int valid_phys_addr_range(phys_addr_t addr, size_t size);
extern int devmem_is_allowed(unsigned long pfn);
-#define ARCH_BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
- (!xen_domain() || xen_biovec_phys_mergeable(vec1, vec2))
-
#endif /* __KERNEL__ */
#endif /* __ASM_IO_H */
#ifdef CONFIG_XEN
#include <xen/xen.h>
-
-#define ARCH_BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
- (!xen_domain() || xen_biovec_phys_mergeable(vec1, vec2))
#endif /* CONFIG_XEN */
#define IO_SPACE_LIMIT 0xffff
#include <linux/idr.h>
#include <linux/blk-mq.h>
+#include <xen/xen.h>
#include "blk-mq.h"
/* Amount of time in which a process may batch requests */
percpu_ref_get(&q->q_usage_counter);
}
-#ifndef ARCH_BIOVEC_PHYS_MERGEABLE
-#define ARCH_BIOVEC_PHYS_MERGEABLE(vec1, vec2) true
-#endif
-
static inline bool biovec_phys_mergeable(struct request_queue *q,
struct bio_vec *vec1, struct bio_vec *vec2)
{
if (addr1 + vec1->bv_len != addr2)
return false;
- if (!ARCH_BIOVEC_PHYS_MERGEABLE(vec1, vec2))
+ if (xen_domain() && !xen_biovec_phys_mergeable(vec1, vec2))
return false;
if ((addr1 | mask) != ((addr2 + vec2->bv_len - 1) | mask))
return false;
// SPDX-License-Identifier: GPL-2.0
#include <linux/bio.h>
-#include <linux/io.h>
#include <linux/export.h>
+#include <xen/xen.h>
#include <xen/page.h>
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,