Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 4/8] iwlwifi: update LQ for bcast station on channel change
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Daniel Halperin, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>

From: Daniel Halperin <dhalperi@cs.washington.edu>

The rate table in the bcast LQ is computed only when the station is
allocated, and chooses the lowest rate for the band. Because of when this
occurs, this is the 2.4 GHz band and uses the 0x420a (CCK, 1 Mbps) rate. In 5 GHz
beaconing mode, this rate will prevent beacons from being sent and any other
packets from being received.

We can fix this by re-initializing the bcast station's LQ command when the
channel is changed.

Signed-off-by: Daniel Halperin <dhalperi@cs.washington.edu>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-1000.c |    1 +
 drivers/net/wireless/iwlwifi/iwl-4965.c |    1 +
 drivers/net/wireless/iwlwifi/iwl-5000.c |    2 ++
 drivers/net/wireless/iwlwifi/iwl-6000.c |    1 +
 drivers/net/wireless/iwlwifi/iwl-core.c |    3 +++
 drivers/net/wireless/iwlwifi/iwl-core.h |    1 +
 drivers/net/wireless/iwlwifi/iwl-sta.c  |   30 ++++++++++++++++++++++++++++++
 drivers/net/wireless/iwlwifi/iwl-sta.h  |    1 +
 8 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index 24743b9..1daf159 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -217,6 +217,7 @@ static struct iwl_lib_ops iwl1000_lib = {
 		.set_ct_kill = iwl1000_set_ct_threshold,
 	 },
 	.manage_ibss_station = iwlagn_manage_ibss_station,
+	.update_bcast_station = iwl_update_bcast_station,
 	.debugfs_ops = {
 		.rx_stats_read = iwl_ucode_rx_stats_read,
 		.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 67526a1..1dd3bc4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2280,6 +2280,7 @@ static struct iwl_lib_ops iwl4965_lib = {
 		.set_ct_kill = iwl4965_set_ct_threshold,
 	},
 	.manage_ibss_station = iwlagn_manage_ibss_station,
+	.update_bcast_station = iwl_update_bcast_station,
 	.debugfs_ops = {
 		.rx_stats_read = iwl_ucode_rx_stats_read,
 		.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index fa2dbb5..b8f3e20 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -393,6 +393,7 @@ static struct iwl_lib_ops iwl5000_lib = {
 		.set_ct_kill = iwl5000_set_ct_threshold,
 	 },
 	.manage_ibss_station = iwlagn_manage_ibss_station,
+	.update_bcast_station = iwl_update_bcast_station,
 	.debugfs_ops = {
 		.rx_stats_read = iwl_ucode_rx_stats_read,
 		.tx_stats_read = iwl_ucode_tx_stats_read,
@@ -455,6 +456,7 @@ static struct iwl_lib_ops iwl5150_lib = {
 		.set_ct_kill = iwl5150_set_ct_threshold,
 	 },
 	.manage_ibss_station = iwlagn_manage_ibss_station,
+	.update_bcast_station = iwl_update_bcast_station,
 	.debugfs_ops = {
 		.rx_stats_read = iwl_ucode_rx_stats_read,
 		.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index c909a9c..61cf0b3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -318,6 +318,7 @@ static struct iwl_lib_ops iwl6000_lib = {
 		.set_calib_version = iwl6000_set_calib_version,
 	 },
 	.manage_ibss_station = iwlagn_manage_ibss_station,
+	.update_bcast_station = iwl_update_bcast_station,
 	.debugfs_ops = {
 		.rx_stats_read = iwl_ucode_rx_stats_read,
 		.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 329e510..f47a58f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -2110,6 +2110,9 @@ int iwl_mac_config(struct ieee80211_hw *hw, u32 changed)
 		iwl_set_flags_for_band(priv, conf->channel->band, priv->vif);
 		spin_unlock_irqrestore(&priv->lock, flags);
 
+		if (priv->cfg->ops->lib->update_bcast_station)
+			ret = priv->cfg->ops->lib->update_bcast_station(priv);
+
  set_ch_out:
 		/* The list of supported rates and rate mask can be different
 		 * for each band; since the band may have changed, reset
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index cdcb51d..15930e0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -196,6 +196,7 @@ struct iwl_lib_ops {
 	/* station management */
 	int (*manage_ibss_station)(struct iwl_priv *priv,
 				   struct ieee80211_vif *vif, bool add);
+	int (*update_bcast_station)(struct iwl_priv *priv);
 	/* recover from tx queue stall */
 	void (*recover_from_tx_stall)(unsigned long data);
 	/* check for plcp health */
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index 6a9cd08..9511f03 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -1259,6 +1259,36 @@ int iwl_alloc_bcast_station(struct iwl_priv *priv, bool init_lq)
 }
 EXPORT_SYMBOL_GPL(iwl_alloc_bcast_station);
 
+/**
+ * iwl_update_bcast_station - update broadcast station's LQ command
+ *
+ * Only used by iwlagn. Placed here to have all bcast station management
+ * code together.
+ */
+int iwl_update_bcast_station(struct iwl_priv *priv)
+{
+	unsigned long flags;
+	struct iwl_link_quality_cmd *link_cmd;
+	u8 sta_id = priv->hw_params.bcast_sta_id;
+
+	link_cmd = iwl_sta_alloc_lq(priv, sta_id);
+	if (!link_cmd) {
+		IWL_ERR(priv, "Unable to initialize rate scaling for bcast station.\n");
+		return -ENOMEM;
+	}
+
+	spin_lock_irqsave(&priv->sta_lock, flags);
+	if (priv->stations[sta_id].lq)
+		kfree(priv->stations[sta_id].lq);
+	else
+		IWL_DEBUG_INFO(priv, "Bcast station rate scaling has not been initialized yet.\n");
+	priv->stations[sta_id].lq = link_cmd;
+	spin_unlock_irqrestore(&priv->sta_lock, flags);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(iwl_update_bcast_station);
+
 void iwl_dealloc_bcast_station(struct iwl_priv *priv)
 {
 	unsigned long flags;
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.h b/drivers/net/wireless/iwlwifi/iwl-sta.h
index 619bb99..ba95b1a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.h
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.h
@@ -60,6 +60,7 @@ void iwl_restore_stations(struct iwl_priv *priv);
 void iwl_clear_ucode_stations(struct iwl_priv *priv);
 int iwl_alloc_bcast_station(struct iwl_priv *priv, bool init_lq);
 void iwl_dealloc_bcast_station(struct iwl_priv *priv);
+int iwl_update_bcast_station(struct iwl_priv *priv);
 int iwl_get_free_ucode_key_index(struct iwl_priv *priv);
 int iwl_send_add_sta(struct iwl_priv *priv,
 		     struct iwl_addsta_cmd *sta, u8 flags);
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 8/8] iwlwifi: add disable rf calibration support for 6000g2a and 6000g2b
From: Reinette Chatre @ 2010-06-25 22:43 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>

From: Wey-Yi Guy <wey-yi.w.guy@intel.com>

Radio calibration (chain noise and sensitivity) should be allowed to
be disabled from debugfs if compiled with CONFIG_IWLWIFI_DEBUGFS. For both
6000g2a and 6000g2b, the parameters are missing in "cfg", which cause
user can not disable the radio calibration manually; add the support to
allow the operation.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-6000.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 61cf0b3..8577664 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -423,6 +423,8 @@ struct iwl_cfg iwl6000g2a_2abg_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -456,6 +458,8 @@ struct iwl_cfg iwl6000g2a_2bg_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -491,6 +495,8 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -524,6 +530,8 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -559,6 +567,8 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -592,6 +602,8 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -627,6 +639,8 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
@@ -660,6 +674,8 @@ struct iwl_cfg iwl6000g2b_bg_cfg = {
 	.chain_noise_scale = 1000,
 	.monitor_recover_period = IWL_MONITORING_PERIOD,
 	.max_event_log_size = 512,
+	.sensitivity_calib_by_driver = true,
+	.chain_noise_calib_by_driver = true,
 	.need_dc_calib = true,
 };
 
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 7/8] iwlagn: reduce severity of disconnected antennas warning
From: Reinette Chatre @ 2010-06-25 22:43 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>

From: Reinette Chatre <reinette.chatre@intel.com>

This message is encountered regularly and we need to take a closer look at
the circumstances under which it is printed before presenting errors to
users.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn-calib.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-calib.c b/drivers/net/wireless/iwlwifi/iwl-agn-calib.c
index 400eb31..eb052b0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-calib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-calib.c
@@ -843,10 +843,10 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv,
 
 	if (active_chains != priv->hw_params.valid_rx_ant &&
 	    active_chains != priv->chain_noise_data.active_chains)
-		IWL_WARN(priv,
-			 "Detected that not all antennas are connected! "
-			 "Connected: %#x, valid: %#x.\n",
-			 active_chains, priv->hw_params.valid_rx_ant);
+		IWL_DEBUG_CALIB(priv,
+				"Detected that not all antennas are connected! "
+				"Connected: %#x, valid: %#x.\n",
+				active_chains, priv->hw_params.valid_rx_ant);
 
 	/* Save for use within RXON, TX, SCAN commands, etc. */
 	priv->chain_noise_data.active_chains = active_chains;
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 6/8] iwlwifi: turn on RTS/CTS after aggregation become operational
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>

From: Wey-Yi Guy <wey-yi.w.guy@intel.com>

If RTS/CTS protection is needed for HT, wait until get operational
notification from mac80211, then inform uCode to switch to RTS/CTS
through RXON command.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn-rs.c |   17 +++++------------
 drivers/net/wireless/iwlwifi/iwl-agn.c    |   28 +++++++++++++++++++++++++++-
 drivers/net/wireless/iwlwifi/iwl-scan.c   |    9 +++++++++
 3 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 40933a5..35c86d2 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -324,18 +324,11 @@ static void rs_tl_turn_on_agg(struct iwl_priv *priv, u8 tid,
 			      struct iwl_lq_sta *lq_data,
 			      struct ieee80211_sta *sta)
 {
-	if ((tid < TID_MAX_LOAD_COUNT) &&
-	    !rs_tl_turn_on_agg_for_tid(priv, lq_data, tid, sta)) {
-		if (priv->cfg->use_rts_for_ht) {
-			/*
-			 * switch to RTS/CTS if it is the prefer protection
-			 * method for HT traffic
-			 */
-			IWL_DEBUG_HT(priv, "use RTS/CTS protection for HT\n");
-			priv->staging_rxon.flags &= ~RXON_FLG_SELF_CTS_EN;
-			iwlcore_commit_rxon(priv);
-		}
-	}
+	if (tid < TID_MAX_LOAD_COUNT)
+		rs_tl_turn_on_agg_for_tid(priv, lq_data, tid, sta);
+	else
+		IWL_ERR(priv, "tid exceeds max load count: %d/%d\n",
+			tid, TID_MAX_LOAD_COUNT);
 }
 
 static inline int get_num_of_ant_from_rate(u32 rate_n_flags)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 7488a68..3368cfd 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3368,6 +3368,25 @@ static int iwl_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 	return ret;
 }
 
+/*
+ * switch to RTS/CTS for TX
+ */
+static void iwl_enable_rts_cts(struct iwl_priv *priv)
+{
+
+	if (test_bit(STATUS_EXIT_PENDING, &priv->status))
+		return;
+
+	priv->staging_rxon.flags &= ~RXON_FLG_SELF_CTS_EN;
+	if (!test_bit(STATUS_SCANNING, &priv->status)) {
+		IWL_DEBUG_INFO(priv, "use RTS/CTS protection\n");
+		iwlcore_commit_rxon(priv);
+	} else {
+		/* scanning, defer the request until scan completed */
+		IWL_DEBUG_INFO(priv, "defer setting RTS/CTS protection\n");
+	}
+}
+
 static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
 				struct ieee80211_vif *vif,
 				enum ieee80211_ampdu_mlme_action action,
@@ -3416,7 +3435,14 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
 			ret = 0;
 		break;
 	case IEEE80211_AMPDU_TX_OPERATIONAL:
-		/* do nothing, return value ignored */
+		if (priv->cfg->use_rts_for_ht) {
+			/*
+			 * switch to RTS/CTS if it is the prefer protection
+			 * method for HT traffic
+			 */
+			iwl_enable_rts_cts(priv);
+		}
+		ret = 0;
 		break;
 	}
 	mutex_unlock(&priv->mutex);
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 798f93e..2a7c399 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -537,6 +537,15 @@ void iwl_bg_scan_completed(struct work_struct *work)
 	/* Since setting the TXPOWER may have been deferred while
 	 * performing the scan, fire one off */
 	iwl_set_tx_power(priv, priv->tx_power_user_lmt, true);
+
+	/*
+	 * Since setting the RXON may have been deferred while
+	 * performing the scan, fire one off if needed
+	 */
+	if (memcmp(&priv->active_rxon,
+		   &priv->staging_rxon, sizeof(priv->staging_rxon)))
+		iwlcore_commit_rxon(priv);
+
  out:
 	mutex_unlock(&priv->mutex);
 
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 5/8] iwlwifi: read rfkill during resume
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Johannes Berg, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>

