|
@@ -236,12 +236,16 @@ static inline void *bio_data(struct bio *bio)
|
|
#define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1)
|
|
#define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1)
|
|
#define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx)
|
|
#define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx)
|
|
|
|
|
|
|
|
+/* Default implementation of BIOVEC_PHYS_MERGEABLE */
|
|
|
|
+#define __BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
|
|
|
|
+ ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2)))
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* allow arch override, for eg virtualized architectures (put in asm/io.h)
|
|
* allow arch override, for eg virtualized architectures (put in asm/io.h)
|
|
*/
|
|
*/
|
|
#ifndef BIOVEC_PHYS_MERGEABLE
|
|
#ifndef BIOVEC_PHYS_MERGEABLE
|
|
#define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
|
|
#define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
|
|
- ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2)))
|
|
|
|
|
|
+ __BIOVEC_PHYS_MERGEABLE(vec1, vec2)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \
|
|
#define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \
|