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>
 
        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;
        }