++greg-kh and de...@driverdev.osuosl.org
(my bad for missing you the first time around)
On Thu, May 22 2014 at 06:09:11 PM, Colin Cross ccr...@android.com wrote:
On Thu, May 22, 2014 at 5:51 PM, Mitchel Humpherys
mitch...@codeaurora.org wrote:
There are certain client bugs (double unmap, for example) that can cause
the handle-kmap_cnt (an unsigned int) to wrap around from zero. This
causes problems when the handle is destroyed because we have:
while (handle-kmap_cnt)
ion_handle_kmap_put(handle);
which takes a long time to complete when kmap_cnt starts at ~0 and can
result in a watchdog timeout.
WARN and bail when kmap_cnt is about to wrap around from zero.
Signed-off-by: Mitchel Humpherys mitch...@codeaurora.org
---
drivers/staging/android/ion/ion.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/staging/android/ion/ion.c
b/drivers/staging/android/ion/ion.c
index 3d5bf14722..f55f61a4cc 100644
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -626,6 +626,10 @@ static void ion_handle_kmap_put(struct ion_handle
*handle)
{
struct ion_buffer *buffer = handle-buffer;
+ if (!handle-kmap_cnt) {
+ WARN(1, %s: Double unmap detected! bailing...\n, __func__);
+ return;
+ }
handle-kmap_cnt--;
if (!handle-kmap_cnt)
ion_buffer_kmap_put(buffer);
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
To unsubscribe from this group and stop receiving emails from it, send an
email to kernel-team+unsubscr...@android.com.
Acked-by: Colin Cross ccr...@android.com
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel