Re: [PATCH 3/7] drm/udl: import prime-fds with proper page-alignment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

On Tue, Jan 21, 2014 at 10:41 AM, Daniel Vetter <daniel@xxxxxxxx> wrote:
> On Mon, Jan 20, 2014 at 08:26:25PM +0100, David Herrmann wrote:
>> Instead of rounding down to the next lower page-boundary, round up.
>> dma-buf guarantees that we can map buffers in multiples of a page, so if
>> an exporter does not page-align, do it ourselves.
>>
>> This avoids issues if the exported buffer contains an unaligned size and
>> we crop it. In this case, the buffer is too small for the UDL CRTC. So we
>> round up to page-size now and avoid black borders. Worst case is we end up
>> reading out some random kernel memory, but we can never fault as the whole
>> page has the same access-rights. And in this case it's an issue of the
>> buggy exporting driver, not the importing one.
>>
>> Signed-off-by: David Herrmann <dh.herrmann@xxxxxxxxx>
>> ---
>>  drivers/gpu/drm/udl/udl_gem.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/udl/udl_gem.c b/drivers/gpu/drm/udl/udl_gem.c
>> index df963a1..1069e57 100644
>> --- a/drivers/gpu/drm/udl/udl_gem.c
>> +++ b/drivers/gpu/drm/udl/udl_gem.c
>> @@ -227,7 +227,7 @@ static int udl_prime_create(struct drm_device *dev,
>>       struct udl_gem_object *obj;
>>       int npages;
>>
>> -     npages = size / PAGE_SIZE;
>> +     npages = PAGE_ALIGN(size) >> PAGE_SHIFT;
>
> Imo the proper patch would be to reject exporting anything which isn't
> page-aligned as a dma-buf in the driver core (together with a quick review
> of the docs to make sure this requirement is clear). This is just a bug in
> the exporter.

Ok, I've dropped this one for now. I think the best way to deal with
it is to make dma_buf disallow any non-aligned sizes during
initialization. So we should just assume it's always page-aligned.

Thanks
David
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux