]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/radeon: use post-decrement in error handling
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Mon, 15 Feb 2016 18:41:47 +0000 (19:41 +0100)
committerJiri Slaby <jslaby@suse.cz>
Thu, 3 Mar 2016 11:46:04 +0000 (12:46 +0100)
commit bc3f5d8c4ca01555820617eb3b6c0857e4df710d upstream.

We need to use post-decrement to get the pci_map_page undone also for
i==0, and to avoid some very unpleasant behaviour if pci_map_page
failed already at i==0.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/gpu/drm/radeon/radeon_ttm.c

index 02d3c3820803caebc39d0b00be240a2d960ccc85..f5931e5f44fd8d5012b1bb0b086bf8f8189adce4 100644 (file)
@@ -621,7 +621,7 @@ static int radeon_ttm_tt_populate(struct ttm_tt *ttm)
                                                       0, PAGE_SIZE,
                                                       PCI_DMA_BIDIRECTIONAL);
                if (pci_dma_mapping_error(rdev->pdev, gtt->ttm.dma_address[i])) {
-                       while (--i) {
+                       while (i--) {
                                pci_unmap_page(rdev->pdev, gtt->ttm.dma_address[i],
                                               PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
                                gtt->ttm.dma_address[i] = 0;