diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-10 18:08:11 -0400 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-10 18:08:11 -0400 |
commit | a15707d80ee9a0e0812c5f1a1ed8e41e0a6e52f3 (patch) | |
tree | b1774dad1d72b70d88ab6c51ff4b87697dfca57a /drivers/net/wireless/iwlwifi/iwl-agn.c | |
parent | 9459d59fbf0bc82ff4c804679fa8bc22788eca63 (diff) | |
parent | 562db532760827f6ce30801a08e6b568848bc9f2 (diff) |
Merge branch 'wireless-2.6' into wireless-next-2.6
Conflicts:
drivers/net/wireless/iwlwifi/iwl-dev.h
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index d18c61223ac5..dc283769780e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -1776,6 +1776,7 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context) | |||
1776 | 1776 | ||
1777 | /* We have our copies now, allow OS release its copies */ | 1777 | /* We have our copies now, allow OS release its copies */ |
1778 | release_firmware(ucode_raw); | 1778 | release_firmware(ucode_raw); |
1779 | complete(&priv->_agn.firmware_loading_complete); | ||
1779 | return; | 1780 | return; |
1780 | 1781 | ||
1781 | try_again: | 1782 | try_again: |
@@ -1789,6 +1790,7 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context) | |||
1789 | IWL_ERR(priv, "failed to allocate pci memory\n"); | 1790 | IWL_ERR(priv, "failed to allocate pci memory\n"); |
1790 | iwl_dealloc_ucode_pci(priv); | 1791 | iwl_dealloc_ucode_pci(priv); |
1791 | out_unbind: | 1792 | out_unbind: |
1793 | complete(&priv->_agn.firmware_loading_complete); | ||
1792 | device_release_driver(&priv->pci_dev->dev); | 1794 | device_release_driver(&priv->pci_dev->dev); |
1793 | release_firmware(ucode_raw); | 1795 | release_firmware(ucode_raw); |
1794 | } | 1796 | } |
@@ -3586,6 +3588,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
3586 | iwl_power_initialize(priv); | 3588 | iwl_power_initialize(priv); |
3587 | iwl_tt_initialize(priv); | 3589 | iwl_tt_initialize(priv); |
3588 | 3590 | ||
3591 | init_completion(&priv->_agn.firmware_loading_complete); | ||
3592 | |||
3589 | err = iwl_request_firmware(priv, true); | 3593 | err = iwl_request_firmware(priv, true); |
3590 | if (err) | 3594 | if (err) |
3591 | goto out_remove_sysfs; | 3595 | goto out_remove_sysfs; |
@@ -3626,6 +3630,8 @@ static void __devexit iwl_pci_remove(struct pci_dev *pdev) | |||
3626 | if (!priv) | 3630 | if (!priv) |
3627 | return; | 3631 | return; |
3628 | 3632 | ||
3633 | wait_for_completion(&priv->_agn.firmware_loading_complete); | ||
3634 | |||
3629 | IWL_DEBUG_INFO(priv, "*** UNLOAD DRIVER ***\n"); | 3635 | IWL_DEBUG_INFO(priv, "*** UNLOAD DRIVER ***\n"); |
3630 | 3636 | ||
3631 | iwl_dbgfs_unregister(priv); | 3637 | iwl_dbgfs_unregister(priv); |