* [PATCH 1/3] drm/amdgpu: use post-decrement in error handling
2016-02-15 18:41 [PATCH 0/3] drm: more pre-decrement fixes Rasmus Villemoes
@ 2016-02-15 18:41 ` Rasmus Villemoes
2016-02-15 18:41 ` [PATCH 2/3] drm/nouveau: " Rasmus Villemoes
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Rasmus Villemoes @ 2016-02-15 18:41 UTC (permalink / raw)
To: David Airlie; +Cc: Rasmus Villemoes, dri-devel, linux-kernel
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.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 8a1752ff3d8e..e53558c25b6b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -712,7 +712,7 @@ static int amdgpu_ttm_tt_populate(struct ttm_tt *ttm)
0, PAGE_SIZE,
PCI_DMA_BIDIRECTIONAL);
if (pci_dma_mapping_error(adev->pdev, gtt->ttm.dma_address[i])) {
- while (--i) {
+ while (i--) {
pci_unmap_page(adev->pdev, gtt->ttm.dma_address[i],
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
gtt->ttm.dma_address[i] = 0;
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] drm/nouveau: use post-decrement in error handling
2016-02-15 18:41 [PATCH 0/3] drm: more pre-decrement fixes Rasmus Villemoes
2016-02-15 18:41 ` [PATCH 1/3] drm/amdgpu: use post-decrement in error handling Rasmus Villemoes
@ 2016-02-15 18:41 ` Rasmus Villemoes
2016-02-19 3:32 ` Ben Skeggs
2016-02-15 18:41 ` [PATCH 3/3] drm/radeon: " Rasmus Villemoes
2016-02-16 8:21 ` [PATCH 0/3] drm: more pre-decrement fixes Christian König
3 siblings, 1 reply; 7+ messages in thread
From: Rasmus Villemoes @ 2016-02-15 18:41 UTC (permalink / raw)
To: David Airlie; +Cc: Rasmus Villemoes, dri-devel, linux-kernel
We need to use post-decrement to get the dma_map_page undone also for
i==0, and to avoid some very unpleasant behaviour if dma_map_page
failed already at i==0.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 78f520d05de9..e3acc35e3805 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1520,7 +1520,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
DMA_BIDIRECTIONAL);
if (dma_mapping_error(pdev, addr)) {
- while (--i) {
+ while (i--) {
dma_unmap_page(pdev, ttm_dma->dma_address[i],
PAGE_SIZE, DMA_BIDIRECTIONAL);
ttm_dma->dma_address[i] = 0;
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] drm/nouveau: use post-decrement in error handling
2016-02-15 18:41 ` [PATCH 2/3] drm/nouveau: " Rasmus Villemoes
@ 2016-02-19 3:32 ` Ben Skeggs
0 siblings, 0 replies; 7+ messages in thread
From: Ben Skeggs @ 2016-02-19 3:32 UTC (permalink / raw)
To: Rasmus Villemoes, David Airlie; +Cc: linux-kernel, dri-devel
[-- Attachment #1: Type: text/plain, Size: 1003 bytes --]
On 02/16/2016 04:41 AM, Rasmus Villemoes wrote:
> We need to use post-decrement to get the dma_map_page undone also for
> i==0, and to avoid some very unpleasant behaviour if dma_map_page
> failed already at i==0.
>
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
> ---
> drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 78f520d05de9..e3acc35e3805 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -1520,7 +1520,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
> DMA_BIDIRECTIONAL);
>
> if (dma_mapping_error(pdev, addr)) {
> - while (--i) {
> + while (i--) {
> dma_unmap_page(pdev, ttm_dma->dma_address[i],
> PAGE_SIZE, DMA_BIDIRECTIONAL);
> ttm_dma->dma_address[i] = 0;
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/3] drm/radeon: use post-decrement in error handling
2016-02-15 18:41 [PATCH 0/3] drm: more pre-decrement fixes Rasmus Villemoes
2016-02-15 18:41 ` [PATCH 1/3] drm/amdgpu: use post-decrement in error handling Rasmus Villemoes
2016-02-15 18:41 ` [PATCH 2/3] drm/nouveau: " Rasmus Villemoes
@ 2016-02-15 18:41 ` Rasmus Villemoes
2016-02-16 8:21 ` [PATCH 0/3] drm: more pre-decrement fixes Christian König
3 siblings, 0 replies; 7+ messages in thread
From: Rasmus Villemoes @ 2016-02-15 18:41 UTC (permalink / raw)
To: Alex Deucher, Christian König, David Airlie
Cc: Rasmus Villemoes, dri-devel, linux-kernel
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.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
drivers/gpu/drm/radeon/radeon_ttm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index e34307459e50..e06ac546a90f 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -758,7 +758,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;
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] drm: more pre-decrement fixes
2016-02-15 18:41 [PATCH 0/3] drm: more pre-decrement fixes Rasmus Villemoes
` (2 preceding siblings ...)
2016-02-15 18:41 ` [PATCH 3/3] drm/radeon: " Rasmus Villemoes
@ 2016-02-16 8:21 ` Christian König
2016-02-16 15:06 ` Alex Deucher
3 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2016-02-16 8:21 UTC (permalink / raw)
To: Rasmus Villemoes, dri-devel, linux-kernel
Am 15.02.2016 um 19:41 schrieb Rasmus Villemoes:
> A few more cases where one should use post-decrement when unwinding,
> this time found where the unwinding is done inside the setup loop
> instead of after an error label.
Patch 1 and 3 are Reviewed-by: Christian König <christian.koenig@amd.com>.
Nice catch,
Christian.
>
> Rasmus Villemoes (3):
> drm/amdgpu: use post-decrement in error handling
> drm/nouveau: use post-decrement in error handling
> drm/radeon: use post-decrement in error handling
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
> drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
> drivers/gpu/drm/radeon/radeon_ttm.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] drm: more pre-decrement fixes
2016-02-16 8:21 ` [PATCH 0/3] drm: more pre-decrement fixes Christian König
@ 2016-02-16 15:06 ` Alex Deucher
0 siblings, 0 replies; 7+ messages in thread
From: Alex Deucher @ 2016-02-16 15:06 UTC (permalink / raw)
To: Christian König; +Cc: Rasmus Villemoes, Maling list - DRI developers, LKML
On Tue, Feb 16, 2016 at 3:21 AM, Christian König
<deathsimple@vodafone.de> wrote:
> Am 15.02.2016 um 19:41 schrieb Rasmus Villemoes:
>>
>> A few more cases where one should use post-decrement when unwinding,
>> this time found where the unwinding is done inside the setup loop
>> instead of after an error label.
>
>
> Patch 1 and 3 are Reviewed-by: Christian König <christian.koenig@amd.com>.
Patches 1 and 3 applied. thanks!
Alex
>
> Nice catch,
> Christian.
>
>>
>> Rasmus Villemoes (3):
>> drm/amdgpu: use post-decrement in error handling
>> drm/nouveau: use post-decrement in error handling
>> drm/radeon: use post-decrement in error handling
>>
>> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
>> drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +-
>> drivers/gpu/drm/radeon/radeon_ttm.c | 2 +-
>> 3 files changed, 3 insertions(+), 3 deletions(-)
>>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 7+ messages in thread