Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Remove them.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com --- drivers/gpu/drm/drm_vma_manager.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8c..e545a7b2bcafc 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -213,8 +213,6 @@ int drm_vma_offset_add(struct drm_vma_offset_manager *mgr, }
ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages); - if (ret) - goto out_unlock;
out_unlock: write_unlock(&mgr->vm_lock);
Quoting Liviu Dudau (2017-11-01 14:04:24)
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Remove them.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com
drivers/gpu/drm/drm_vma_manager.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8c..e545a7b2bcafc 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -213,8 +213,6 @@ int drm_vma_offset_add(struct drm_vma_offset_manager *mgr, }
ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages);
if (ret)
goto out_unlock;
Whilst you are here, you might consider this function too simple to even require the out_unlock... -Chris
On Wed, Nov 01, 2017 at 02:11:44PM +0000, Chris Wilson wrote:
Quoting Liviu Dudau (2017-11-01 14:04:24)
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Remove them.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com
drivers/gpu/drm/drm_vma_manager.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8c..e545a7b2bcafc 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -213,8 +213,6 @@ int drm_vma_offset_add(struct drm_vma_offset_manager *mgr, }
ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages);
if (ret)
goto out_unlock;
Whilst you are here, you might consider this function too simple to even require the out_unlock...
Bah, you are right, should've removed that one too :)
Will send an update shortly.
Thanks! Liviu
-Chris
On Wed, Nov 01, 2017 at 02:11:44PM +0000, Chris Wilson wrote:
Quoting Liviu Dudau (2017-11-01 14:04:24)
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Remove them.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com
drivers/gpu/drm/drm_vma_manager.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8c..e545a7b2bcafc 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -213,8 +213,6 @@ int drm_vma_offset_add(struct drm_vma_offset_manager *mgr, }
ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages);
if (ret)
goto out_unlock;
Whilst you are here, you might consider this function too simple to even require the out_unlock...
Actually, looking at the function as it stands after the patch, if I want to remove the out_unlock label I need to re-write the whole function. Are you OK with me doing that?
Best regards, Liviu
-Chris
Quoting Liviu Dudau (2017-11-01 14:20:53)
On Wed, Nov 01, 2017 at 02:11:44PM +0000, Chris Wilson wrote:
Quoting Liviu Dudau (2017-11-01 14:04:24)
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Remove them.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com
drivers/gpu/drm/drm_vma_manager.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8c..e545a7b2bcafc 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -213,8 +213,6 @@ int drm_vma_offset_add(struct drm_vma_offset_manager *mgr, }
ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages);
if (ret)
goto out_unlock;
Whilst you are here, you might consider this function too simple to even require the out_unlock...
Actually, looking at the function as it stands after the patch, if I want to remove the out_unlock label I need to re-write the whole function. Are you OK with me doing that?
Yes. My suggestion is along the lines of
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8..ba7857ed4361 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -207,17 +207,13 @@ int drm_vma_offset_add(struct drm_vma_offset_manager *mgr,
write_lock(&mgr->vm_lock);
- if (drm_mm_node_allocated(&node->vm_node)) { - ret = 0; - goto out_unlock; - } + ret = 0; + if (!drm_mm_node_allocated(&node->vm_node)) + ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, + &node->vm_node, pages);
- ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages); - if (ret) - goto out_unlock; - -out_unlock: write_unlock(&mgr->vm_lock); + return ret; }
Can you please cc functional patches like this to intel-gfx@lists.freedesktop.org? That will give us some reassurance that the change isn't outright horrible. ;) -Chris
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Rework the function (as suggested by Chris Wilson) to eliminate the need for the goto and associated label.
v2: rewrite function to remove all goto statements.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com --- drivers/gpu/drm/drm_vma_manager.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c index 28f1226576f8c..23c749c05b5aa 100644 --- a/drivers/gpu/drm/drm_vma_manager.c +++ b/drivers/gpu/drm/drm_vma_manager.c @@ -203,21 +203,16 @@ EXPORT_SYMBOL(drm_vma_offset_lookup_locked); int drm_vma_offset_add(struct drm_vma_offset_manager *mgr, struct drm_vma_offset_node *node, unsigned long pages) { - int ret; + int ret = 0;
write_lock(&mgr->vm_lock);
- if (drm_mm_node_allocated(&node->vm_node)) { - ret = 0; - goto out_unlock; - } + if (!drm_mm_node_allocated(&node->vm_node)) + ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, + &node->vm_node, pages);
- ret = drm_mm_insert_node(&mgr->vm_addr_space_mm, &node->vm_node, pages); - if (ret) - goto out_unlock; - -out_unlock: write_unlock(&mgr->vm_lock); + return ret; } EXPORT_SYMBOL(drm_vma_offset_add);
Quoting Liviu Dudau (2017-11-01 14:44:58)
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Rework the function (as suggested by Chris Wilson) to eliminate the need for the goto and associated label.
v2: rewrite function to remove all goto statements.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com
Reviewed-by: Chris Wilson chris@chris-wilson.co.uk -Chris
On Wed, Nov 01, 2017 at 02:47:34PM +0000, Chris Wilson wrote:
Quoting Liviu Dudau (2017-11-01 14:44:58)
Commit db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") removed a line in drm_vma_offset_add() function that makes checking the result of calling drm_mm_insert_node() and the goto call redundant. Rework the function (as suggested by Chris Wilson) to eliminate the need for the goto and associated label.
v2: rewrite function to remove all goto statements.
Fixes: db2395eccf08i ("drm: Convert drm_vma_manager to embedded interval-tree in drm_mm") Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Liviu Dudau liviu.dudau@arm.com
Reviewed-by: Chris Wilson chris@chris-wilson.co.uk
Applied to drm-misc-next. -Daniel
dri-devel@lists.freedesktop.org