diff mbox

dma-buf: might_sleep() in dma_buf_unmap_attachment()

Message ID 1348817383-30286-1-git-send-email-rob.clark@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Rob Clark Sept. 28, 2012, 7:29 a.m. UTC
From: Rob Clark <rob@ti.com>

We never really clarified if unmap could be done in atomic context.
But since mapping might require sleeping, this implies mutex in use
to synchronize mapping/unmapping, so unmap could sleep as well.  Add
a might_sleep() to clarify this.

Signed-off-by: Rob Clark <rob@ti.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/base/dma-buf.c |    2 ++
 1 file changed, 2 insertions(+)

Comments

Maarten Lankhorst Sept. 28, 2012, 7:39 a.m. UTC | #1
Op 28-09-12 09:29, Rob Clark schreef:
> From: Rob Clark <rob@ti.com>
>
> We never really clarified if unmap could be done in atomic context.
> But since mapping might require sleeping, this implies mutex in use
> to synchronize mapping/unmapping, so unmap could sleep as well.  Add
> a might_sleep() to clarify this.
>
> Signed-off-by: Rob Clark <rob@ti.com>
> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/base/dma-buf.c |    2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c
> index c30f3e1..877eacb 100644
> --- a/drivers/base/dma-buf.c
> +++ b/drivers/base/dma-buf.c
> @@ -298,6 +298,8 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach,
>  				struct sg_table *sg_table,
>  				enum dma_data_direction direction)
>  {
> +	might_sleep();
> +
>  	if (WARN_ON(!attach || !attach->dmabuf || !sg_table))
>  		return;
>  
Looks good to me!

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Sumit Semwal Sept. 29, 2012, 6:24 a.m. UTC | #2
On Friday 28 September 2012 01:09 PM, Maarten Lankhorst wrote:
> Op 28-09-12 09:29, Rob Clark schreef:
>> From: Rob Clark <rob@ti.com>
>>
>> We never really clarified if unmap could be done in atomic context.
>> But since mapping might require sleeping, this implies mutex in use
>> to synchronize mapping/unmapping, so unmap could sleep as well.  Add
>> a might_sleep() to clarify this.
>>
>> Signed-off-by: Rob Clark <rob@ti.com>
>> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> ---
>>   drivers/base/dma-buf.c |    2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c
>> index c30f3e1..877eacb 100644
>> --- a/drivers/base/dma-buf.c
>> +++ b/drivers/base/dma-buf.c
>> @@ -298,6 +298,8 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach,
>>   				struct sg_table *sg_table,
>>   				enum dma_data_direction direction)
>>   {
>> +	might_sleep();
>> +
>>   	if (WARN_ON(!attach || !attach->dmabuf || !sg_table))
>>   		return;
>>
> Looks good to me!
>
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Thanks Rob,

Applied to for-next.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
diff mbox

Patch

diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c
index c30f3e1..877eacb 100644
--- a/drivers/base/dma-buf.c
+++ b/drivers/base/dma-buf.c
@@ -298,6 +298,8 @@  void dma_buf_unmap_attachment(struct dma_buf_attachment *attach,
 				struct sg_table *sg_table,
 				enum dma_data_direction direction)
 {
+	might_sleep();
+
 	if (WARN_ON(!attach || !attach->dmabuf || !sg_table))
 		return;