[media] adv7180: Fix remove order
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 7 Mar 2014 16:14:27 +0000 (13:14 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 11 Mar 2014 13:21:55 +0000 (10:21 -0300)
The mutex is used in the subdev callbacks, so unregister the subdev before the
mutex is destroyed.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/i2c/adv7180.c

index d7d99f1c69e4f9459d0515a9eb8769dd182900c3..1a3622a9d0fb3a0477946b571977a8aca6d9efb1 100644 (file)
@@ -616,8 +616,8 @@ static int adv7180_probe(struct i2c_client *client,
 err_free_ctrl:
        adv7180_exit_controls(state);
 err_unreg_subdev:
-       mutex_destroy(&state->mutex);
        v4l2_device_unregister_subdev(sd);
+       mutex_destroy(&state->mutex);
 err:
        printk(KERN_ERR KBUILD_MODNAME ": Failed to probe: %d\n", ret);
        return ret;
@@ -640,8 +640,8 @@ static int adv7180_remove(struct i2c_client *client)
                }
        }
 
-       mutex_destroy(&state->mutex);
        v4l2_device_unregister_subdev(sd);
+       mutex_destroy(&state->mutex);
        return 0;
 }