|
@@ -428,7 +428,9 @@ static int __init hp_wmi_bios_setup(struct platform_device *device)
|
|
|
wifi_rfkill->state = hp_wmi_wifi_state();
|
|
|
wifi_rfkill->toggle_radio = hp_wmi_wifi_set;
|
|
|
wifi_rfkill->user_claim_unsupported = 1;
|
|
|
- rfkill_register(wifi_rfkill);
|
|
|
+ err = rfkill_register(wifi_rfkill);
|
|
|
+ if (err)
|
|
|
+ goto add_sysfs_error;
|
|
|
}
|
|
|
|
|
|
if (wireless & 0x2) {
|
|
@@ -438,7 +440,8 @@ static int __init hp_wmi_bios_setup(struct platform_device *device)
|
|
|
bluetooth_rfkill->state = hp_wmi_bluetooth_state();
|
|
|
bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set;
|
|
|
bluetooth_rfkill->user_claim_unsupported = 1;
|
|
|
- rfkill_register(bluetooth_rfkill);
|
|
|
+ err = rfkill_register(bluetooth_rfkill);
|
|
|
+ goto register_bluetooth_error;
|
|
|
}
|
|
|
|
|
|
if (wireless & 0x4) {
|
|
@@ -447,10 +450,16 @@ static int __init hp_wmi_bios_setup(struct platform_device *device)
|
|
|
wwan_rfkill->state = hp_wmi_wwan_state();
|
|
|
wwan_rfkill->toggle_radio = hp_wmi_wwan_set;
|
|
|
wwan_rfkill->user_claim_unsupported = 1;
|
|
|
- rfkill_register(wwan_rfkill);
|
|
|
+ err = rfkill_register(wwan_rfkill);
|
|
|
+ if (err)
|
|
|
+ goto register_wwan_err;
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
+register_wwan_err:
|
|
|
+ rfkill_unregister(bluetooth_rfkill);
|
|
|
+register_bluetooth_error:
|
|
|
+ rfkill_unregister(wifi_rfkill);
|
|
|
add_sysfs_error:
|
|
|
cleanup_sysfs(device);
|
|
|
return err;
|