block: pass page to xen_biovec_phys_mergeable
xen_biovec_phys_mergeable() only needs .bv_page of the 2nd bio bvec for checking if the two bvecs can be merged, so pass page to xen_biovec_phys_mergeable() directly. No function change. Cc: ris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Juergen Gross <jgross@suse.com> Cc: xen-devel@lists.xenproject.org Cc: Omar Sandoval <osandov@fb.com> Cc: Christoph Hellwig <hch@lst.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
56a85fd837
commit
0383ad4374
@ -75,7 +75,7 @@ static inline bool biovec_phys_mergeable(struct request_queue *q,
|
|||||||
|
|
||||||
if (addr1 + vec1->bv_len != addr2)
|
if (addr1 + vec1->bv_len != addr2)
|
||||||
return false;
|
return false;
|
||||||
if (xen_domain() && !xen_biovec_phys_mergeable(vec1, vec2))
|
if (xen_domain() && !xen_biovec_phys_mergeable(vec1, vec2->bv_page))
|
||||||
return false;
|
return false;
|
||||||
if ((addr1 | mask) != ((addr2 + vec2->bv_len - 1) | mask))
|
if ((addr1 | mask) != ((addr2 + vec2->bv_len - 1) | mask))
|
||||||
return false;
|
return false;
|
||||||
|
@ -4,12 +4,13 @@
|
|||||||
#include <xen/xen.h>
|
#include <xen/xen.h>
|
||||||
#include <xen/page.h>
|
#include <xen/page.h>
|
||||||
|
|
||||||
|
/* check if @page can be merged with 'vec1' */
|
||||||
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
|
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
|
||||||
const struct bio_vec *vec2)
|
const struct page *page)
|
||||||
{
|
{
|
||||||
#if XEN_PAGE_SIZE == PAGE_SIZE
|
#if XEN_PAGE_SIZE == PAGE_SIZE
|
||||||
unsigned long bfn1 = pfn_to_bfn(page_to_pfn(vec1->bv_page));
|
unsigned long bfn1 = pfn_to_bfn(page_to_pfn(vec1->bv_page));
|
||||||
unsigned long bfn2 = pfn_to_bfn(page_to_pfn(vec2->bv_page));
|
unsigned long bfn2 = pfn_to_bfn(page_to_pfn(page));
|
||||||
|
|
||||||
return bfn1 + PFN_DOWN(vec1->bv_offset + vec1->bv_len) == bfn2;
|
return bfn1 + PFN_DOWN(vec1->bv_offset + vec1->bv_len) == bfn2;
|
||||||
#else
|
#else
|
||||||
|
@ -43,8 +43,10 @@ extern struct hvm_start_info pvh_start_info;
|
|||||||
#endif /* CONFIG_XEN_DOM0 */
|
#endif /* CONFIG_XEN_DOM0 */
|
||||||
|
|
||||||
struct bio_vec;
|
struct bio_vec;
|
||||||
|
struct page;
|
||||||
|
|
||||||
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
|
bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
|
||||||
const struct bio_vec *vec2);
|
const struct page *page);
|
||||||
|
|
||||||
#if defined(CONFIG_MEMORY_HOTPLUG) && defined(CONFIG_XEN_BALLOON)
|
#if defined(CONFIG_MEMORY_HOTPLUG) && defined(CONFIG_XEN_BALLOON)
|
||||||
extern u64 xen_saved_max_mem_size;
|
extern u64 xen_saved_max_mem_size;
|
||||||
|
Loading…
Reference in New Issue
Block a user