diff mbox

[v2] drm/amdgpu: Fail fb creation from imported dma-bufs. (v2)

Message ID 20170329040211.18844-1-raof@ubuntu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christopher James Halse Rogers March 29, 2017, 4:02 a.m. UTC
From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>

Any use of the framebuffer will migrate it to VRAM, which is not sensible for
an imported dma-buf.

v2: Use DRM_DEBUG_KMS to prevent userspace accidentally spamming dmesg.

Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
CC: amd-gfx@lists.freedesktop.org
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Michel Dänzer March 29, 2017, 6:07 a.m. UTC | #1
On 29/03/17 01:02 PM, raof@ubuntu.com wrote:
> From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
> 
> Any use of the framebuffer will migrate it to VRAM, which is not sensible for
> an imported dma-buf.
> 
> v2: Use DRM_DEBUG_KMS to prevent userspace accidentally spamming dmesg.
> 
> Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
> CC: amd-gfx@lists.freedesktop.org
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> index 39fc388f222a..2f2e9b5c8a6a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> @@ -612,6 +612,12 @@ amdgpu_user_framebuffer_create(struct drm_device *dev,
>  		return ERR_PTR(-ENOENT);
>  	}
>  
> +	/* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */
> +	if (obj->import_attach) {
> +		DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n");
> +		return ERR_PTR(-EINVAL);
> +	}
> +
>  	amdgpu_fb = kzalloc(sizeof(*amdgpu_fb), GFP_KERNEL);
>  	if (amdgpu_fb == NULL) {
>  		drm_gem_object_unreference_unlocked(obj);
> 

This patch and v2 of patch 5 are

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Alex Deucher March 29, 2017, 9:51 p.m. UTC | #2
On Wed, Mar 29, 2017 at 2:07 AM, Michel Dänzer <michel@daenzer.net> wrote:
> On 29/03/17 01:02 PM, raof@ubuntu.com wrote:
>> From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
>>
>> Any use of the framebuffer will migrate it to VRAM, which is not sensible for
>> an imported dma-buf.
>>
>> v2: Use DRM_DEBUG_KMS to prevent userspace accidentally spamming dmesg.
>>
>> Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
>> CC: amd-gfx@lists.freedesktop.org
>> ---
>>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
>> index 39fc388f222a..2f2e9b5c8a6a 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
>> @@ -612,6 +612,12 @@ amdgpu_user_framebuffer_create(struct drm_device *dev,
>>               return ERR_PTR(-ENOENT);
>>       }
>>
>> +     /* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */
>> +     if (obj->import_attach) {
>> +             DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n");
>> +             return ERR_PTR(-EINVAL);
>> +     }
>> +
>>       amdgpu_fb = kzalloc(sizeof(*amdgpu_fb), GFP_KERNEL);
>>       if (amdgpu_fb == NULL) {
>>               drm_gem_object_unreference_unlocked(obj);
>>
>
> This patch and v2 of patch 5 are
>
> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>

Applied these two.  Thanks!

Alex

>
>
> --
> Earthling Michel Dänzer               |               http://www.amd.com
> Libre software enthusiast             |             Mesa and X developer
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 39fc388f222a..2f2e9b5c8a6a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -612,6 +612,12 @@  amdgpu_user_framebuffer_create(struct drm_device *dev,
 		return ERR_PTR(-ENOENT);
 	}
 
+	/* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */
+	if (obj->import_attach) {
+		DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n");
+		return ERR_PTR(-EINVAL);
+	}
+
 	amdgpu_fb = kzalloc(sizeof(*amdgpu_fb), GFP_KERNEL);
 	if (amdgpu_fb == NULL) {
 		drm_gem_object_unreference_unlocked(obj);