File tree Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -1154,6 +1154,7 @@ EXPORT_SYMBOL(nfc_register_device);
1154
1154
void nfc_unregister_device (struct nfc_dev * dev )
1155
1155
{
1156
1156
int rc ;
1157
+ struct rfkill * rfk = NULL ;
1157
1158
1158
1159
pr_debug ("dev_name=%s\n" , dev_name (& dev -> dev ));
1159
1160
@@ -1163,14 +1164,18 @@ void nfc_unregister_device(struct nfc_dev *dev)
1163
1164
"was removed\n" , dev_name (& dev -> dev ));
1164
1165
1165
1166
device_lock (& dev -> dev );
1167
+ dev -> shutting_down = true;
1166
1168
if (dev -> rfkill ) {
1167
- rfkill_unregister (dev -> rfkill );
1168
- rfkill_destroy (dev -> rfkill );
1169
+ rfk = dev -> rfkill ;
1169
1170
dev -> rfkill = NULL ;
1170
1171
}
1171
- dev -> shutting_down = true;
1172
1172
device_unlock (& dev -> dev );
1173
1173
1174
+ if (rfk ) {
1175
+ rfkill_unregister (rfk );
1176
+ rfkill_destroy (rfk );
1177
+ }
1178
+
1174
1179
if (dev -> ops -> check_presence ) {
1175
1180
timer_delete_sync (& dev -> check_pres_timer );
1176
1181
cancel_work_sync (& dev -> check_pres_work );
You can’t perform that action at this time.
0 commit comments