File tree Expand file tree Collapse file tree 1 file changed +6
-9
lines changed Expand file tree Collapse file tree 1 file changed +6
-9
lines changed Original file line number Diff line number Diff line change @@ -881,31 +881,28 @@ static int wacom_add_shared_data(struct hid_device *hdev)
881
881
if (!data ) {
882
882
data = kzalloc (sizeof (struct wacom_hdev_data ), GFP_KERNEL );
883
883
if (!data ) {
884
- retval = - ENOMEM ;
885
- goto out ;
884
+ mutex_unlock ( & wacom_udev_list_lock ) ;
885
+ return - ENOMEM ;
886
886
}
887
887
888
888
kref_init (& data -> kref );
889
889
data -> dev = hdev ;
890
890
list_add_tail (& data -> list , & wacom_udev_list );
891
891
}
892
892
893
+ mutex_unlock (& wacom_udev_list_lock );
894
+
893
895
wacom_wac -> shared = & data -> shared ;
894
896
895
- retval = devm_add_action (& hdev -> dev , wacom_remove_shared_data , wacom );
896
- if (retval ) {
897
- mutex_unlock (& wacom_udev_list_lock );
898
- wacom_remove_shared_data (wacom );
897
+ retval = devm_add_action_or_reset (& hdev -> dev , wacom_remove_shared_data , wacom );
898
+ if (retval )
899
899
return retval ;
900
- }
901
900
902
901
if (wacom_wac -> features .device_type & WACOM_DEVICETYPE_TOUCH )
903
902
wacom_wac -> shared -> touch = hdev ;
904
903
else if (wacom_wac -> features .device_type & WACOM_DEVICETYPE_PEN )
905
904
wacom_wac -> shared -> pen = hdev ;
906
905
907
- out :
908
- mutex_unlock (& wacom_udev_list_lock );
909
906
return retval ;
910
907
}
911
908
You can’t perform that action at this time.
0 commit comments