Commit 4bc0eb3a authored by David S. Miller's avatar David S. Miller

Merge tag 'wireless-drivers-for-davem-2016-04-13' of...

Merge tag 'wireless-drivers-for-davem-2016-04-13' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers

Kalle Valo says:

====================
wireless-drivers fixes for 4.6

b43

* fix memory leaks when removing the device

bcma

* fix building without OF_IRQ

rtlwifi

* fix gcc-6 indentation warning

iwlwifi

* lower the debug level of a benign print
* fix a memory leak
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 1ecf6890 15da5d11
...@@ -136,7 +136,6 @@ static bool bcma_is_core_needed_early(u16 core_id) ...@@ -136,7 +136,6 @@ static bool bcma_is_core_needed_early(u16 core_id)
return false; return false;
} }
#if defined(CONFIG_OF) && defined(CONFIG_OF_ADDRESS)
static struct device_node *bcma_of_find_child_device(struct platform_device *parent, static struct device_node *bcma_of_find_child_device(struct platform_device *parent,
struct bcma_device *core) struct bcma_device *core)
{ {
...@@ -184,7 +183,7 @@ static unsigned int bcma_of_get_irq(struct platform_device *parent, ...@@ -184,7 +183,7 @@ static unsigned int bcma_of_get_irq(struct platform_device *parent,
struct of_phandle_args out_irq; struct of_phandle_args out_irq;
int ret; int ret;
if (!parent || !parent->dev.of_node) if (!IS_ENABLED(CONFIG_OF_IRQ) || !parent || !parent->dev.of_node)
return 0; return 0;
ret = bcma_of_irq_parse(parent, core, &out_irq, num); ret = bcma_of_irq_parse(parent, core, &out_irq, num);
...@@ -202,23 +201,15 @@ static void bcma_of_fill_device(struct platform_device *parent, ...@@ -202,23 +201,15 @@ static void bcma_of_fill_device(struct platform_device *parent,
{ {
struct device_node *node; struct device_node *node;
if (!IS_ENABLED(CONFIG_OF_IRQ))
return;
node = bcma_of_find_child_device(parent, core); node = bcma_of_find_child_device(parent, core);
if (node) if (node)
core->dev.of_node = node; core->dev.of_node = node;
core->irq = bcma_of_get_irq(parent, core, 0); core->irq = bcma_of_get_irq(parent, core, 0);
} }
#else
static void bcma_of_fill_device(struct platform_device *parent,
struct bcma_device *core)
{
}
static inline unsigned int bcma_of_get_irq(struct platform_device *parent,
struct bcma_device *core, int num)
{
return 0;
}
#endif /* CONFIG_OF */
unsigned int bcma_core_irq(struct bcma_device *core, int num) unsigned int bcma_core_irq(struct bcma_device *core, int num)
{ {
......
...@@ -5680,11 +5680,12 @@ static int b43_bcma_probe(struct bcma_device *core) ...@@ -5680,11 +5680,12 @@ static int b43_bcma_probe(struct bcma_device *core)
INIT_WORK(&wl->firmware_load, b43_request_firmware); INIT_WORK(&wl->firmware_load, b43_request_firmware);
schedule_work(&wl->firmware_load); schedule_work(&wl->firmware_load);
bcma_out:
return err; return err;
bcma_err_wireless_exit: bcma_err_wireless_exit:
ieee80211_free_hw(wl->hw); ieee80211_free_hw(wl->hw);
bcma_out:
kfree(dev);
return err; return err;
} }
...@@ -5712,8 +5713,8 @@ static void b43_bcma_remove(struct bcma_device *core) ...@@ -5712,8 +5713,8 @@ static void b43_bcma_remove(struct bcma_device *core)
b43_rng_exit(wl); b43_rng_exit(wl);
b43_leds_unregister(wl); b43_leds_unregister(wl);
ieee80211_free_hw(wl->hw); ieee80211_free_hw(wl->hw);
kfree(wldev->dev);
} }
static struct bcma_driver b43_bcma_driver = { static struct bcma_driver b43_bcma_driver = {
...@@ -5796,6 +5797,7 @@ static void b43_ssb_remove(struct ssb_device *sdev) ...@@ -5796,6 +5797,7 @@ static void b43_ssb_remove(struct ssb_device *sdev)
b43_leds_unregister(wl); b43_leds_unregister(wl);
b43_wireless_exit(dev, wl); b43_wireless_exit(dev, wl);
kfree(dev);
} }
static struct ssb_driver b43_ssb_driver = { static struct ssb_driver b43_ssb_driver = {
......
...@@ -1147,6 +1147,8 @@ void __iwl_mvm_mac_stop(struct iwl_mvm *mvm) ...@@ -1147,6 +1147,8 @@ void __iwl_mvm_mac_stop(struct iwl_mvm *mvm)
/* the fw is stopped, the aux sta is dead: clean up driver state */ /* the fw is stopped, the aux sta is dead: clean up driver state */
iwl_mvm_del_aux_sta(mvm); iwl_mvm_del_aux_sta(mvm);
iwl_free_fw_paging(mvm);
/* /*
* Clear IN_HW_RESTART flag when stopping the hw (as restart_complete() * Clear IN_HW_RESTART flag when stopping the hw (as restart_complete()
* won't be called in this case). * won't be called in this case).
......
...@@ -761,8 +761,6 @@ static void iwl_op_mode_mvm_stop(struct iwl_op_mode *op_mode) ...@@ -761,8 +761,6 @@ static void iwl_op_mode_mvm_stop(struct iwl_op_mode *op_mode)
for (i = 0; i < NVM_MAX_NUM_SECTIONS; i++) for (i = 0; i < NVM_MAX_NUM_SECTIONS; i++)
kfree(mvm->nvm_sections[i].data); kfree(mvm->nvm_sections[i].data);
iwl_free_fw_paging(mvm);
iwl_mvm_tof_clean(mvm); iwl_mvm_tof_clean(mvm);
ieee80211_free_hw(mvm->hw); ieee80211_free_hw(mvm->hw);
......
...@@ -732,7 +732,7 @@ static int iwl_pcie_rsa_race_bug_wa(struct iwl_trans *trans) ...@@ -732,7 +732,7 @@ static int iwl_pcie_rsa_race_bug_wa(struct iwl_trans *trans)
*/ */
val = iwl_read_prph(trans, PREG_AUX_BUS_WPROT_0); val = iwl_read_prph(trans, PREG_AUX_BUS_WPROT_0);
if (val & (BIT(1) | BIT(17))) { if (val & (BIT(1) | BIT(17))) {
IWL_INFO(trans, IWL_DEBUG_INFO(trans,
"can't access the RSA semaphore it is write protected\n"); "can't access the RSA semaphore it is write protected\n");
return 0; return 0;
} }
......
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