Commit 5b5c2b3c authored by Kirill Tkhai's avatar Kirill Tkhai Committed by Matthew Garrett

hp_wmi: Fix unregister order in hp_wmi_rfkill_setup()

Register order is:
			wifi
			bluetooth
			wwan
			gps

So unregister order must be:
			gps
			wwan
			bluetiith
			wifi

But currently gps and wwan are swapped. Fix that.
Also fix goto links.
Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
CC: Matthew Garrett <matthew.garrett@nebula.com>
Signed-off-by: default avatarMatthew Garrett <matthew.garrett@nebula.com>
parent 0db7fd96
...@@ -725,7 +725,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device) ...@@ -725,7 +725,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
(void *) HPWMI_WWAN); (void *) HPWMI_WWAN);
if (!wwan_rfkill) { if (!wwan_rfkill) {
err = -ENOMEM; err = -ENOMEM;
goto register_gps_error; goto register_bluetooth_error;
} }
rfkill_init_sw_state(wwan_rfkill, rfkill_init_sw_state(wwan_rfkill,
hp_wmi_get_sw_state(HPWMI_WWAN)); hp_wmi_get_sw_state(HPWMI_WWAN));
...@@ -733,7 +733,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device) ...@@ -733,7 +733,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
hp_wmi_get_hw_state(HPWMI_WWAN)); hp_wmi_get_hw_state(HPWMI_WWAN));
err = rfkill_register(wwan_rfkill); err = rfkill_register(wwan_rfkill);
if (err) if (err)
goto register_wwan_err; goto register_wwan_error;
} }
if (wireless & 0x8) { if (wireless & 0x8) {
...@@ -743,7 +743,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device) ...@@ -743,7 +743,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
(void *) HPWMI_GPS); (void *) HPWMI_GPS);
if (!gps_rfkill) { if (!gps_rfkill) {
err = -ENOMEM; err = -ENOMEM;
goto register_bluetooth_error; goto register_wwan_error;
} }
rfkill_init_sw_state(gps_rfkill, rfkill_init_sw_state(gps_rfkill,
hp_wmi_get_sw_state(HPWMI_GPS)); hp_wmi_get_sw_state(HPWMI_GPS));
...@@ -755,16 +755,16 @@ static int hp_wmi_rfkill_setup(struct platform_device *device) ...@@ -755,16 +755,16 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
} }
return 0; return 0;
register_wwan_err:
rfkill_destroy(wwan_rfkill);
wwan_rfkill = NULL;
if (gps_rfkill)
rfkill_unregister(gps_rfkill);
register_gps_error: register_gps_error:
rfkill_destroy(gps_rfkill); rfkill_destroy(gps_rfkill);
gps_rfkill = NULL; gps_rfkill = NULL;
if (bluetooth_rfkill) if (bluetooth_rfkill)
rfkill_unregister(bluetooth_rfkill); rfkill_unregister(bluetooth_rfkill);
register_wwan_error:
rfkill_destroy(wwan_rfkill);
wwan_rfkill = NULL;
if (gps_rfkill)
rfkill_unregister(gps_rfkill);
register_bluetooth_error: register_bluetooth_error:
rfkill_destroy(bluetooth_rfkill); rfkill_destroy(bluetooth_rfkill);
bluetooth_rfkill = NULL; bluetooth_rfkill = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment