HID: cougar: Make use of the helper function devm_add_action_or_reset()
authorCai Huoqing <caihuoqing@baidu.com>
Wed, 22 Sep 2021 12:59:31 +0000 (20:59 +0800)
committerJiri Kosina <jkosina@suse.cz>
Thu, 7 Oct 2021 11:37:25 +0000 (13:37 +0200)
The helper function devm_add_action_or_reset() will internally
call devm_add_action(), and if devm_add_action() fails then it will
execute the action mentioned and return the error code. So
use devm_add_action_or_reset() instead of devm_add_action()
to simplify the error handling, reduce the code.

Signed-off-by: Cai Huoqing <caihuoqing@baidu.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-cougar.c

index 28d671c..cb8bd8a 100644 (file)
@@ -179,10 +179,9 @@ static int cougar_bind_shared_data(struct hid_device *hdev,
 
        cougar->shared = shared;
 
-       error = devm_add_action(&hdev->dev, cougar_remove_shared_data, cougar);
+       error = devm_add_action_or_reset(&hdev->dev, cougar_remove_shared_data, cougar);
        if (error) {
                mutex_unlock(&cougar_udev_list_lock);
-               cougar_remove_shared_data(cougar);
                return error;
        }