[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: Jan Andersson <jan.andersson@ieee.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
8018c27b26
commit
dbc1333a34
@@ -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++;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user