diff options
author | Assaf Krauss | 2008-03-14 18:38:48 +0100 |
---|---|---|
committer | John W. Linville | 2008-03-25 21:41:51 +0100 |
commit | 1d0a082d38decb62ceb3e26a4bb1a3ca78843a23 (patch) | |
tree | 4563baeb92331e953803a151f84abbdaac204481 /drivers/net/wireless/iwlwifi/iwl-core.c | |
parent | iwlwifi: Packing all 4965 parameters (diff) | |
download | kernel-qcow2-linux-1d0a082d38decb62ceb3e26a4bb1a3ca78843a23.tar.gz kernel-qcow2-linux-1d0a082d38decb62ceb3e26a4bb1a3ca78843a23.tar.xz kernel-qcow2-linux-1d0a082d38decb62ceb3e26a4bb1a3ca78843a23.zip |
iwlwifi: Probe Flow - Performing allocation in a separate function
Performing allocation in a separate function (previously handled in
'probe')
Signed-off-by: Assaf Krauss <assaf.krauss@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 3a9fc905e6bc..244318af53fc 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c @@ -29,12 +29,15 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/version.h> +#include <net/mac80211.h> struct iwl_priv; /* FIXME: remove */ #include "iwl-debug.h" #include "iwl-eeprom.h" #include "iwl-core.h" +#include "iwl-4965.h" /* FIXME: remove */ + MODULE_DESCRIPTION("iwl core"); MODULE_VERSION(IWLWIFI_VERSION); MODULE_AUTHOR(DRV_COPYRIGHT); @@ -44,3 +47,27 @@ MODULE_LICENSE("GPL"); u32 iwl_debug_level; EXPORT_SYMBOL(iwl_debug_level); #endif + +/* This function both allocates and initializes hw and priv. */ +struct ieee80211_hw *iwl_alloc_all(struct iwl_cfg *cfg, + struct ieee80211_ops *hw_ops) +{ + struct iwl_priv *priv; + + /* mac80211 allocates memory for this device instance, including + * space for this driver's private structure */ + struct ieee80211_hw *hw = + ieee80211_alloc_hw(sizeof(struct iwl_priv), hw_ops); + if (hw == NULL) { + IWL_ERROR("Can not allocate network device\n"); + goto out; + } + + priv = hw->priv; + priv->hw = hw; + +out: + return hw; +} +EXPORT_SYMBOL(iwl_alloc_all); + |