From: Johannes Berg <johannes.berg@intel.com>

When resuming from hibernate or suspend,
the status of the rfkill switch isn't
known since it might have been toggled
while the system was asleep. Therefore,
we need to read out the status at resume
time to make sure the system knows about
an up-to-date status.

Reported-by: Mark Tung <mark.y.tung@intel.com>
Tested-by: Mark Tung <mark.y.tung@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-core.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index f47a58f..a56fb46 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -2845,6 +2845,7 @@ int iwl_pci_resume(struct pci_dev *pdev)
 {
 	struct iwl_priv *priv = pci_get_drvdata(pdev);
 	int ret;
+	bool hw_rfkill = false;
 
 	/*
 	 * We disable the RETRY_TIMEOUT register (0x41) to keep
@@ -2859,6 +2860,17 @@ int iwl_pci_resume(struct pci_dev *pdev)
 	pci_restore_state(pdev);
 	iwl_enable_interrupts(priv);
 
+	if (!(iwl_read32(priv, CSR_GP_CNTRL) &
+				CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW))
+		hw_rfkill = true;
+
+	if (hw_rfkill)
+		set_bit(STATUS_RF_KILL_HW, &priv->status);
+	else
+		clear_bit(STATUS_RF_KILL_HW, &priv->status);
+
+	wiphy_rfkill_set_hw_state(priv->hw->wiphy, hw_rfkill);
+
 	return 0;
 }
 EXPORT_SYMBOL(iwl_pci_resume);
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 2/2] iwlwifi: set TX_CMD_FLAG_PROT_REQUIRE_MSK in tx_flag
From: Reinette Chatre @ 2010-06-25 22:43 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1277505799-25306-1-git-send-email-reinette.chatre@intel.com>

From: Wey-Yi Guy <wey-yi.w.guy@intel.com>

When building tx command, always set TX_CMD_FLAG_PROT_REQUIRE_MSK
for 5000 series and up.

Without setting this bit the firmware will not examine the RTS/CTS setting
and thus not send traffic with the appropriate protection. RTS/CTS is is
required for HT traffic in a noisy environment where, without this setting,
connections will stall on some hardware as documented in the patch that
initially attempted to address this:

    commit 1152dcc28c66a74b5b3f1a3ede0aa6729bfd48e4
    Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Date:   Fri Jan 15 13:42:58 2010 -0800

    iwlwifi: Fix throughput stall issue in HT mode for 5000

    Similar to 6000 and 1000 series, RTS/CTS is the recommended
    protection mechanism for 5000 series in HT mode based on the HW design.
    Using RTS/CTS will better protect the inner exchange from interference,
    especially in highly-congested environment, it also prevent uCode encounter
    TX FIFO underrun and other HT mode related performance issues.

For 3945 and 4965, different flags are used for RTS/CTS or CTS-to-Self
protection.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
index 44ef5d9..01658cf 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
@@ -212,11 +212,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv)
 static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info,
 			__le32 *tx_flags)
 {
-	if ((info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) ||
-	    (info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT))
-		*tx_flags |= TX_CMD_FLG_RTS_CTS_MSK;
-	else
-		*tx_flags &= ~TX_CMD_FLG_RTS_CTS_MSK;
+	*tx_flags |= TX_CMD_FLG_RTS_CTS_MSK;
 }
 
 /* Calc max signal level (dBm) among 3 possible receivers */
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 1/2] iwlwifi: fix multicast
From: Reinette Chatre @ 2010-06-25 22:43 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Johannes Berg
In-Reply-To: <1277505799-25306-1-git-send-email-reinette.chatre@intel.com>

From: Johannes Berg <johannes.berg@intel.com>

commit 3474ad635db371b0d8d0ee40086f15d223d5b6a4
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Apr 29 04:43:05 2010 -0700

    iwlwifi: apply filter flags directly

broke multicast. The reason, it turns out, is that
the code previously checked if ALLMULTI _changed_,
which the new code no longer did, and normally it
_never_ changes. Had somebody changed it manually,
the code prior to my patch there would have been
broken already.

The reason is that we always, unconditionally, ask
the device to pass up all multicast frames, but the
new code made it depend on ALLMULTI which broke it
since now we'd pass up multicast frames depending
on the default filter in the device, which isn't
necessarily what we want (since we don't program it
right now).

Fix this by simply not checking allmulti as we have
allmulti behaviour enabled already anyway.

Reported-by: Maxim Levitsky <maximlevitsky@gmail.com>
Tested-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-core.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 426e955..5bbc529 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1314,7 +1314,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
 			changed_flags, *total_flags);
 
 	CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK);
-	CHK(FIF_ALLMULTI, RXON_FILTER_ACCEPT_GRP_MSK);
 	CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK);
 	CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK);
 
@@ -1329,6 +1328,12 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
 
 	mutex_unlock(&priv->mutex);
 
+	/*
+	 * Receiving all multicast frames is always enabled by the
+	 * default flags setup in iwl_connection_init_rx_config()
+	 * since we currently do not support programming multicast
+	 * filters into the device.
+	 */
 	*total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS |
 			FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL;
 }
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 0/2] iwlwifi fixes for 2.6.35
From: Reinette Chatre @ 2010-06-25 22:43 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre

We include a much anticipated fix for an issue introduced that
broke multicast. This was particularly severe in 3945.
Some references about this issue:
https://bugzilla.kernel.org/show_bug.cgi?id=16235
http://marc.info/?l=linux-kernel&m=127653628301300&w=2
http://thread.gmane.org/gmane.linux.kernel.wireless.general/51614

The second fix is a required change to make all of our current RTS/CTS
settings take effect. Previously we would only modify the RXON setting, but
this setting would only be viewed by firmware if the TX flags have the
TX_CMD_FLAG_PROT_REQUIRE_MSK bit set, which we have not done until now.


These patches are also available from wireless-2.6 branch on
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git

Johannes Berg (1):
  iwlwifi: fix multicast

Wey-Yi Guy (1):
  iwlwifi: set TX_CMD_FLAG_PROT_REQUIRE_MSK in tx_flag

 drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c |    6 +-----
 drivers/net/wireless/iwlwifi/iwl-core.c     |    7 ++++++-
 2 files changed, 7 insertions(+), 6 deletions(-)


^ permalink raw reply

* Re: ATH5k - Signal measurement reports wrong values - "calib" did not help
From: Jaroslav Fojtik @ 2010-06-26 12:43 UTC (permalink / raw)
  To: Bruno Randolf, linux-wireless
In-Reply-To: <201006250947.39223.br1@einfach.org>

Dear Bruno Randolf,

> > Nothing changed after setting "calib" on.

> hey jara!
> 
> setting "calib" is not supposed to change the results, it would just show us 
> debug messages in the kernel log (dmesg). have you tried the patch i sent 
> later? that should fix it...
Thanks for your info. According to logs it looked like noise floor is -94dB
and it is negligible.

I do not know which patch do you mean. If it is integrated into a current
tarball, I could simply download it and try it.
http://www.orbit-lab.org/kernel/compat-wireless-2.6/compat-wireless-2010-06-25.tar.bz2

If it is not, please Email me such patch.

I am currently using compat-wireless-2010-06-22 and it is still affected by
wrong signal measurement.

regards
   Jara




> 
> bruno
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply

* Re: rt2x00 & mac80211: correct usage of ieee80211_beacon_get_tim?
From: John W. Linville @ 2010-06-26 15:32 UTC (permalink / raw)
  To: Helmut Schaa
  Cc: Johannes Berg, linux-wireless, Ivo van Doorn,
	Gertjan van Wingerde
In-Reply-To: <201006251801.06209.helmut.schaa@googlemail.com>

On Fri, Jun 25, 2010 at 06:01:06PM +0200, Helmut Schaa wrote:
> Am Donnerstag 24 Juni 2010 schrieb Johannes Berg:
> >  b) You need to get a new beacon frame from mac80211 only when it
> >     changes. You can do this from set_tim(). HOWEVER: since you're not
> >     getting a new one from mac80211 all the time anyway, you NEED to
> >     have the driver or firmware overwrite the DTIM count, like b43's
> >     firmware for example will do.
> 
> And the broad- and multicast buffering also needs to be done in the driver
> (when the fw/hw cannot handle it) as mac80211 uses its own DTIM count for
> deciding when to "release" buffered frames to the driver.

That seems a bit...yucky...

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Re: Fwd: mesh configuration information element is wrong?
From: Jouni Malinen @ 2010-06-26 15:08 UTC (permalink / raw)
  To: Iuri Diniz; +Cc: linux-wireless
In-Reply-To: <AANLkTimeR5kQX2hSNw0Ud0QOF0-nsqCFMkSNul9wwa7C@mail.gmail.com>

On Fri, Jun 25, 2010 at 02:43:31PM -0300, Iuri Diniz wrote:

> I'm analyzing the 802.11s code and I think I've found that mesh
> configuration information element has wrongs sizes.
> 
> It is not according to my copy of 802.11s draft 3.

Draft 3 is quite old..

> on linux-wireless-testing/linux/include/ieee80211.h we have:
>  * struct ieee80211_meshconf_ie
>  * This structure refers to "Mesh Configuration information element"

> struct ieee80211_meshconf_ie {
>     u8 meshconf_psel;
>     u8 meshconf_pmetric;
>     u8 meshconf_congest;
>     u8 meshconf_synch;
>     u8 meshconf_auth;
>     u8 meshconf_form;
>     u8 meshconf_cap;
> } __attribute__ ((packed));

That matches otherwise with the latest draft (P802.11s/D6.0), but it
lacks one field. There is a 1-octet field "Mesh Peering Protocol
Identifier" between the _auth and _form fields in the latest draft.

-- 
Jouni Malinen                                            PGP id EFC895FA

^ permalink raw reply

* Re: ATH5k - Signal measurement reports wrong values - "calib" did not help
From: Bruno Randolf @ 2010-06-26 16:07 UTC (permalink / raw)
  To: Jaroslav Fojtik; +Cc: linux-wireless
In-Reply-To: <4C25F603.29925.1365B7A@jafojtik.seznam.cz>

On Saturday 26 June 2010 21:43:47 Jaroslav Fojtik wrote:
> I do not know which patch do you mean. If it is integrated into a current
> tarball, I could simply download it and try it.
> http://www.orbit-lab.org/kernel/compat-wireless-2.6/compat-wireless-2010-06
> -25.tar.bz2
> 
> If it is not, please Email me such patch.

i dont have it here right now, but i sent it in a previous reply to you:

http://marc.info/?l=linux-wireless&m=127717933410893&w=2

it's just one line, so you can also change the same line in your compat-
wireless source code.

> I am currently using compat-wireless-2010-06-22 and it is still affected by
> wrong signal measurement.

yes, my patch is not part of compat-wireless yet. if you confirm that it fixes 
your problem i will send it for inclusion.
 
bruno

^ permalink raw reply

* Re: ATH5k - Signal measurement reports wrong values - thanks for a fix
From: Jaroslav Fojtik @ 2010-06-26 17:54 UTC (permalink / raw)
  To: Bruno Randolf, linux-wireless
In-Reply-To: <201006270107.59150.br1@einfach.org>

Dear Bruno,

> > If it is not, please Email me such patch.
> 
> i dont have it here right now, but i sent it in a previous reply to you:
> 
> http://marc.info/?l=linux-wireless&m=127717933410893&w=2
> 
> it's just one line, so you can also change the same line in your compat-
> wireless source code.
Yes, I have patched it now.


> > I am currently using compat-wireless-2010-06-22 and it is still affected by
> > wrong signal measurement.
> 
> yes, my patch is not part of compat-wireless yet. if you confirm that it fixes 
> your problem i will send it for inclusion.
It looks, that your patch really returns back proper signal values.

I will not poison Email with png files, feel free to look at here:
  http://78.108.103.11:11080/cgi-bin/rodga_1day_big.cgi
Magenta line returned back to green line from other direction.


Even in an AP mode the magenta line also jumped to expected value:
  http://78.108.103.11:11080/tmp/klienti-day-big.png

I hope that this patch would not influence performance or any other
functionality.

regards
   Jara


>  
> bruno



^ permalink raw reply

* Compat-wireless release for 2010-06-26 is baked
From: Compat-wireless cronjob account @ 2010-06-26 19:02 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth


compat-wireless code metrics

    494345 - Total upstream lines of code being pulled
      1407 - backport code changes
      1174 - backport code additions
       233 - backport code deletions
      5765 - backport from compat module
      7172 - total backport code
    1.4508 - % of code consists of backport work
      1218 - Crap changes not yet posted
      1179 - Crap additions not yet posted
        39 - Crap deletions not yet posted
    0.2464 - % of crap code

Base tree: linux-next.git
Base tree version: next-20100625
compat-wireless release: compat-wireless-2010-06-17-6-g8a97897

^ permalink raw reply

* [PATCH] iw: fix ampdu spacing & max amsdu length reporting
From: Christian Lamparter @ 2010-06-26 22:51 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
diff --git a/scan.c b/scan.c
index 09b1047..cd58290 100644
--- a/scan.c
+++ b/scan.c
@@ -497,7 +497,7 @@ static void print_ht_capa(const uint8_t type, uint8_t len, const uint8_t *data)
 	printf("\n");
 	print_ht_capability(data[0] | (data[1] << 8));
 	print_ampdu_length(data[2] & 3);
-	print_ampdu_spacing((data[2] >> 2) & 3);
+	print_ampdu_spacing((data[2] >> 2) & 7);
 	print_ht_mcs(data + 3);
 }
 
diff --git a/util.c b/util.c
index 0c6d978..80d5402 100644
--- a/util.c
+++ b/util.c
@@ -457,8 +457,8 @@ void print_ht_capability(__u16 cap)
 
 	PRINT_HT_CAP((cap & BIT(10)), "HT Delayed Block Ack");
 
-	PRINT_HT_CAP((cap & BIT(11)), "Max AMSDU length: 3839 bytes");
-        PRINT_HT_CAP(!(cap & BIT(11)), "Max AMSDU length: 7935 bytes");
+	PRINT_HT_CAP(!(cap & BIT(11)), "Max AMSDU length: 3839 bytes");
+	PRINT_HT_CAP((cap & BIT(11)), "Max AMSDU length: 7935 bytes");
 
 	/*
 	 * For beacons and probe response this would mean the BSS

^ permalink raw reply related

* Re: ATH5k - Signal measurement reports wrong values - thanks for a fix
From: Bruno Randolf @ 2010-06-27  2:20 UTC (permalink / raw)
  To: Jaroslav Fojtik; +Cc: linux-wireless
In-Reply-To: <4C263EC9.12342.C4FBB@jafojtik.seznam.cz>

On Sunday 27 June 2010 02:54:17 you wrote:
> It looks, that your patch really returns back proper signal values.
> 
> I will not poison Email with png files, feel free to look at here:
>   http://78.108.103.11:11080/cgi-bin/rodga_1day_big.cgi
> Magenta line returned back to green line from other direction.
> 
> 
> Even in an AP mode the magenta line also jumped to expected value:
>   http://78.108.103.11:11080/tmp/klienti-day-big.png
> 
> I hope that this patch would not influence performance or any other
> functionality.

no it just fixes a regression i have introduced in an earlier change. thanks 
for reporting and testing this! i will send the patch for inclusion on monday, 
then it might take some time (few days to weeks) until it apperars in compat-
wireless.

bruno

^ permalink raw reply

* Re: ATH5k - Signal measurement reports wrong values - thanks for a fix
From: Jaroslav Fojtik @ 2010-06-27  7:28 UTC (permalink / raw)
  To: Bruno Randolf, linux-wireless
In-Reply-To: <201006271120.11785.br1@einfach.org>

Dear Bruno,

> > I hope that this patch would not influence performance or any other
> > functionality.
> no it just fixes a regression i have introduced in an earlier change. thanks 
> for reporting and testing this! i will send the patch for inclusion on monday, 
> then it might take some time (few days to weeks) until it apperars in compat-
> wireless.

Thank you for explanation.
The patch surely improves signal strength measurement and I recomend it.

Anyway, when you look at the magenta line here:
  http://78.108.103.11:11080/cgi-bin/rodga_1day_big.cgi

There are big drops in measured signal. Did you fix all places?

Before this patch there were short peeks from -78dB to -71dB. 
After patch there are short measurement drops from -62dB to -70dB.

The week charting simply averages it:
  http://78.108.103.11:11080/cgi-bin/rodga_1week_big.cgi

regards
   Jara



> 
> bruno
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply

* Re: [PATCH] mac80211: auth retries if AP sends temporary deauth
From: Johannes Berg @ 2010-06-27  7:49 UTC (permalink / raw)
  To: Paul Stewart; +Cc: linux-wireless
In-Reply-To: <AANLkTilhbYTH2gKJsvqDaMzLG2cIt2tNV-GW-X0K3pNJ@mail.gmail.com>

On Fri, 2010-06-25 at 00:33 -0700, Paul Stewart wrote:

> If a STA gets sent a DEAUTH from an AP it is actively trying to
> authenticate to, mac80211 currently shoots itself in the foot by
> letting  ieee80211_sta_rx_mgmt() clean up state for the connection
> (removing an entry from authtry_bsses[] in wireless/mlme.c),
> but the retry loop contiinues, leading to a kernel warning but no
> connection.
> 
> An AP is allowed by the spec to return DEAUTH as a result of a
> temporary failure, one of which is "you are already authenticated
> -- what are you talking about?"

Do you know the reason code for that? I think the check here should be
more fine-grained.

johannes


^ permalink raw reply

* Re: rt2x00 & mac80211: correct usage of ieee80211_beacon_get_tim?
From: Johannes Berg @ 2010-06-27  8:21 UTC (permalink / raw)
  To: Helmut Schaa; +Cc: linux-wireless, Ivo van Doorn, Gertjan van Wingerde
In-Reply-To: <201006251801.06209.helmut.schaa@googlemail.com>

On Fri, 2010-06-25 at 18:01 +0200, Helmut Schaa wrote:
> Am Donnerstag 24 Juni 2010 schrieb Johannes Berg:
> >  b) You need to get a new beacon frame from mac80211 only when it
> >     changes. You can do this from set_tim(). HOWEVER: since you're not
> >     getting a new one from mac80211 all the time anyway, you NEED to
> >     have the driver or firmware overwrite the DTIM count, like b43's
> >     firmware for example will do.
> 
> And the broad- and multicast buffering also needs to be done in the driver
> (when the fw/hw cannot handle it) as mac80211 uses its own DTIM count for
> deciding when to "release" buffered frames to the driver.

Well, yes, but I don't get it. Are you trying to conjure a third way of
doing things? How would you like it to work?

I don't understand why you expect to have a correct DTIM count field
when you don't pull every beacon from mac80211. If you pull each beacon
it's all correct. If you don't, you need to take care of everything DTIM
related, there's simply no way to do it differently.

Does your device fill the DTIM count field or does it not? That's really
the only thing you need to know, no?

johannes


^ permalink raw reply

* Re: intel 5100/iwlagn bug in 2.6.35-rc2 during large file transfer
From: Richard Farina @ 2010-06-27 17:14 UTC (permalink / raw)
  To: reinette chatre; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <1277492229.13673.1297.camel@rchatre-DESK>

reinette chatre wrote:
> On Fri, 2010-06-25 at 09:28 -0700, Richard Farina wrote:
>   
>> reinette chatre wrote:
>>     
>>> On Thu, 2010-06-24 at 10:30 -0700, Richard Farina wrote:
>>>       
>
>   
>> I've added this patch to my system.  I'm about 5GB into a download right
>> now and here are the issues. First, and relatively quickly this line
>> showed up in dmesg:
>> [ 1589.605470] CE: hpet increased min_delta_ns to 7500 nsec
>>     
>
> I googled a bit for this string and found a few mentions where it is
> connected to system hangs. I do not know if you are running into the
> same issue as these people (did not spend much time reading through all
> the bug reports), but I did notice that sometimes the people were able
> to work around the issue by booting with a different clock source (eg.
> clocksource=jiffies) or disabling hpet (eg. hpet=disable). I am very
> unfamiliar with this aspect so if this is giving you issues I'd propose
> you go to lkml or kernel.org bugzilla.
>
>   
>> I've been carefully monitoring my system and I have loads of RAM spare.
>> Things have been much smoother but the system still freezes up for a few
>> seconds at a time. Mind you, this is an improvement as the freezes are
>> slightly less frequent and before the patch the freezes were hitting the
>> 120s hangcheck timer in the kernel and now they last like 20-60 seconds.
>>
>> I finally managed to trigger the oops again but it does seem that it
>> took much longer this time. Pasted at the bottom. (please note the
>> timestamps included are accurate to show the time difference bettween
>> the hpet warning and the oops).
>>     
>
> They seem pretty far apart so may not be related ...
>
>   
>> What else can I do to provide useful information? Or do you just want to
>> update the thresholds again?
>>     
>
> Sure ... let's try that. Patch is below. I also made things less noisy
> when it does fail in atomic.
>
>   
>> Thanks,
>> Rick Farina
>>
>> PS> The patch does look at bit odd as you change RX_LOW_WATERMARK while
>> at the same time removing one of the places that uses it.  I'm sure that
>> is on purpose just seems odd to me as I don't understand.
>>     
>
> That was on purpose. Since I increased the watermark I did not want to
> increase the threshold used to print warnings to the user also. That is
> why I just made that a hard 8 so that if memory allocation fails we will
> only start seeing the dumps when we are down to 8 buffers and not the
> new high watermark.
>
>
> ---
>  drivers/net/wireless/iwlwifi/iwl-agn-lib.c |    5 +++--
>  drivers/net/wireless/iwlwifi/iwl-fh.h      |    2 +-
>  2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> index 0f292a2..2815ee7 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> @@ -613,7 +613,8 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority)
>  		}
>  		spin_unlock_irqrestore(&rxq->lock, flags);
>  
> -		if (rxq->free_count > RX_LOW_WATERMARK)
> +		if ((priority == GFP_ATOMIC) ||
> +		    (rxq->free_count > RX_LOW_WATERMARK / 4))
>  			gfp_mask |= __GFP_NOWARN;
>  
>  		if (priv->hw_params.rx_page_order > 0)
> @@ -627,7 +628,7 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority)
>  					       "order: %d\n",
>  					       priv->hw_params.rx_page_order);
>  
> -			if ((rxq->free_count <= RX_LOW_WATERMARK) &&
> +			if ((rxq->free_count <= RX_LOW_WATERMARK / 4) &&
>  			    net_ratelimit())
>  				IWL_CRIT(priv, "Failed to alloc_pages with %s. Only %u free buffers remaining.\n",
>  					 priority == GFP_ATOMIC ?  "GFP_ATOMIC" : "GFP_KERNEL",
> diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
> index 113c366..431bc58 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-fh.h
> +++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
> @@ -426,7 +426,7 @@
>   * RX related structures and functions
>   */
>  #define RX_FREE_BUFFERS 64
> -#define RX_LOW_WATERMARK 8
> +#define RX_LOW_WATERMARK 128
>  
>  /* Size of one Rx buffer in host DRAM */
>  #define IWL_RX_BUF_SIZE_3K (3 * 1000) /* 3945 only */
>   
With the new patch it looks like this, happens within a few minutes (3?) 
of a high speed sustained transfer. (trimmed a little because I didn't 
have that much scrollback). Again, still have plenty of RAM.

Thanks,
Rick Farina

evictable:50336kB isolated(anon):0kB isolated(file):128kB 
present:2970488kB mlocked:50336kB dirty:35312kB writeback:93432kB 
mapped:86316kB shmem:17556kB slab_reclaimable:67744kB 
slab_unreclaimable:20304kB kernel_stack:224kB pagetables:4172kB 
unstable:4600kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180257.074486] lowmem_reserve[]: 0 0 1010 1010
[180257.074493] Normal free:1976kB min:2060kB low:2572kB high:3088kB 
active_anon:61492kB inactive_anon:166324kB active_file:316828kB 
inactive_file:319508kB unevictable:92kB isolated(anon):0kB 
isolated(file):132kB present:1034240kB mlocked:0kB dirty:8524kB 
writeback:48840kB mapped:60748kB shmem:42964kB slab_reclaimable:29560kB 
slab_unreclaimable:22872kB kernel_stack:2024kB pagetables:10856kB 
unstable:4084kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180257.074499] lowmem_reserve[]: 0 0 0 0
[180257.074502] DMA: 3*4kB 2*8kB 1*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15660kB
[180257.074511] DMA32: 3613*4kB 5*8kB 0*16kB 0*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 15516kB
[180257.074519] Normal: 408*4kB 9*8kB 3*16kB 1*32kB 0*64kB 0*128kB 
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2040kB
[180257.074527] 449853 total pagecache pages
[180257.074529] 760 pages in swap cache
[180257.074531] Swap cache stats: add 25204, delete 24444, find 
4822239/4822528
[180257.074533] Free swap  = 4189356kB
[180257.074534] Total swap = 4200992kB
[180257.090318] 1048560 pages RAM
[180257.090320] 83243 pages reserved
[180257.090322] 734560 pages shared
[180257.090324] 288465 pages non-shared
[180257.090410] swapper: page allocation failure. order:1, mode:0x4020
[180257.090414] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[180257.090416] Call Trace:
[180257.090418]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180257.090437]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180257.090445]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180257.090451]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180257.090455]  [<ffffffff81030c8b>] ? enqueue_task+0x5a/0x65
[180257.090462]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180257.090468]  [<ffffffff8170ab2f>] ? _raw_spin_unlock_irq+0x26/0x28
[180257.090472]  [<ffffffff81049fe0>] ? run_timer_softirq+0x1d5/0x1e4
[180257.090475]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180257.090479]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180257.090483]  [<ffffffff8105fa23>] ? tick_program_event+0x25/0x27
[180257.090487]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180257.090490]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180257.090492]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180257.090496]  [<ffffffff81019d00>] smp_apic_timer_interrupt+0x88/0x96
[180257.090500]  [<ffffffff81003313>] apic_timer_interrupt+0x13/0x20
[180257.090502]  <EOI>  [<ffffffff814f2453>] ? 
acpi_idle_enter_simple+0x150/0x17b
[180257.090509]  [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[180257.090513]  [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[180257.090517]  [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[180257.090520]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180257.090524]  [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[180257.090529]  [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[180257.090532]  [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[180257.090535]  [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[180257.090537] Mem-Info:
[180257.090539] DMA per-cpu:
[180257.090540] CPU    0: hi:    0, btch:   1 usd:   0
[180257.090542] CPU    1: hi:    0, btch:   1 usd:   0
[180257.090544] DMA32 per-cpu:
[180257.090546] CPU    0: hi:  186, btch:  31 usd:  86
[180257.090548] CPU    1: hi:  186, btch:  31 usd:  71
[180257.090549] Normal per-cpu:
[180257.090551] CPU    0: hi:  186, btch:  31 usd:  40
[180257.090553] CPU    1: hi:  186, btch:  31 usd:  82
[180257.090557] active_anon:309754 inactive_anon:135428 isolated_anon:0
[180257.090558]  active_file:210746 inactive_file:223119 isolated_file:65
[180257.090559]  unevictable:12607 dirty:10959 writeback:35568 unstable:2171
[180257.090560]  free:8276 slab_reclaimable:24326 slab_unreclaimable:10796
[180257.090561]  mapped:36766 shmem:15130 pagetables:3757 bounce:0
[180257.090567] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180257.090572] lowmem_reserve[]: 0 2900 3910 3910
[180257.090580] DMA32 free:15484kB min:5924kB low:7404kB high:8884kB 
active_anon:1177524kB inactive_anon:375388kB active_file:525980kB 
inactive_file:572964kB unevictable:50336kB isolated(anon):0kB 
isolated(file):128kB present:2970488kB mlocked:50336kB dirty:35312kB 
writeback:93432kB mapped:86316kB shmem:17556kB slab_reclaimable:67744kB 
slab_unreclaimable:20304kB kernel_stack:224kB pagetables:4172kB 
unstable:4600kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180257.090586] lowmem_reserve[]: 0 0 1010 1010
[180257.090594] Normal free:1976kB min:2060kB low:2572kB high:3088kB 
active_anon:61492kB inactive_anon:166324kB active_file:316828kB 
inactive_file:319508kB unevictable:92kB isolated(anon):0kB 
isolated(file):132kB present:1034240kB mlocked:0kB dirty:8524kB 
writeback:48840kB mapped:60748kB shmem:42964kB slab_reclaimable:29560kB 
slab_unreclaimable:22872kB kernel_stack:2024kB pagetables:10856kB 
unstable:4084kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180257.090599] lowmem_reserve[]: 0 0 0 0
[180257.090602] DMA: 3*4kB 2*8kB 1*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15660kB
[180257.090611] DMA32: 3613*4kB 7*8kB 0*16kB 0*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 15532kB
[180257.090619] Normal: 408*4kB 5*8kB 3*16kB 1*32kB 0*64kB 0*128kB 
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2008kB
[180257.090627] 449853 total pagecache pages
[180257.090628] 760 pages in swap cache
[180257.090630] Swap cache stats: add 25204, delete 24444, find 
4822239/4822528
[180257.090632] Free swap  = 4189356kB
[180257.090633] Total swap = 4200992kB
[180257.106751] 1048560 pages RAM
[180257.106753] 83243 pages reserved
[180257.106755] 734562 pages shared
[180257.106756] 288468 pages non-shared
[180260.437429] net_ratelimit: 210 callbacks suppressed
[180260.437451] __alloc_pages_slowpath: 75 callbacks suppressed
[180260.437454] kcryptd: page allocation failure. order:1, mode:0x4020
[180260.437457] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180260.437459] Call Trace:
[180260.437460]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180260.437484]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180260.437491]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180260.437498]  [<ffffffffa0500cc6>] iwl_rx_handle+0x4a6/0x4c2 [iwlagn]
[180260.437501]  [<ffffffff81005c85>] ? timer_interrupt+0x19/0x20
[180260.437508]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180260.437512]  [<ffffffff81039cb9>] ? rebalance_domains+0x72/0x149
[180260.437518]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180260.437522]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180260.437525]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180260.437528]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180260.437530]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180260.437533]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180260.437536]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180260.437540]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180260.437542]  <EOI>  [<ffffffff8102a724>] ? enc192+0xcf/0x198
[180260.437548]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180260.437552]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180260.437555]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180260.437557]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180260.437561]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180260.437564]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180260.437569]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180260.437572]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180260.437575]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180260.437579]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180260.437583]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180260.437586]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180260.437590]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180260.437593]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180260.437596]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180260.437600]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180260.437603]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180260.437606]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180260.437608] Mem-Info:
[180260.437609] DMA per-cpu:
[180260.437611] CPU    0: hi:    0, btch:   1 usd:   0
[180260.437613] CPU    1: hi:    0, btch:   1 usd:   0
[180260.437615] DMA32 per-cpu:
[180260.437616] CPU    0: hi:  186, btch:  31 usd: 174
[180260.437618] CPU    1: hi:  186, btch:  31 usd: 158
[180260.437620] Normal per-cpu:
[180260.437621] CPU    0: hi:  186, btch:  31 usd: 178
[180260.437623] CPU    1: hi:  186, btch:  31 usd: 114
[180260.437628] active_anon:309980 inactive_anon:135428 isolated_anon:0
[180260.437629]  active_file:210592 inactive_file:221018 isolated_file:98
[180260.437630]  unevictable:12607 dirty:5306 writeback:38922 unstable:3267
[180260.437631]  free:6799 slab_reclaimable:24317 slab_unreclaimable:11523
[180260.437632]  mapped:36765 shmem:13747 pagetables:3768 bounce:0
[180260.437638] DMA free:15648kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.437643] lowmem_reserve[]: 0 2900 3910 3910
[180260.437651] DMA32 free:10104kB min:5924kB low:7404kB high:8884kB 
active_anon:1177984kB inactive_anon:375388kB active_file:525728kB 
inactive_file:569016kB unevictable:50336kB isolated(anon):0kB 
isolated(file):128kB present:2970488kB mlocked:50336kB dirty:17344kB 
writeback:104872kB mapped:86316kB shmem:12824kB slab_reclaimable:67740kB 
slab_unreclaimable:22964kB kernel_stack:224kB pagetables:4212kB 
unstable:7960kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.437656] lowmem_reserve[]: 0 0 1010 1010
[180260.437664] Normal free:1444kB min:2060kB low:2572kB high:3088kB 
active_anon:61936kB inactive_anon:166324kB active_file:316464kB 
inactive_file:315052kB unevictable:92kB isolated(anon):0kB 
isolated(file):264kB present:1034240kB mlocked:0kB dirty:3880kB 
writeback:50816kB mapped:60744kB shmem:42164kB slab_reclaimable:29528kB 
slab_unreclaimable:23120kB kernel_stack:2024kB pagetables:10860kB 
unstable:5108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.437669] lowmem_reserve[]: 0 0 0 0
[180260.437672] DMA: 2*4kB 1*8kB 1*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15648kB
[180260.437681] DMA32: 2268*4kB 1*8kB 0*16kB 0*32kB 0*64kB 0*128kB 
2*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 10104kB
[180260.437688] Normal: 265*4kB 5*8kB 2*16kB 1*32kB 3*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1484kB
[180260.437696] 446228 total pagecache pages
[180260.437698] 760 pages in swap cache
[180260.437700] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180260.437701] Free swap  = 4189356kB
[180260.437703] Total swap = 4200992kB
[180260.453744] 1048560 pages RAM
[180260.453746] 83243 pages reserved
[180260.453748] 732540 pages shared
[180260.453749] 290552 pages non-shared
[180260.453754] iwlagn 0000:02:00.0: Failed to alloc_pages with 
GFP_ATOMIC. Only 0 free buffers remaining.
[180260.497376] swapper: page allocation failure. order:1, mode:0x4020
[180260.497380] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[180260.497382] Call Trace:
[180260.497384]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180260.497406]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180260.497414]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180260.497420]  [<ffffffffa0500cc6>] iwl_rx_handle+0x4a6/0x4c2 [iwlagn]
[180260.497425]  [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[180260.497429]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180260.497433]  [<ffffffff8103183b>] ? sched_slice+0x7c/0x7e
[180260.497439]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180260.497445]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180260.497449]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180260.497453]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180260.497456]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180260.497459]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180260.497462]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180260.497465]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180260.497467]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180260.497472]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180260.497474]  <EOI>  [<ffffffff814f200b>] ? acpi_idle_enter_c1+0xdc/0xf7
[180260.497481]  [<ffffffff814f1fed>] ? acpi_idle_enter_c1+0xbe/0xf7
[180260.497485]  [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[180260.497489]  [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[180260.497492]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180260.497497]  [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[180260.497501]  [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[180260.497504]  [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[180260.497507]  [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[180260.497509] Mem-Info:
[180260.497511] DMA per-cpu:
[180260.497512] CPU    0: hi:    0, btch:   1 usd:   0
[180260.497514] CPU    1: hi:    0, btch:   1 usd:   0
[180260.497516] DMA32 per-cpu:
[180260.497518] CPU    0: hi:  186, btch:  31 usd: 178
[180260.497520] CPU    1: hi:  186, btch:  31 usd: 173
[180260.497521] Normal per-cpu:
[180260.497523] CPU    0: hi:  186, btch:  31 usd: 180
[180260.497524] CPU    1: hi:  186, btch:  31 usd: 146
[180260.497529] active_anon:309980 inactive_anon:135428 isolated_anon:0
[180260.497530]  active_file:210582 inactive_file:220919 isolated_file:98
[180260.497531]  unevictable:12607 dirty:5306 writeback:38141 unstable:3304
[180260.497532]  free:6914 slab_reclaimable:24317 slab_unreclaimable:11473
[180260.497533]  mapped:36765 shmem:13747 pagetables:3768 bounce:0
[180260.497539] DMA free:15648kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.497544] lowmem_reserve[]: 0 2900 3910 3910
[180260.497552] DMA32 free:10392kB min:5924kB low:7404kB high:8884kB 
active_anon:1177984kB inactive_anon:375388kB active_file:525728kB 
inactive_file:568824kB unevictable:50336kB isolated(anon):0kB 
isolated(file):128kB present:2970488kB mlocked:50336kB dirty:17344kB 
writeback:102948kB mapped:86316kB shmem:12824kB slab_reclaimable:67740kB 
slab_unreclaimable:22764kB kernel_stack:224kB pagetables:4212kB 
unstable:8108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.497558] lowmem_reserve[]: 0 0 1010 1010
[180260.497565] Normal free:1616kB min:2060kB low:2572kB high:3088kB 
active_anon:61936kB inactive_anon:166324kB active_file:316424kB 
inactive_file:314848kB unevictable:92kB isolated(anon):0kB 
isolated(file):264kB present:1034240kB mlocked:0kB dirty:3880kB 
writeback:49616kB mapped:60744kB shmem:42164kB slab_reclaimable:29528kB 
slab_unreclaimable:23120kB kernel_stack:2024kB pagetables:10860kB 
unstable:5108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.497571] lowmem_reserve[]: 0 0 0 0
[180260.497574] DMA: 2*4kB 1*8kB 1*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15648kB
[180260.497582] DMA32: 2344*4kB 2*8kB 1*16kB 1*32kB 1*64kB 1*128kB 
1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 10400kB
[180260.497589] Normal: 320*4kB 0*8kB 1*16kB 0*32kB 3*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1616kB
[180260.497597] 446141 total pagecache pages
[180260.497598] 760 pages in swap cache
[180260.497601] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180260.497602] Free swap  = 4189356kB
[180260.497604] Total swap = 4200992kB
[180260.514797] 1048560 pages RAM
[180260.514799] 83243 pages reserved
[180260.514800] 732516 pages shared
[180260.514801] 290458 pages non-shared
[180260.514805] iwlagn 0000:02:00.0: Failed to alloc_pages with 
GFP_ATOMIC. Only 1 free buffers remaining.
[180260.514827] kcryptd: page allocation failure. order:1, mode:0x4020
[180260.514831] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180260.514833] Call Trace:
[180260.514835]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180260.514862]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180260.514867]  [<ffffffff8145daa7>] ? blk_run_queue+0x30/0x35
[180260.514873]  [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[180260.514880]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180260.514886]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180260.514890]  [<ffffffff8146abb6>] ? cpumask_next_and+0x2c/0x39
[180260.514894]  [<ffffffff8105bb55>] ? ktime_get_ts+0xad/0xba
[180260.514898]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180260.514904]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180260.514911]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180260.514915]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180260.514919]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180260.514922]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180260.514926]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180260.514929]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180260.514932]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180260.514934]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180260.514939]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180260.514941]  <EOI>  [<ffffffff8102a5a9>] ? aes_enc_blk+0x131/0x1dd
[180260.514948]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180260.514952]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180260.514955]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180260.514957]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180260.514960]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180260.514965]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180260.514970]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180260.514974]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180260.514977]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180260.514981]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180260.514985]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180260.514988]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180260.514992]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180260.514995]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180260.514997]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180260.515001]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180260.515004]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180260.515007]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180260.515010] Mem-Info:
[180260.515011] DMA per-cpu:
[180260.515014] CPU    0: hi:    0, btch:   1 usd:   0
[180260.515016] CPU    1: hi:    0, btch:   1 usd:   0
[180260.515018] DMA32 per-cpu:
[180260.515019] CPU    0: hi:  186, btch:  31 usd: 178
[180260.515021] CPU    1: hi:  186, btch:  31 usd: 176
[180260.515023] Normal per-cpu:
[180260.515025] CPU    0: hi:  186, btch:  31 usd: 180
[180260.515026] CPU    1: hi:  186, btch:  31 usd: 167
[180260.515031] active_anon:309980 inactive_anon:135428 isolated_anon:0
[180260.515032]  active_file:210582 inactive_file:220919 isolated_file:98
[180260.515033]  unevictable:12607 dirty:5306 writeback:38141 unstable:3304
[180260.515034]  free:6511 slab_reclaimable:24317 slab_unreclaimable:11473
[180260.515035]  mapped:36765 shmem:13747 pagetables:3768 bounce:0
[180260.515042] DMA free:15648kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.515046] lowmem_reserve[]: 0 2900 3910 3910
[180260.515055] DMA32 free:8904kB min:5924kB low:7404kB high:8884kB 
active_anon:1177984kB inactive_anon:375388kB active_file:525728kB 
inactive_file:568824kB unevictable:50336kB isolated(anon):0kB 
isolated(file):128kB present:2970488kB mlocked:50336kB dirty:17344kB 
writeback:102948kB mapped:86316kB shmem:12824kB slab_reclaimable:67740kB 
slab_unreclaimable:22764kB kernel_stack:224kB pagetables:4212kB 
unstable:8108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.515060] lowmem_reserve[]: 0 0 1010 1010
[180260.515068] Normal free:1492kB min:2060kB low:2572kB high:3088kB 
active_anon:61936kB inactive_anon:166324kB active_file:316424kB 
inactive_file:314848kB unevictable:92kB isolated(anon):0kB 
isolated(file):264kB present:1034240kB mlocked:0kB dirty:3880kB 
writeback:49616kB mapped:60744kB shmem:42164kB slab_reclaimable:29528kB 
slab_unreclaimable:23120kB kernel_stack:2024kB pagetables:10860kB 
unstable:5108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.515074] lowmem_reserve[]: 0 0 0 0
[180260.515077] DMA: 2*4kB 1*8kB 1*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15648kB
[180260.515086] DMA32: 1972*4kB 2*8kB 1*16kB 1*32kB 1*64kB 1*128kB 
1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 8912kB
[180260.515094] Normal: 289*4kB 0*8kB 1*16kB 0*32kB 3*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1492kB
[180260.515102] 446141 total pagecache pages
[180260.515104] 760 pages in swap cache
[180260.515106] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180260.515108] Free swap  = 4189356kB
[180260.515109] Total swap = 4200992kB
[180260.531548] 1048560 pages RAM
[180260.531550] 83243 pages reserved
[180260.531551] 732548 pages shared
[180260.531553] 290661 pages non-shared
[180260.531557] iwlagn 0000:02:00.0: Failed to alloc_pages with 
GFP_ATOMIC. Only 1 free buffers remaining.
[180260.531629] iwlagn 0000:02:00.0: Failed to alloc_pages with 
GFP_ATOMIC. Only 47 free buffers remaining.
[180260.531661] kcryptd: page allocation failure. order:1, mode:0x4020
[180260.531664] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180260.531666] Call Trace:
[180260.531668]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180260.531690]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180260.531697]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180260.531703]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180260.531708]  [<ffffffff8146abb6>] ? cpumask_next_and+0x2c/0x39
[180260.531712]  [<ffffffff8105bb55>] ? ktime_get_ts+0xad/0xba
[180260.531716]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180260.531722]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180260.531729]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180260.531733]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180260.531737]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180260.531740]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180260.531744]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180260.531747]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180260.531750]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180260.531752]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180260.531758]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180260.531760]  <EOI>  [<ffffffff8102a5a9>] ? aes_enc_blk+0x131/0x1dd
[180260.531766]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180260.531771]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180260.531773]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180260.531776]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180260.531779]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180260.531784]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180260.531790]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180260.531793]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180260.531796]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180260.531801]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180260.531804]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180260.531808]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180260.531811]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180260.531815]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180260.531817]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180260.531821]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180260.531824]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180260.531828]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180260.531829] Mem-Info:
[180260.531831] DMA per-cpu:
[180260.531833] CPU    0: hi:    0, btch:   1 usd:   0
[180260.531835] CPU    1: hi:    0, btch:   1 usd:   0
[180260.531837] DMA32 per-cpu:
[180260.531839] CPU    0: hi:  186, btch:  31 usd: 181
[180260.531841] CPU    1: hi:  186, btch:  31 usd: 176
[180260.531842] Normal per-cpu:
[180260.531844] CPU    0: hi:  186, btch:  31 usd: 181
[180260.531846] CPU    1: hi:  186, btch:  31 usd: 167
[180260.531850] active_anon:309980 inactive_anon:135428 isolated_anon:0
[180260.531851]  active_file:210550 inactive_file:220758 isolated_file:130
[180260.531852]  unevictable:12607 dirty:5306 writeback:38016 unstable:3304
[180260.531853]  free:6745 slab_reclaimable:24317 slab_unreclaimable:11448
[180260.531854]  mapped:36765 shmem:13747 pagetables:3768 bounce:0
[180260.531861] DMA free:15648kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.531865] lowmem_reserve[]: 0 2900 3910 3910
[180260.531873] DMA32 free:9716kB min:5924kB low:7404kB high:8884kB 
active_anon:1177984kB inactive_anon:375388kB active_file:525728kB 
inactive_file:568308kB unevictable:50336kB isolated(anon):0kB 
isolated(file):128kB present:2970488kB mlocked:50336kB dirty:17344kB 
writeback:102948kB mapped:86316kB shmem:12824kB slab_reclaimable:67740kB 
slab_unreclaimable:22664kB kernel_stack:224kB pagetables:4212kB 
unstable:8108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180260.531879] lowmem_reserve[]: 0 0 1010 1010
[180260.531887] Normal free:1616kB min:2060kB low:2572kB high:3088kB 
active_anon:61936kB inactive_anon:166324kB active_file:316296kB 
inactive_file:314720kB unevictable:92kB isolated(anon):0kB 
isolated(file):392kB present:1034240kB mlocked:0kB dirty:3880kB 
writeback:49116kB mapped:60744kB shmem:42164kB slab_reclaimable:29528kB 
slab_unreclaimable:23120kB kernel_stack:2024kB pagetables:10860kB 
unstable:5108kB bounce:0kB writeback_tmp:0kB pages_scanned:32 
all_unreclaimable? no
[180260.531893] lowmem_reserve[]: 0 0 0 0
[180260.531896] DMA: 2*4kB 1*8kB 1*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15648kB
[180260.531905] DMA32: 2175*4kB 4*8kB 1*16kB 1*32kB 1*64kB 1*128kB 
1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 9740kB
[180260.531912] Normal: 320*4kB 0*8kB 1*16kB 0*32kB 3*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1616kB
[180260.531921] 446005 total pagecache pages
[180260.531922] 760 pages in swap cache
[180260.531924] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180260.531926] Free swap  = 4189356kB
[180260.531927] Total swap = 4200992kB
[180260.549317] 1048560 pages RAM
[180260.549319] 83243 pages reserved
[180260.549321] 732388 pages shared
[180260.549322] 290175 pages non-shared
[180261.205061] swapper: page allocation failure. order:1, mode:0x4020
[180261.205065] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[180261.205067] Call Trace:
[180261.205069]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180261.205090]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180261.205097]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180261.205104]  [<ffffffffa0500cc6>] iwl_rx_handle+0x4a6/0x4c2 [iwlagn]
[180261.205108]  [<ffffffff8162c815>] ? __kfree_skb+0x78/0x7c
[180261.205114]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180261.205117]  [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[180261.205124]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180261.205128]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180261.205131]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180261.205134]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180261.205137]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180261.205140]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180261.205143]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180261.205147]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180261.205149]  <EOI>  [<ffffffff814f2453>] ? 
acpi_idle_enter_simple+0x150/0x17b
[180261.205156]  [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[180261.205160]  [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[180261.205164]  [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[180261.205167]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180261.205171]  [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[180261.205176]  [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[180261.205179]  [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[180261.205182]  [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[180261.205184] Mem-Info:
[180261.205185] DMA per-cpu:
[180261.205187] CPU    0: hi:    0, btch:   1 usd:   0
[180261.205189] CPU    1: hi:    0, btch:   1 usd:   0
[180261.205191] DMA32 per-cpu:
[180261.205193] CPU    0: hi:  186, btch:  31 usd:  42
[180261.205195] CPU    1: hi:  186, btch:  31 usd:  41
[180261.205196] Normal per-cpu:
[180261.205198] CPU    0: hi:  186, btch:  31 usd:  12
[180261.205199] CPU    1: hi:  186, btch:  31 usd:  58
[180261.205204] active_anon:314478 inactive_anon:135428 isolated_anon:0
[180261.205205]  active_file:210581 inactive_file:220106 isolated_file:98
[180261.205206]  unevictable:12607 dirty:5450 writeback:34188 unstable:3583
[180261.205207]  free:6738 slab_reclaimable:24306 slab_unreclaimable:10788
[180261.205208]  mapped:36765 shmem:17765 pagetables:3768 bounce:0
[180261.205214] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180261.205219] lowmem_reserve[]: 0 2900 3910 3910
[180261.205227] DMA32 free:9272kB min:5924kB low:7404kB high:8884kB 
active_anon:1190408kB inactive_anon:375388kB active_file:525744kB 
inactive_file:566496kB unevictable:50336kB isolated(anon):0kB 
isolated(file):128kB present:2970488kB mlocked:50336kB dirty:17584kB 
writeback:88892kB mapped:86316kB shmem:23864kB slab_reclaimable:67736kB 
slab_unreclaimable:20088kB kernel_stack:224kB pagetables:4212kB 
unstable:9224kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180261.205233] lowmem_reserve[]: 0 0 1010 1010
[180261.205240] Normal free:2036kB min:2060kB low:2572kB high:3088kB 
active_anon:67504kB inactive_anon:166324kB active_file:316404kB 
inactive_file:313924kB unevictable:92kB isolated(anon):0kB 
isolated(file):264kB present:1034240kB mlocked:0kB dirty:4216kB 
writeback:47860kB mapped:60744kB shmem:47196kB slab_reclaimable:29488kB 
slab_unreclaimable:23056kB kernel_stack:2024kB pagetables:10860kB 
unstable:5108kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180261.205246] lowmem_reserve[]: 0 0 0 0
[180261.205249] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[180261.205257] DMA32: 2041*4kB 1*8kB 1*16kB 1*32kB 0*64kB 1*128kB 
2*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 9372kB
[180261.205264] Normal: 435*4kB 3*8kB 2*16kB 1*32kB 2*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2084kB
[180261.205272] 449361 total pagecache pages
[180261.205274] 760 pages in swap cache
[180261.205276] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180261.205278] Free swap  = 4189356kB
[180261.205279] Total swap = 4200992kB
[180261.221787] 1048560 pages RAM
[180261.221790] 83243 pages reserved
[180261.221791] 736242 pages shared
[180261.221792] 287070 pages non-shared
[180265.320455] swapper: page allocation failure. order:1, mode:0x4020
[180265.320459] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[180265.320461] Call Trace:
[180265.320463]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180265.320487]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180265.320495]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180265.320501]  [<ffffffffa0500cc6>] iwl_rx_handle+0x4a6/0x4c2 [iwlagn]
[180265.320505]  [<ffffffff81005c85>] ? timer_interrupt+0x19/0x20
[180265.320511]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180265.320518]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180265.320521]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180265.320524]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180265.320527]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180265.320530]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180265.320533]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180265.320535]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180265.320541]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180265.320542]  <EOI>  [<ffffffff814f2453>] ? 
acpi_idle_enter_simple+0x150/0x17b
[180265.320550]  [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[180265.320554]  [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[180265.320558]  [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[180265.320561]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180265.320566]  [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[180265.320571]  [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[180265.320574]  [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[180265.320577]  [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[180265.320579] Mem-Info:
[180265.320581] DMA per-cpu:
[180265.320583] CPU    0: hi:    0, btch:   1 usd:   0
[180265.320585] CPU    1: hi:    0, btch:   1 usd:   0
[180265.320586] DMA32 per-cpu:
[180265.320588] CPU    0: hi:  186, btch:  31 usd: 173
[180265.320590] CPU    1: hi:  186, btch:  31 usd: 164
[180265.320591] Normal per-cpu:
[180265.320593] CPU    0: hi:  186, btch:  31 usd: 157
[180265.320595] CPU    1: hi:  186, btch:  31 usd: 156
[180265.320599] active_anon:314278 inactive_anon:135428 isolated_anon:0
[180265.320600]  active_file:210404 inactive_file:217497 isolated_file:195
[180265.320601]  unevictable:12607 dirty:151 writeback:36438 unstable:5590
[180265.320602]  free:6837 slab_reclaimable:24305 slab_unreclaimable:12419
[180265.320603]  mapped:36811 shmem:17535 pagetables:3768 bounce:0
[180265.320610] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.320615] lowmem_reserve[]: 0 2900 3910 3910
[180265.320623] DMA32 free:10164kB min:5924kB low:7404kB high:8884kB 
active_anon:1189176kB inactive_anon:375388kB active_file:525308kB 
inactive_file:559316kB unevictable:50336kB isolated(anon):0kB 
isolated(file):384kB present:2970488kB mlocked:50336kB dirty:356kB 
writeback:96060kB mapped:86432kB shmem:22560kB slab_reclaimable:67732kB 
slab_unreclaimable:24920kB kernel_stack:224kB pagetables:4212kB 
unstable:16328kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.320628] lowmem_reserve[]: 0 0 1010 1010
[180265.320636] Normal free:1540kB min:2060kB low:2572kB high:3088kB 
active_anon:67936kB inactive_anon:166324kB active_file:316132kB 
inactive_file:310668kB unevictable:92kB isolated(anon):0kB 
isolated(file):396kB present:1034240kB mlocked:0kB dirty:248kB 
writeback:49692kB mapped:60812kB shmem:47580kB slab_reclaimable:29488kB 
slab_unreclaimable:24748kB kernel_stack:2024kB pagetables:10860kB 
unstable:6032kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.320641] lowmem_reserve[]: 0 0 0 0
[180265.320644] DMA: 3*4kB 1*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15636kB
[180265.320652] DMA32: 2297*4kB 38*8kB 31*16kB 0*32kB 1*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10180kB
[180265.320660] Normal: 303*4kB 27*8kB 3*16kB 2*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1540kB
[180265.320668] 446387 total pagecache pages
[180265.320669] 760 pages in swap cache
[180265.320671] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180265.320673] Free swap  = 4189356kB
[180265.320674] Total swap = 4200992kB
[180265.338273] 1048560 pages RAM
[180265.338276] 83243 pages reserved
[180265.338277] 733543 pages shared
[180265.338279] 287247 pages non-shared
[180265.338306] kcryptd: page allocation failure. order:1, mode:0x4020
[180265.338311] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180265.338313] Call Trace:
[180265.338315]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180265.338341]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180265.338346]  [<ffffffff8146abb6>] ? cpumask_next_and+0x2c/0x39
[180265.338353]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180265.338359]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180265.338364]  [<ffffffff8103b999>] ? check_preempt_wakeup+0x12a/0x197
[180265.338367]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180265.338373]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180265.338380]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180265.338384]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180265.338388]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180265.338391]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180265.338395]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180265.338398]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180265.338401]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180265.338404]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180265.338409]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180265.338410]  <EOI>  [<ffffffff8102af4a>] ? enc128+0x75d/0x80b
[180265.338416]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180265.338421]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180265.338423]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.338426]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.338429]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180265.338433]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180265.338437]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180265.338440]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180265.338444]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180265.338448]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180265.338452]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180265.338455]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180265.338459]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180265.338462]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180265.338464]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180265.338468]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180265.338471]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180265.338474]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180265.338476] Mem-Info:
[180265.338478] DMA per-cpu:
[180265.338480] CPU    0: hi:    0, btch:   1 usd:   0
[180265.338482] CPU    1: hi:    0, btch:   1 usd:   0
[180265.338483] DMA32 per-cpu:
[180265.338485] CPU    0: hi:  186, btch:  31 usd: 174
[180265.338487] CPU    1: hi:  186, btch:  31 usd: 190
[180265.338488] Normal per-cpu:
[180265.338490] CPU    0: hi:  186, btch:  31 usd: 185
[180265.338492] CPU    1: hi:  186, btch:  31 usd: 174
[180265.338496] active_anon:314278 inactive_anon:135428 isolated_anon:0
[180265.338497]  active_file:210404 inactive_file:217497 isolated_file:195
[180265.338498]  unevictable:12607 dirty:151 writeback:36351 unstable:5590
[180265.338499]  free:6496 slab_reclaimable:24305 slab_unreclaimable:12419
[180265.338500]  mapped:36811 shmem:17535 pagetables:3768 bounce:0
[180265.338507] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.338511] lowmem_reserve[]: 0 2900 3910 3910
[180265.338519] DMA32 free:8676kB min:5924kB low:7404kB high:8884kB 
active_anon:1189176kB inactive_anon:375388kB active_file:525308kB 
inactive_file:559316kB unevictable:50336kB isolated(anon):0kB 
isolated(file):384kB present:2970488kB mlocked:50336kB dirty:356kB 
writeback:95912kB mapped:86432kB shmem:22560kB slab_reclaimable:67732kB 
slab_unreclaimable:24920kB kernel_stack:224kB pagetables:4212kB 
unstable:16328kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.338525] lowmem_reserve[]: 0 0 1010 1010
[180265.338532] Normal free:1664kB min:2060kB low:2572kB high:3088kB 
active_anon:67936kB inactive_anon:166324kB active_file:316132kB 
inactive_file:310668kB unevictable:92kB isolated(anon):0kB 
isolated(file):396kB present:1034240kB mlocked:0kB dirty:248kB 
writeback:49492kB mapped:60812kB shmem:47580kB slab_reclaimable:29488kB 
slab_unreclaimable:24748kB kernel_stack:2024kB pagetables:10860kB 
unstable:6032kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.338538] lowmem_reserve[]: 0 0 0 0
[180265.338541] DMA: 3*4kB 1*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15636kB
[180265.338549] DMA32: 2017*4kB 2*8kB 26*16kB 0*32kB 1*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 8692kB
[180265.338556] Normal: 346*4kB 21*8kB 3*16kB 2*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1664kB
[180265.338564] 446387 total pagecache pages
[180265.338566] 760 pages in swap cache
[180265.338568] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180265.338570] Free swap  = 4189356kB
[180265.338571] Total swap = 4200992kB
[180265.355304] 1048560 pages RAM
[180265.355306] 83243 pages reserved
[180265.355308] 733478 pages shared
[180265.355309] 287161 pages non-shared
[180265.355392] kcryptd: page allocation failure. order:1, mode:0x4020
[180265.355396] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180265.355398] Call Trace:
[180265.355399]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180265.355418]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180265.355425]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180265.355431]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180265.355436]  [<ffffffff8103b999>] ? check_preempt_wakeup+0x12a/0x197
[180265.355439]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180265.355445]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180265.355451]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180265.355455]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180265.355459]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180265.355462]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180265.355465]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180265.355468]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180265.355471]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180265.355474]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180265.355478]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180265.355480]  <EOI>  [<ffffffff8102af4a>] ? enc128+0x75d/0x80b
[180265.355486]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180265.355490]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180265.355493]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.355496]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.355499]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180265.355503]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180265.355507]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180265.355510]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180265.355514]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180265.355518]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180265.355521]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180265.355524]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180265.355528]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180265.355531]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180265.355534]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180265.355538]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180265.355541]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180265.355544]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180265.355546] Mem-Info:
[180265.355547] DMA per-cpu:
[180265.355549] CPU    0: hi:    0, btch:   1 usd:   0
[180265.355551] CPU    1: hi:    0, btch:   1 usd:   0
[180265.355553] DMA32 per-cpu:
[180265.355554] CPU    0: hi:  186, btch:  31 usd: 181
[180265.355556] CPU    1: hi:  186, btch:  31 usd: 190
[180265.355558] Normal per-cpu:
[180265.355559] CPU    0: hi:  186, btch:  31 usd: 165
[180265.355561] CPU    1: hi:  186, btch:  31 usd: 174
[180265.355566] active_anon:314278 inactive_anon:135428 isolated_anon:0
[180265.355567]  active_file:210405 inactive_file:217304 isolated_file:195
[180265.355568]  unevictable:12607 dirty:151 writeback:36151 unstable:5615
[180265.355569]  free:6849 slab_reclaimable:24305 slab_unreclaimable:12369
[180265.355570]  mapped:36811 shmem:17535 pagetables:3768 bounce:0
[180265.355576] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.355581] lowmem_reserve[]: 0 2900 3910 3910
[180265.355589] DMA32 free:9684kB min:5924kB low:7404kB high:8884kB 
active_anon:1189176kB inactive_anon:375388kB active_file:525308kB 
inactive_file:558804kB unevictable:50336kB isolated(anon):0kB 
isolated(file):384kB present:2970488kB mlocked:50336kB dirty:356kB 
writeback:95912kB mapped:86432kB shmem:22560kB slab_reclaimable:67732kB 
slab_unreclaimable:24720kB kernel_stack:224kB pagetables:4212kB 
unstable:16328kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.355595] lowmem_reserve[]: 0 0 1010 1010
[180265.355602] Normal free:2068kB min:2060kB low:2572kB high:3088kB 
active_anon:67936kB inactive_anon:166324kB active_file:316136kB 
inactive_file:310408kB unevictable:92kB isolated(anon):0kB 
isolated(file):396kB present:1034240kB mlocked:0kB dirty:248kB 
writeback:48692kB mapped:60812kB shmem:47580kB slab_reclaimable:29488kB 
slab_unreclaimable:24748kB kernel_stack:2024kB pagetables:10860kB 
unstable:6132kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.355608] lowmem_reserve[]: 0 0 0 0
[180265.355611] DMA: 3*4kB 1*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15636kB
[180265.355620] DMA32: 2177*4kB 44*8kB 29*16kB 0*32kB 1*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 9716kB
[180265.355628] Normal: 419*4kB 35*8kB 3*16kB 2*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2068kB
[180265.355635] 446164 total pagecache pages
[180265.355637] 760 pages in swap cache
[180265.355639] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180265.355641] Free swap  = 4189356kB
[180265.355642] Total swap = 4200992kB
[180265.372574] 1048560 pages RAM
[180265.372576] 83243 pages reserved
[180265.372577] 733479 pages shared
[180265.372579] 287189 pages non-shared
[180265.372613] kcryptd: page allocation failure. order:1, mode:0x4020
[180265.372616] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180265.372618] Call Trace:
[180265.372619]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180265.372638]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180265.372642]  [<ffffffff810513ca>] ? queue_work+0x4b/0x55
[180265.372649]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180265.372655]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180265.372659]  [<ffffffff8103b999>] ? check_preempt_wakeup+0x12a/0x197
[180265.372662]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180265.372668]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180265.372675]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180265.372678]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180265.372682]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180265.372685]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180265.372688]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180265.372691]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180265.372694]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180265.372697]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180265.372701]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180265.372703]  <EOI>  [<ffffffff8102af4a>] ? enc128+0x75d/0x80b
[180265.372709]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180265.372713]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180265.372716]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.372718]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.372721]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180265.372725]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180265.372730]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180265.372733]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180265.372736]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180265.372740]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180265.372743]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180265.372746]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180265.372750]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180265.372753]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180265.372756]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180265.372760]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180265.372763]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180265.372766]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180265.372768] Mem-Info:
[180265.372769] DMA per-cpu:
[180265.372771] CPU    0: hi:    0, btch:   1 usd:   0
[180265.372773] CPU    1: hi:    0, btch:   1 usd:   0
[180265.372775] DMA32 per-cpu:
[180265.372776] CPU    0: hi:  186, btch:  31 usd: 168
[180265.372778] CPU    1: hi:  186, btch:  31 usd: 190
[180265.372780] Normal per-cpu:
[180265.372781] CPU    0: hi:  186, btch:  31 usd: 157
[180265.372783] CPU    1: hi:  186, btch:  31 usd: 174
[180265.372788] active_anon:314278 inactive_anon:135428 isolated_anon:0
[180265.372789]  active_file:210405 inactive_file:217240 isolated_file:195
[180265.372790]  unevictable:12607 dirty:151 writeback:36114 unstable:5615
[180265.372791]  free:6973 slab_reclaimable:24305 slab_unreclaimable:12369
[180265.372792]  mapped:36811 shmem:17535 pagetables:3768 bounce:0
[180265.372798] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.372803] lowmem_reserve[]: 0 2900 3910 3910
[180265.372811] DMA32 free:10180kB min:5924kB low:7404kB high:8884kB 
active_anon:1189176kB inactive_anon:375388kB active_file:525308kB 
inactive_file:558548kB unevictable:50336kB isolated(anon):0kB 
isolated(file):384kB present:2970488kB mlocked:50336kB dirty:356kB 
writeback:95764kB mapped:86432kB shmem:22560kB slab_reclaimable:67732kB 
slab_unreclaimable:24720kB kernel_stack:224kB pagetables:4212kB 
unstable:16328kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.372817] lowmem_reserve[]: 0 0 1010 1010
[180265.372824] Normal free:2068kB min:2060kB low:2572kB high:3088kB 
active_anon:67936kB inactive_anon:166324kB active_file:316136kB 
inactive_file:310408kB unevictable:92kB isolated(anon):0kB 
isolated(file):396kB present:1034240kB mlocked:0kB dirty:248kB 
writeback:48692kB mapped:60812kB shmem:47580kB slab_reclaimable:29488kB 
slab_unreclaimable:24748kB kernel_stack:2024kB pagetables:10860kB 
unstable:6132kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.372830] lowmem_reserve[]: 0 0 0 0
[180265.372833] DMA: 3*4kB 1*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15636kB
[180265.372841] DMA32: 2275*4kB 59*8kB 29*16kB 0*32kB 1*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10228kB
[180265.372849] Normal: 419*4kB 35*8kB 3*16kB 2*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2068kB
[180265.372858] 446127 total pagecache pages
[180265.372859] 760 pages in swap cache
[180265.372861] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180265.372863] Free swap  = 4189356kB
[180265.372865] Total swap = 4200992kB
[180265.388823] 1048560 pages RAM
[180265.388825] 83243 pages reserved
[180265.388827] 733485 pages shared
[180265.388828] 287077 pages non-shared
[180265.388877] kcryptd: page allocation failure. order:1, mode:0x4020
[180265.388881] Pid: 4943, comm: kcryptd Not tainted 2.6.34-pentoo-r2 #2
[180265.388883] Call Trace:
[180265.388885]  <IRQ>  [<ffffffff810984c0>] 
__alloc_pages_nodemask+0x571/0x5b9
[180265.388907]  [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[180265.388914]  [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23 
[iwlagn]
[180265.388920]  [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[180265.388925]  [<ffffffff8103b999>] ? check_preempt_wakeup+0x12a/0x197
[180265.388928]  [<ffffffff8103b557>] ? update_curr+0xbe/0xfa
[180265.388934]  [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[180265.388941]  [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[180265.388945]  [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[180265.388949]  [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[180265.388952]  [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[180265.388955]  [<ffffffff8100384c>] call_softirq+0x1c/0x28
[180265.388959]  [<ffffffff8100550b>] do_softirq+0x33/0x68
[180265.388961]  [<ffffffff810453d4>] irq_exit+0x36/0x87
[180265.388964]  [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[180265.388969]  [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[180265.388971]  <EOI>  [<ffffffff8102af4a>] ? enc128+0x75d/0x80b
[180265.388977]  [<ffffffff8102bba3>] ? aes_encrypt+0xd/0xf
[180265.388982]  [<ffffffff81445457>] ? crypt+0xbc/0x10f
[180265.388984]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.388987]  [<ffffffff8102bb96>] ? aes_encrypt+0x0/0xf
[180265.388990]  [<ffffffff81445534>] ? encrypt+0x44/0x46
[180265.388995]  [<ffffffff81432ddb>] ? async_encrypt+0x37/0x39
[180265.388999]  [<ffffffff815f5dac>] ? crypt_iv_essiv_gen+0x21/0x25
[180265.389003]  [<ffffffff815f663c>] ? crypt_convert+0x201/0x27a
[180265.389006]  [<ffffffff815f69f8>] ? kcryptd_crypt+0x343/0x361
[180265.389011]  [<ffffffff81050a73>] ? worker_thread+0x15d/0x1f3
[180265.389014]  [<ffffffff815f66b5>] ? kcryptd_crypt+0x0/0x361
[180265.389018]  [<ffffffff810543c1>] ? autoremove_wake_function+0x0/0x34
[180265.389021]  [<ffffffff8170ab58>] ? 
_raw_spin_unlock_irqrestore+0x27/0x29
[180265.389024]  [<ffffffff81050916>] ? worker_thread+0x0/0x1f3
[180265.389027]  [<ffffffff81053fd3>] ? kthread+0x7a/0x82
[180265.389032]  [<ffffffff81003754>] ? kernel_thread_helper+0x4/0x10
[180265.389034]  [<ffffffff81053f59>] ? kthread+0x0/0x82
[180265.389038]  [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[180265.389039] Mem-Info:
[180265.389041] DMA per-cpu:
[180265.389043] CPU    0: hi:    0, btch:   1 usd:   0
[180265.389045] CPU    1: hi:    0, btch:   1 usd:   0
[180265.389047] DMA32 per-cpu:
[180265.389048] CPU    0: hi:  186, btch:  31 usd: 167
[180265.389050] CPU    1: hi:  186, btch:  31 usd: 190
[180265.389052] Normal per-cpu:
[180265.389053] CPU    0: hi:  186, btch:  31 usd: 158
[180265.389055] CPU    1: hi:  186, btch:  31 usd: 174
[180265.389060] active_anon:314278 inactive_anon:135428 isolated_anon:0
[180265.389061]  active_file:210405 inactive_file:217240 isolated_file:195
[180265.389062]  unevictable:12607 dirty:151 writeback:36040 unstable:5615
[180265.389063]  free:7035 slab_reclaimable:24305 slab_unreclaimable:12369
[180265.389064]  mapped:36811 shmem:17535 pagetables:3768 bounce:0
[180265.389070] DMA free:15644kB min:28kB low:32kB high:40kB 
active_anon:0kB inactive_anon:0kB active_file:176kB inactive_file:4kB 
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB 
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB 
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB 
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.389076] lowmem_reserve[]: 0 2900 3910 3910
[180265.389086] DMA32 free:10428kB min:5924kB low:7404kB high:8884kB 
active_anon:1189176kB inactive_anon:375388kB active_file:525308kB 
inactive_file:558548kB unevictable:50336kB isolated(anon):0kB 
isolated(file):384kB present:2970488kB mlocked:50336kB dirty:356kB 
writeback:95468kB mapped:86432kB shmem:22560kB slab_reclaimable:67732kB 
slab_unreclaimable:24720kB kernel_stack:224kB pagetables:4212kB 
unstable:16328kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.389092] lowmem_reserve[]: 0 0 1010 1010
[180265.389102] Normal free:2068kB min:2060kB low:2572kB high:3088kB 
active_anon:67936kB inactive_anon:166324kB active_file:316136kB 
inactive_file:310408kB unevictable:92kB isolated(anon):0kB 
isolated(file):396kB present:1034240kB mlocked:0kB dirty:248kB 
writeback:48692kB mapped:60812kB shmem:47580kB slab_reclaimable:29488kB 
slab_unreclaimable:24748kB kernel_stack:2024kB pagetables:10860kB 
unstable:6132kB bounce:0kB writeback_tmp:0kB pages_scanned:0 
all_unreclaimable? no
[180265.389107] lowmem_reserve[]: 0 0 0 0
[180265.389112] DMA: 3*4kB 1*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB 
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15636kB
[180265.389134] DMA32: 2331*4kB 64*8kB 29*16kB 0*32kB 1*64kB 1*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10492kB
[180265.389146] Normal: 419*4kB 35*8kB 3*16kB 2*32kB 0*64kB 0*128kB 
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2068kB
[180265.389159] 446127 total pagecache pages
[180265.389161] 760 pages in swap cache
[180265.389163] Swap cache stats: add 25204, delete 24444, find 
4822302/4822591
[180265.389165] Free swap  = 4189356kB
[180265.389167] Total swap = 4200992kB
[180265.405671] 1048560 pages RAM
[180265.405674] 83243 pages reserved
[180265.405675] 733491 pages shared
[180265.405677] 287012 pages non-shared
[180265.460643] net_ratelimit: 30 callbacks suppressed
[180265.460665] iwlagn 0000:02:00.0: Failed to alloc_pages with 
GFP_ATOMIC. Only 5 free buffers remaining.
[180265.581141] iwlagn 0000:02:00.0: Failed to alloc_pages with 
GFP_ATOMIC. Only 40 free buffers remaining.


^ permalink raw reply

* Re: rt2x00 & mac80211: correct usage of ieee80211_beacon_get_tim?
From: Helmut Schaa @ 2010-06-27 19:00 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, Ivo van Doorn, Gertjan van Wingerde
In-Reply-To: <1277626862.3684.3.camel@jlt3.sipsolutions.net>

Am Sonntag 27 Juni 2010 schrieb Johannes Berg:
> On Fri, 2010-06-25 at 18:01 +0200, Helmut Schaa wrote:
> > Am Donnerstag 24 Juni 2010 schrieb Johannes Berg:
> > >  b) You need to get a new beacon frame from mac80211 only when it
> > >     changes. You can do this from set_tim(). HOWEVER: since you're not
> > >     getting a new one from mac80211 all the time anyway, you NEED to
> > >     have the driver or firmware overwrite the DTIM count, like b43's
> > >     firmware for example will do.
> > 
> > And the broad- and multicast buffering also needs to be done in the driver
> > (when the fw/hw cannot handle it) as mac80211 uses its own DTIM count for
> > deciding when to "release" buffered frames to the driver.
> 
> Well, yes, but I don't get it. Are you trying to conjure a third way of
> doing things? How would you like it to work?
> 
> I don't understand why you expect to have a correct DTIM count field
> when you don't pull every beacon from mac80211.

rt2x00 pulls every beacon. But not directly _prior_ to transmission as the 
hw lacks an interrupt for that. Instead the next beacon gets pulled _after_
the beacondone interrupt (which is obviously triggered directly after the
beacon was sent). So, all TIM changes that happen during the next beacon
interval won't be included in the next beacon. Hence, rt2x00 also implements
the set_tim callback and updates the beacon through these as well.

This gives us a correct TIM but as I explained earlier breaks the DTIM
count (and thus bc/mc buffering which is done in mac80211 fot rt2x00).

One possible option to fix this in rt2x00 would be to delay the beacon
update (as it is already put on a workqueue we could simply replace it by
a delayed work) by beaconinterval - 10ms or something. But I'm not how
accurate that would be (and of course remove the set_tim callback).

Ivo, would that be an option you would agree on? On rt2800 we would simply
use the pretbtt interrupt and on older hardware trigger the beacon update
from a delayed work, and remove the set_tim callback?

> If you pull each beacon
> it's all correct. If you don't, you need to take care of everything DTIM
> related, there's simply no way to do it differently.

Yes, that's what I tried to understand when I wrote the first mail as I didn't
know enough about that part in mac80211.

> Does your device fill the DTIM count field or does it not? That's really
> the only thing you need to know, no?

The rt2x00 devices don't do any semantic changes to the beacon (only update
the timestamp). So basically the approach to update the beacon once during
each beacon interval would be the nicest solution. But due to the lack of a
suitable interrupt (on devices older then rt2800) rt2x00 does it as explained
above.

Helmut

^ permalink raw reply

* Compat-wireless release for 2010-06-27 is baked
From: Compat-wireless cronjob account @ 2010-06-27 19:02 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth


compat-wireless code metrics

    494345 - Total upstream lines of code being pulled
      1407 - backport code changes
      1174 - backport code additions
       233 - backport code deletions
      5765 - backport from compat module
      7172 - total backport code
    1.4508 - % of code consists of backport work
      1218 - Crap changes not yet posted
      1179 - Crap additions not yet posted
        39 - Crap deletions not yet posted
    0.2464 - % of crap code

Base tree: linux-next.git
Base tree version: next-20100625
compat-wireless release: compat-wireless-2010-06-17-6-g8a97897

^ permalink raw reply

* Re: [RFC/RFT] minstrel_ht: new rate control module for 802.11n
From: Björn Smedman @ 2010-06-28  0:01 UTC (permalink / raw)
  To: Felix Fietkau
  Cc: linux-wireless, Derek Smithies, Benoit PAPILLAULT,
	Luis R. Rodriguez, Christian Lamparter, Johannes Berg,
	ath9k-devel
In-Reply-To: <4C223F58.3060509@openwrt.org>

2010/6/23 Felix Fietkau <nbd@openwrt.org>:
> On 2010-06-23 6:36 PM, Björn Smedman wrote:
>> [snip] As
>> far as I can tell, whenever the first subframe of an aggregate fails
>> and is software retried, the rate control feedback for that aggregate
>> is lost (ath_tx_rc_status() is never called with update_rc = true in
>> xmit.c).
> I think you misread that part. The loop iterates over all subframes in
> the aggregate, and the first successful or swretry-expired frame will
> trigger an AMPDU status report, which will update the RC. The first
> subframe of the A-MPDU is not getting any special treatment here.

You're (still) right I misread that part. But I think there is another
problem when the first subframe of an A-MPDU is not acked: if it has
not expired yet it is (as I understand it) prepended to the tid queue
for software retry and will therefore be the first subframe of the
next aggregate as well, which will then be transmitted with the same
"old" rates and counts as the previous aggregate. So the feedback from
xmit to rc works, but the control information flow from rc to xmit is
delayed.

I guess the real solution is your rewrite... But in the mean time
perhaps we can memcpy the tx_info control from the last subframe to
the first before calling ath_buf_set_rate() in ath_tx_sched_aggr()?
Could that have any side effects? It could make the aggregate size go
over the 4 ms limit I guess... How bad is that?

> - Felix

/Björn

^ permalink raw reply

* Re: [RFC/RFT] minstrel_ht: new rate control module for 802.11n
From: Felix Fietkau @ 2010-06-28  0:12 UTC (permalink / raw)
  To: Björn Smedman
  Cc: linux-wireless, Derek Smithies, Benoit PAPILLAULT,
	Luis R. Rodriguez, Christian Lamparter, Johannes Berg,
	ath9k-devel
In-Reply-To: <AANLkTikmXoEnHb1K9StEgszdllAxdsAbm9WdtSUiwKWE@mail.gmail.com>

On 2010-06-28 2:01 AM, Björn Smedman wrote:
> 2010/6/23 Felix Fietkau <nbd@openwrt.org>:
>> On 2010-06-23 6:36 PM, Björn Smedman wrote:
>>> [snip] As
>>> far as I can tell, whenever the first subframe of an aggregate fails
>>> and is software retried, the rate control feedback for that aggregate
>>> is lost (ath_tx_rc_status() is never called with update_rc = true in
>>> xmit.c).
>> I think you misread that part. The loop iterates over all subframes in
>> the aggregate, and the first successful or swretry-expired frame will
>> trigger an AMPDU status report, which will update the RC. The first
>> subframe of the A-MPDU is not getting any special treatment here.
> 
> You're (still) right I misread that part. But I think there is another
> problem when the first subframe of an A-MPDU is not acked: if it has
> not expired yet it is (as I understand it) prepended to the tid queue
> for software retry and will therefore be the first subframe of the
> next aggregate as well, which will then be transmitted with the same
> "old" rates and counts as the previous aggregate. So the feedback from
> xmit to rc works, but the control information flow from rc to xmit is
> delayed.
> 
> I guess the real solution is your rewrite... But in the mean time
> perhaps we can memcpy the tx_info control from the last subframe to
> the first before calling ath_buf_set_rate() in ath_tx_sched_aggr()?
> Could that have any side effects? It could make the aggregate size go
> over the 4 ms limit I guess... How bad is that?
There's an easy solution which would take into account the 4ms frame
limit properly, and which could work without any memcpy() hacks:

I could just grab a pointer to the last buffer in the tid queue in the
ath_tx_sched_aggr() function, then pass it to ath_lookup_rate() via
ath_tx_form_aggr(), and also to ath_buf_set_rate(). Then I make those
functions use this last buffer as reference for the rate lookup.

- Felix

^ permalink raw reply

* Re: [PATCH 0/2] at76c50x-usb.c: Fix broken authentication process
From: Jason Andryuk @ 2010-06-28  0:38 UTC (permalink / raw)
  To: Sebastian Smolorz; +Cc: kalle.valo, linux-wireless
In-Reply-To: <201006221651.24853.Sebastian.Smolorz@gmx.de>

On Tue, Jun 22, 2010 at 10:51 AM, Sebastian Smolorz
<Sebastian.Smolorz@gmx.de> wrote:
> Fix authentication process of wireless driver at76c50x-usb.c which was broken
> since kernel 2.6.31

Thanks for working on this, but unfortunately it does not work with my
Linksys WUSB11.  Does it work for you?

[  168.420082] usb 4-1: new full speed USB device using uhci_hcd and address 2
[  168.719582] Atmel at76x USB Wireless LAN Driver 0.17 loading
[  168.743011] usb 4-1: using firmware atmel_at76c503-i3861.bin
(version 0.90.0-44)
[  168.746784] phy1: Selected rate control algorithm 'minstrel'
[  168.747410] phy1: USB 4-1:1.0, MAC 00:06:25:00:6a:7a, firmware 0.90.0-2
[  168.747413] phy1: regulatory domain 0x10: FCC (USA)
[  168.747434] usbcore: registered new interface driver at76c50x-usb
[  168.803980] udev: renamed network interface wlan0 to wlan3
[  168.837883] ADDRCONF(NETDEV_UP): wlan3: link is not ready
[  274.423484] wlan3: direct probe to 00:13:46:08:8a:6e (try 1)
[  274.622558] wlan3: direct probe to 00:13:46:08:8a:6e (try 2)
[  274.822600] wlan3: direct probe to 00:13:46:08:8a:6e (try 3)
[  275.022557] wlan3: direct probe to 00:13:46:08:8a:6e timed out
[  284.694487] wlan3: direct probe to 00:13:46:08:8a:6e (try 1)
[  284.900075] wlan3: direct probe to 00:13:46:08:8a:6e (try 2)
[  285.105548] wlan3: direct probe to 00:13:46:08:8a:6e (try 3)
[  285.302565] wlan3: direct probe to 00:13:46:08:8a:6e timed out
[  294.954450] wlan3: direct probe to 00:13:46:08:8a:6e (try 1)
[  295.152564] wlan3: direct probe to 00:13:46:08:8a:6e (try 2)
[  295.352559] wlan3: direct probe to 00:13:46:08:8a:6e (try 3)
[  295.552556] wlan3: direct probe to 00:13:46:08:8a:6e timed out

> +       /* The following code lines are important when the device is going to
> +        * authenticate with a new bssid. The driver must send CMD_JOIN before
> +        * an authentication frame is transmitted. For this to succeed, the
> +        * correct bssid of the AP must be known. As mac80211 does not inform
> +        * drivers about the bssid prior to the authentication process the
> +        * following workaround is necessary. If the TX frame is an
> +        * authentication frame extract the bssid and send the CMD_JOIN. */
> +       if (mgmt->frame_control & cpu_to_le16(IEEE80211_STYPE_AUTH)) {
> +               if (compare_ether_addr(priv->bssid, mgmt->bssid)) {
> +                       memcpy(priv->bssid, mgmt->bssid, ETH_ALEN);
> +                       ieee80211_queue_work(hw, &priv->work_join_bssid);
> +                       return NETDEV_TX_BUSY;
> +               }
> +       }
> +

The check for IEEE80211_STYPE_AUTH may be insufficient since direct
probe is sent with frame control IEEE80211_STYPE_PROBE_REQ.  Maybe a
better check would be comparing struct ieee80211_work.type to
IEEE80211_WORK_DIRECT_PROBE or IEEE80211_WORK_AUTH?  I am not sure if
that is accessible in the driver's tx function though.

With the frame_control check modified for either IEEE80211_STYPE_AUTH
or IEEE80211_STYPE_PROBE_REQ, it is still unsuccessful.
at76_work_join_bssid is called between the first and second direct
probe attempt.  However, the CMD_JOIN command is not in the log.
Presumably that occurs because the BSSID pulled from the PROBE_REQ is
ff:ff:ff:ff:ff:ff which fails the is_valid_ether_addr(priv->bssid)
check in at76_work_join_bssid.

http://lxr.linux.no/#linux+v2.6.34/include/linux/etherdevice.h#L100

I'm glad someone is working on this.

Jason

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox