diff mbox

drm/ttm: Handle in memory region copies

Message ID 1382102289-23664-1-git-send-email-jakob@vmware.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jakob Bornecrantz Oct. 18, 2013, 1:18 p.m. UTC
Reviewed-by: Thomas Hellström <thellstrom@vmware.com>
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Cc: stable@vger.kernel.org
---
 drivers/gpu/drm/ttm/ttm_bo_util.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Thomas Hellstrom Oct. 30, 2013, 7:52 a.m. UTC | #1
On 10/18/2013 03:18 PM, Jakob Bornecrantz wrote:
> Reviewed-by: Thomas Hellström <thellstrom@vmware.com>
> Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: stable@vger.kernel.org
> ---
>   drivers/gpu/drm/ttm/ttm_bo_util.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
> index 8be35c8..037f101 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
> @@ -342,7 +342,9 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
>   	if (old_iomap == NULL && ttm == NULL)
>   		goto out2;
>   
> -	if (ttm->state == tt_unpopulated) {
> +	/* TTM might be null for moves within the same region.
> +	 */
> +	if (ttm && ttm->state == tt_unpopulated) {
>   		ret = ttm->bdev->driver->ttm_tt_populate(ttm);
>   		if (ret) {
>   			/* if we fail here don't nuke the mm node

LGTM. There are a couple of other fixes needed in this function as well.

/Thomas
diff mbox

Patch

diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index 8be35c8..037f101 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -342,7 +342,9 @@  int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
 	if (old_iomap == NULL && ttm == NULL)
 		goto out2;
 
-	if (ttm->state == tt_unpopulated) {
+	/* TTM might be null for moves within the same region.
+	 */
+	if (ttm && ttm->state == tt_unpopulated) {
 		ret = ttm->bdev->driver->ttm_tt_populate(ttm);
 		if (ret) {
 			/* if we fail here don't nuke the mm node