atomisp: hmm: Remove the buffer object from the list before cleaning it
authorIlkka Koskinen <ilkka.koskinen@intel.com>
Tue, 3 Jan 2012 15:34:14 +0000 (17:34 +0200)
committerbuildbot <buildbot@intel.com>
Mon, 16 Jan 2012 16:06:02 +0000 (08:06 -0800)
BZ: 19462

Change-Id: I58b94cb7d824dfa154ae073e35ecbeeff1d78de9
Signed-off-by: Ilkka Koskinen <ilkka.koskinen@intel.com>
Reviewed-on: http://android.intel.com:8080/30888
Reviewed-by: Kruger, Jozef <jozef.kruger@intel.com>
Reviewed-by: Toivonen, Tuukka <tuukka.toivonen@intel.com>
Reviewed-by: Cohen, David A <david.a.cohen@intel.com>
Reviewed-by: Wang, Wen W <wen.w.wang@intel.com>
Reviewed-by: Gross, Mark <mark.gross@intel.com>
Tested-by: Lampila, KalleX <kallex.lampila@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/media/video/atomisp/hmm/hmm_bo.c

index bbc8b51..68982fe 100644 (file)
@@ -160,6 +160,13 @@ static void hmm_bo_release(struct hmm_buffer_object *bo)
        bdev = bo->bdev;
 
        /*
+        * remove it from buffer device's buffer object list.
+        */
+       spin_lock_irqsave(&bdev->list_lock, flags);
+       list_del(&bo->list);
+       spin_unlock_irqrestore(&bdev->list_lock, flags);
+
+       /*
         * FIX ME:
         *
         * how to destroy the bo when it is stilled MMAPED?
@@ -191,13 +198,6 @@ static void hmm_bo_release(struct hmm_buffer_object *bo)
                hmm_bo_free_vm(bo);
        }
 
-       /*
-        * remove it from buffer device's buffer object list.
-        */
-       spin_lock_irqsave(&bdev->list_lock, flags);
-       list_del(&bo->list);
-       spin_unlock_irqrestore(&bdev->list_lock, flags);
-
        if (bo->release)
                bo->release(bo);
 err: