Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbc1333a authored by Jan Andersson's avatar Jan Andersson Committed by Linus Torvalds
Browse files

[PATCH] sparc32: add offset in pci_map_sg()



Add sg->offset to sg->dvma_address in pci_map_sg() on sparc32.  Without the
offset, transfers to buffers that do not begin on a page boundary will not
work as expected.

Signed-off-by: default avatarJan Andersson <jan.andersson@ieee.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: William Lee Irwin III <wli@holomorphy.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8018c27b
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -726,7 +726,8 @@ int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents,
	/* IIep is write-through, not flushing. */
	/* IIep is write-through, not flushing. */
	for (n = 0; n < nents; n++) {
	for (n = 0; n < nents; n++) {
		BUG_ON(page_address(sg->page) == NULL);
		BUG_ON(page_address(sg->page) == NULL);
		sg->dvma_address = virt_to_phys(page_address(sg->page));
		sg->dvma_address =
			virt_to_phys(page_address(sg->page)) + sg->offset;
		sg->dvma_length = sg->length;
		sg->dvma_length = sg->length;
		sg++;
		sg++;
	}
	}