From c80d2e45b5a0b670802aba775796d6496eea3550 Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Tue, 20 Dec 2005 14:45:19 +0100 Subject: [PATCH] --- yaml --- r: 15266 b: refs/heads/master c: 7e8702334841b6da4b8f564dc1771ca17c59a621 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/lib/swiotlb.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 02d3bd43c850..205061be4aec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7ca0b3bf695632003a2a0f98b9fc1451b0483346 +refs/heads/master: 7e8702334841b6da4b8f564dc1771ca17c59a621 diff --git a/trunk/lib/swiotlb.c b/trunk/lib/swiotlb.c index 57216f3544ca..1ff8dcebf7c6 100644 --- a/trunk/lib/swiotlb.c +++ b/trunk/lib/swiotlb.c @@ -704,8 +704,9 @@ swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, int nelems, addr = SG_ENT_VIRT_ADDRESS(sg); dev_addr = virt_to_phys(addr); if (swiotlb_force || address_needs_mapping(hwdev, dev_addr)) { - sg->dma_address = (dma_addr_t) virt_to_phys(map_single(hwdev, addr, sg->length, dir)); - if (!sg->dma_address) { + void *map = map_single(hwdev, addr, sg->length, dir); + sg->dma_address = virt_to_bus(map); + if (!map) { /* Don't panic here, we expect map_sg users to do proper error handling. */ swiotlb_full(hwdev, sg->length, dir, 0);