Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH v2 1/3] mac80211: Add TXQ scheduling API
From: Toke Høiland-Jørgensen @ 2017-10-27 14:14 UTC (permalink / raw)
  To: make-wifi-fast, linux-wireless; +Cc: Toke Høiland-Jørgensen
In-Reply-To: <20171016160902.8970-1-toke@toke.dk>

This adds an API to mac80211 to handle scheduling of TXQs and changes the
interface between driver and mac80211 for TXQ handling as follows:

- The wake_tx_queue callback interface no longer includes the TXQ. Instead,
  the driver is expected to retrieve that from ieee80211_next_txq()

- Two new mac80211 functions are added: ieee80211_next_txq() and
  ieee80211_schedule_txq(). The former returns the next TXQ that should be
  scheduled, and is how the driver gets a queue to pull packets from. The
  latter is called internally by mac80211 to start scheduling a queue, and
  the driver is supposed to call it to re-schedule the TXQ after it is
  finished pulling packets from it (unless the queue emptied).

The ath9k and ath10k drivers are changed to use the new API.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
---
Changes since v1:
- Also remove artxq->list member from ath10k
- Don't skip ieee80211_schedule_txq() calls due to boolean
  short-circuiting
- Some documentation and checkpatch fixes

 drivers/net/wireless/ath/ath10k/core.c |   2 -
 drivers/net/wireless/ath/ath10k/core.h |   4 -
 drivers/net/wireless/ath/ath10k/mac.c  |  55 +++------
 drivers/net/wireless/ath/ath9k/ath9k.h |   6 +-
 drivers/net/wireless/ath/ath9k/main.c  |   2 +-
 drivers/net/wireless/ath/ath9k/xmit.c  | 210 ++++++++-------------------------
 include/net/mac80211.h                 |  37 +++++-
 net/mac80211/agg-tx.c                  |   6 +-
 net/mac80211/driver-ops.h              |  12 +-
 net/mac80211/ieee80211_i.h             |   5 +
 net/mac80211/main.c                    |   3 +
 net/mac80211/sta_info.c                |   7 +-
 net/mac80211/trace.h                   |  32 +----
 net/mac80211/tx.c                      |  49 +++++++-
 14 files changed, 173 insertions(+), 257 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index a4f635820f35..759df3297d48 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -2561,9 +2561,7 @@ struct ath10k *ath10k_core_create(size_t priv_size, struct device *dev,
 
 	mutex_init(&ar->conf_mutex);
 	spin_lock_init(&ar->data_lock);
-	spin_lock_init(&ar->txqs_lock);
 
-	INIT_LIST_HEAD(&ar->txqs);
 	INIT_LIST_HEAD(&ar->peers);
 	init_waitqueue_head(&ar->peer_mapping_wq);
 	init_waitqueue_head(&ar->htt.empty_tx_wq);
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 949ebb3e967b..3c3b158cdb20 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -347,7 +347,6 @@ struct ath10k_peer {
 };
 
 struct ath10k_txq {
-	struct list_head list;
 	unsigned long num_fw_queued;
 	unsigned long num_push_allowed;
 };
@@ -892,10 +891,7 @@ struct ath10k {
 
 	/* protects shared structure data */
 	spinlock_t data_lock;
-	/* protects: ar->txqs, artxq->list */
-	spinlock_t txqs_lock;
 
-	struct list_head txqs;
 	struct list_head arvifs;
 	struct list_head peers;
 	struct ath10k_peer *peer_map[ATH10K_MAX_NUM_PEER_IDS];
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 5683f1a5330e..f9c70d8c9a09 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -3820,12 +3820,10 @@ static void ath10k_mac_txq_init(struct ieee80211_txq *txq)
 		return;
 
 	artxq = (void *)txq->drv_priv;
-	INIT_LIST_HEAD(&artxq->list);
 }
 
 static void ath10k_mac_txq_unref(struct ath10k *ar, struct ieee80211_txq *txq)
 {
-	struct ath10k_txq *artxq;
 	struct ath10k_skb_cb *cb;
 	struct sk_buff *msdu;
 	int msdu_id;
@@ -3833,12 +3831,6 @@ static void ath10k_mac_txq_unref(struct ath10k *ar, struct ieee80211_txq *txq)
 	if (!txq)
 		return;
 
-	artxq = (void *)txq->drv_priv;
-	spin_lock_bh(&ar->txqs_lock);
-	if (!list_empty(&artxq->list))
-		list_del_init(&artxq->list);
-	spin_unlock_bh(&ar->txqs_lock);
-
 	spin_lock_bh(&ar->htt.tx_lock);
 	idr_for_each_entry(&ar->htt.pending_tx, msdu, msdu_id) {
 		cb = ATH10K_SKB_CB(msdu);
@@ -3968,23 +3960,17 @@ int ath10k_mac_tx_push_txq(struct ieee80211_hw *hw,
 void ath10k_mac_tx_push_pending(struct ath10k *ar)
 {
 	struct ieee80211_hw *hw = ar->hw;
-	struct ieee80211_txq *txq;
-	struct ath10k_txq *artxq;
-	struct ath10k_txq *last;
+	struct ieee80211_txq *txq, *first = NULL;
 	int ret;
 	int max;
 
 	if (ar->htt.num_pending_tx >= (ar->htt.max_num_pending_tx / 2))
 		return;
 
-	spin_lock_bh(&ar->txqs_lock);
 	rcu_read_lock();
 
-	last = list_last_entry(&ar->txqs, struct ath10k_txq, list);
-	while (!list_empty(&ar->txqs)) {
-		artxq = list_first_entry(&ar->txqs, struct ath10k_txq, list);
-		txq = container_of((void *)artxq, struct ieee80211_txq,
-				   drv_priv);
+	txq = ieee80211_next_txq(hw);
+	while (txq) {
 
 		/* Prevent aggressive sta/tid taking over tx queue */
 		max = 16;
@@ -3995,18 +3981,21 @@ void ath10k_mac_tx_push_pending(struct ath10k *ar)
 				break;
 		}
 
-		list_del_init(&artxq->list);
 		if (ret != -ENOENT)
-			list_add_tail(&artxq->list, &ar->txqs);
+			ieee80211_schedule_txq(hw, txq);
 
 		ath10k_htt_tx_txq_update(hw, txq);
 
-		if (artxq == last || (ret < 0 && ret != -ENOENT))
+		if (first == txq || (ret < 0 && ret != -ENOENT))
 			break;
+
+		if (!first)
+			first = txq;
+
+		txq = ieee80211_next_txq(hw);
 	}
 
 	rcu_read_unlock();
-	spin_unlock_bh(&ar->txqs_lock);
 }
 
 /************/
@@ -4240,34 +4229,22 @@ static void ath10k_mac_op_tx(struct ieee80211_hw *hw,
 	}
 }
 
-static void ath10k_mac_op_wake_tx_queue(struct ieee80211_hw *hw,
-					struct ieee80211_txq *txq)
+static void ath10k_mac_op_wake_tx_queue(struct ieee80211_hw *hw)
 {
-	struct ath10k *ar = hw->priv;
-	struct ath10k_txq *artxq = (void *)txq->drv_priv;
-	struct ieee80211_txq *f_txq;
-	struct ath10k_txq *f_artxq;
+	struct ieee80211_txq *txq;
 	int ret = 0;
 	int max = 16;
 
-	spin_lock_bh(&ar->txqs_lock);
-	if (list_empty(&artxq->list))
-		list_add_tail(&artxq->list, &ar->txqs);
-
-	f_artxq = list_first_entry(&ar->txqs, struct ath10k_txq, list);
-	f_txq = container_of((void *)f_artxq, struct ieee80211_txq, drv_priv);
-	list_del_init(&f_artxq->list);
+	txq = ieee80211_next_txq(hw);
 
-	while (ath10k_mac_tx_can_push(hw, f_txq) && max--) {
-		ret = ath10k_mac_tx_push_txq(hw, f_txq);
+	while (ath10k_mac_tx_can_push(hw, txq) && max--) {
+		ret = ath10k_mac_tx_push_txq(hw, txq);
 		if (ret)
 			break;
 	}
 	if (ret != -ENOENT)
-		list_add_tail(&f_artxq->list, &ar->txqs);
-	spin_unlock_bh(&ar->txqs_lock);
+		ieee80211_schedule_txq(hw, txq);
 
-	ath10k_htt_tx_txq_update(hw, f_txq);
 	ath10k_htt_tx_txq_update(hw, txq);
 }
 
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index cf076719c27e..f6c53df78856 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -246,7 +246,6 @@ struct ath_atx_tid {
 	s8 bar_index;
 	bool active;
 	bool clear_ps_filter;
-	bool has_queued;
 };
 
 void __ath_tx_queue_tid(struct ath_softc *sc, struct ath_atx_tid *tid);
@@ -591,8 +590,7 @@ bool ath_drain_all_txq(struct ath_softc *sc);
 void ath_draintxq(struct ath_softc *sc, struct ath_txq *txq);
 void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an);
 void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an);
-void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq);
-void ath_txq_schedule_all(struct ath_softc *sc);
+void ath_txq_schedule(struct ath_softc *sc);
 int ath_tx_init(struct ath_softc *sc, int nbufs);
 int ath_txq_update(struct ath_softc *sc, int qnum,
 		   struct ath9k_tx_queue_info *q);
@@ -618,7 +616,7 @@ void ath9k_release_buffered_frames(struct ieee80211_hw *hw,
 				   u16 tids, int nframes,
 				   enum ieee80211_frame_release_type reason,
 				   bool more_data);
-void ath9k_wake_tx_queue(struct ieee80211_hw *hw, struct ieee80211_txq *queue);
+void ath9k_wake_tx_queue(struct ieee80211_hw *hw);
 
 /********/
 /* VIFs */
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 8b4ac7f0a09b..7c2ba21fd972 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -265,7 +265,7 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start)
 		}
 	work:
 		ath_restart_work(sc);
-		ath_txq_schedule_all(sc);
+		ath_txq_schedule(sc);
 	}
 
 	sc->gtt_cnt = 0;
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 396bf05c6bf6..bd438062a6db 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -112,62 +112,11 @@ void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq)
 		ath_tx_status(hw, skb);
 }
 
-void __ath_tx_queue_tid(struct ath_softc *sc, struct ath_atx_tid *tid)
-{
-	struct ath_vif *avp = (struct ath_vif *) tid->an->vif->drv_priv;
-	struct ath_chanctx *ctx = avp->chanctx;
-	struct ath_acq *acq;
-	struct list_head *tid_list;
-	u8 acno = TID_TO_WME_AC(tid->tidno);
-
-	if (!ctx || !list_empty(&tid->list))
-		return;
-
-
-	acq = &ctx->acq[acno];
-	if ((sc->airtime_flags & AIRTIME_USE_NEW_QUEUES) &&
-	    tid->an->airtime_deficit[acno] > 0)
-		tid_list = &acq->acq_new;
-	else
-		tid_list = &acq->acq_old;
-
-	list_add_tail(&tid->list, tid_list);
-}
-
-void ath_tx_queue_tid(struct ath_softc *sc, struct ath_atx_tid *tid)
-{
-	struct ath_vif *avp = (struct ath_vif *) tid->an->vif->drv_priv;
-	struct ath_chanctx *ctx = avp->chanctx;
-	struct ath_acq *acq;
-
-	if (!ctx || !list_empty(&tid->list))
-		return;
-
-	acq = &ctx->acq[TID_TO_WME_AC(tid->tidno)];
-	spin_lock_bh(&acq->lock);
-	__ath_tx_queue_tid(sc, tid);
-	spin_unlock_bh(&acq->lock);
-}
-
-
-void ath9k_wake_tx_queue(struct ieee80211_hw *hw, struct ieee80211_txq *queue)
+void ath9k_wake_tx_queue(struct ieee80211_hw *hw)
 {
 	struct ath_softc *sc = hw->priv;
-	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
-	struct ath_atx_tid *tid = (struct ath_atx_tid *) queue->drv_priv;
-	struct ath_txq *txq = tid->txq;
-
-	ath_dbg(common, QUEUE, "Waking TX queue: %pM (%d)\n",
-		queue->sta ? queue->sta->addr : queue->vif->addr,
-		tid->tidno);
-
-	ath_txq_lock(sc, txq);
 
-	tid->has_queued = true;
-	ath_tx_queue_tid(sc, tid);
-	ath_txq_schedule(sc, txq);
-
-	ath_txq_unlock(sc, txq);
+	ath_txq_schedule(sc);
 }
 
 static struct ath_frame_info *get_frame_info(struct sk_buff *skb)
@@ -230,14 +179,9 @@ ath_tid_pull(struct ath_atx_tid *tid)
 	struct ath_frame_info *fi;
 	int q;
 
-	if (!tid->has_queued)
-		return NULL;
-
 	skb = ieee80211_tx_dequeue(hw, txq);
-	if (!skb) {
-		tid->has_queued = false;
+	if (!skb)
 		return NULL;
-	}
 
 	if (ath_tx_prepare(hw, skb, &txctl)) {
 		ieee80211_free_txskb(hw, skb);
@@ -254,12 +198,6 @@ ath_tid_pull(struct ath_atx_tid *tid)
 	return skb;
  }
 
-
-static bool ath_tid_has_buffered(struct ath_atx_tid *tid)
-{
-	return !skb_queue_empty(&tid->retry_q) || tid->has_queued;
-}
-
 static struct sk_buff *ath_tid_dequeue(struct ath_atx_tid *tid)
 {
 	struct sk_buff *skb;
@@ -671,7 +609,10 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
 
 		skb_queue_splice_tail(&bf_pending, &tid->retry_q);
 		if (!an->sleeping) {
-			ath_tx_queue_tid(sc, tid);
+			struct ieee80211_txq *queue = container_of(
+				(void *)tid, struct ieee80211_txq, drv_priv);
+
+			ieee80211_schedule_txq(sc->hw, queue);
 
 			if (ts->ts_status & (ATH9K_TXERR_FILT | ATH9K_TXERR_XRETRY))
 				tid->clear_ps_filter = true;
@@ -719,8 +660,6 @@ static void ath_tx_count_airtime(struct ath_softc *sc, struct ath_node *an,
 
 		spin_lock_bh(&acq->lock);
 		an->airtime_deficit[q] -= airtime;
-		if (an->airtime_deficit[q] <= 0)
-			__ath_tx_queue_tid(sc, tid);
 		spin_unlock_bh(&acq->lock);
 	}
 	ath_debug_airtime(sc, an, 0, airtime);
@@ -770,8 +709,6 @@ static void ath_tx_process_buffer(struct ath_softc *sc, struct ath_txq *txq,
 	} else
 		ath_tx_complete_aggr(sc, txq, bf, bf_head, sta, tid, ts, txok);
 
-	if (!flush)
-		ath_txq_schedule(sc, txq);
 }
 
 static bool ath_lookup_legacy(struct ath_buf *bf)
@@ -1506,8 +1443,8 @@ ath_tx_form_burst(struct ath_softc *sc, struct ath_txq *txq,
 	} while (1);
 }
 
-static bool ath_tx_sched_aggr(struct ath_softc *sc, struct ath_txq *txq,
-			      struct ath_atx_tid *tid)
+static int ath_tx_sched_aggr(struct ath_softc *sc, struct ath_txq *txq,
+			     struct ath_atx_tid *tid)
 {
 	struct ath_buf *bf;
 	struct ieee80211_tx_info *tx_info;
@@ -1515,21 +1452,18 @@ static bool ath_tx_sched_aggr(struct ath_softc *sc, struct ath_txq *txq,
 	int aggr_len = 0;
 	bool aggr;
 
-	if (!ath_tid_has_buffered(tid))
-		return false;
-
 	INIT_LIST_HEAD(&bf_q);
 
 	bf = ath_tx_get_tid_subframe(sc, txq, tid);
 	if (!bf)
-		return false;
+		return -ENOENT;
 
 	tx_info = IEEE80211_SKB_CB(bf->bf_mpdu);
 	aggr = !!(tx_info->flags & IEEE80211_TX_CTL_AMPDU);
 	if ((aggr && txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH) ||
 	    (!aggr && txq->axq_depth >= ATH_NON_AGGR_MIN_QDEPTH)) {
 		__skb_queue_tail(&tid->retry_q, bf->bf_mpdu);
-		return false;
+		return -ENOBUFS;
 	}
 
 	ath_set_rates(tid->an->vif, tid->an->sta, bf);
@@ -1539,7 +1473,7 @@ static bool ath_tx_sched_aggr(struct ath_softc *sc, struct ath_txq *txq,
 		ath_tx_form_burst(sc, txq, tid, &bf_q, bf);
 
 	if (list_empty(&bf_q))
-		return false;
+		return -ENOENT;
 
 	if (tid->clear_ps_filter || tid->an->no_ps_filter) {
 		tid->clear_ps_filter = false;
@@ -1548,7 +1482,7 @@ static bool ath_tx_sched_aggr(struct ath_softc *sc, struct ath_txq *txq,
 
 	ath_tx_fill_desc(sc, bf, txq, aggr_len);
 	ath_tx_txqaddbuf(sc, txq, &bf_q, false);
-	return true;
+	return 0;
 }
 
 int ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta,
@@ -1611,52 +1545,49 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc,
 {
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
 	struct ath_atx_tid *tid;
-	struct ath_txq *txq;
+	struct ieee80211_txq *queue;
 	int tidno;
 
 	ath_dbg(common, XMIT, "%s called\n", __func__);
 
 	for (tidno = 0; tidno < IEEE80211_NUM_TIDS; tidno++) {
 		tid = ath_node_to_tid(an, tidno);
-		txq = tid->txq;
-
-		ath_txq_lock(sc, txq);
-
-		if (list_empty(&tid->list)) {
-			ath_txq_unlock(sc, txq);
-			continue;
-		}
+		queue = container_of((void *)tid,
+				     struct ieee80211_txq, drv_priv);
 
 		if (!skb_queue_empty(&tid->retry_q))
 			ieee80211_sta_set_buffered(sta, tid->tidno, true);
 
-		list_del_init(&tid->list);
-
-		ath_txq_unlock(sc, txq);
 	}
 }
 
 void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an)
 {
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
+	struct ieee80211_txq *queue;
 	struct ath_atx_tid *tid;
 	struct ath_txq *txq;
 	int tidno;
+	bool sched, wake = false;
 
 	ath_dbg(common, XMIT, "%s called\n", __func__);
 
 	for (tidno = 0; tidno < IEEE80211_NUM_TIDS; tidno++) {
 		tid = ath_node_to_tid(an, tidno);
 		txq = tid->txq;
+		queue = container_of((void *)tid,
+				     struct ieee80211_txq, drv_priv);
 
 		ath_txq_lock(sc, txq);
 		tid->clear_ps_filter = true;
-		if (ath_tid_has_buffered(tid)) {
-			ath_tx_queue_tid(sc, tid);
-			ath_txq_schedule(sc, txq);
-		}
-		ath_txq_unlock_complete(sc, txq);
+		sched = !skb_queue_empty(&tid->retry_q);
+		ath_txq_unlock(sc, txq);
+
+		if (sched && ieee80211_schedule_txq(sc->hw, queue))
+			wake = true;
 	}
+	if (wake)
+		ath_txq_schedule(sc);
 }
 
 void ath9k_release_buffered_frames(struct ieee80211_hw *hw,
@@ -1948,86 +1879,44 @@ void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq)
 /* For each acq entry, for each tid, try to schedule packets
  * for transmit until ampdu_depth has reached min Q depth.
  */
-void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
+void ath_txq_schedule(struct ath_softc *sc)
 {
+	struct ieee80211_hw *hw = sc->hw;
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
+	struct ieee80211_txq *queue;
 	struct ath_atx_tid *tid;
-	struct list_head *tid_list;
-	struct ath_acq *acq;
-	bool active = AIRTIME_ACTIVE(sc->airtime_flags);
+	struct ath_txq *txq;
+	int ret = 0;
 
-	if (txq->mac80211_qnum < 0)
+	if (test_bit(ATH_OP_HW_RESET, &common->op_flags))
 		return;
 
-	if (test_bit(ATH_OP_HW_RESET, &common->op_flags))
+	queue = ieee80211_next_txq(hw);
+	if (!queue)
 		return;
 
-	spin_lock_bh(&sc->chan_lock);
-	rcu_read_lock();
-	acq = &sc->cur_chan->acq[txq->mac80211_qnum];
+	tid = (struct ath_atx_tid *)queue->drv_priv;
+	txq = tid->txq;
 
-	if (sc->cur_chan->stopped)
+	ath_txq_lock(sc, txq);
+	if (txq->mac80211_qnum < 0)
 		goto out;
 
-begin:
-	tid_list = &acq->acq_new;
-	if (list_empty(tid_list)) {
-		tid_list = &acq->acq_old;
-		if (list_empty(tid_list))
-			goto out;
-	}
-	tid = list_first_entry(tid_list, struct ath_atx_tid, list);
-
-	if (active && tid->an->airtime_deficit[txq->mac80211_qnum] <= 0) {
-		spin_lock_bh(&acq->lock);
-		tid->an->airtime_deficit[txq->mac80211_qnum] += ATH_AIRTIME_QUANTUM;
-		list_move_tail(&tid->list, &acq->acq_old);
-		spin_unlock_bh(&acq->lock);
-		goto begin;
-	}
-
-	if (!ath_tid_has_buffered(tid)) {
-		spin_lock_bh(&acq->lock);
-		if ((tid_list == &acq->acq_new) && !list_empty(&acq->acq_old))
-			list_move_tail(&tid->list, &acq->acq_old);
-		else {
-			list_del_init(&tid->list);
-		}
-		spin_unlock_bh(&acq->lock);
-		goto begin;
-	}
-
+	spin_lock_bh(&sc->chan_lock);
+	rcu_read_lock();
 
-	/*
-	 * If we succeed in scheduling something, immediately restart to make
-	 * sure we keep the HW busy.
-	 */
-	if(ath_tx_sched_aggr(sc, txq, tid)) {
-		if (!active) {
-			spin_lock_bh(&acq->lock);
-			list_move_tail(&tid->list, &acq->acq_old);
-			spin_unlock_bh(&acq->lock);
-		}
-		goto begin;
-	}
+	if (!sc->cur_chan->stopped)
+		ret = ath_tx_sched_aggr(sc, txq, tid);
 
-out:
 	rcu_read_unlock();
 	spin_unlock_bh(&sc->chan_lock);
-}
 
-void ath_txq_schedule_all(struct ath_softc *sc)
-{
-	struct ath_txq *txq;
-	int i;
+out:
 
-	for (i = 0; i < IEEE80211_NUM_ACS; i++) {
-		txq = sc->tx.txq_map[i];
+	if (ret != -ENOENT)
+		ieee80211_schedule_txq(hw, queue);
 
-		spin_lock_bh(&txq->axq_lock);
-		ath_txq_schedule(sc, txq);
-		spin_unlock_bh(&txq->axq_lock);
-	}
+	ath_txq_unlock(sc, txq);
 }
 
 /***********/
@@ -2645,7 +2534,6 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
 
 		if (list_empty(&txq->axq_q)) {
 			txq->axq_link = NULL;
-			ath_txq_schedule(sc, txq);
 			break;
 		}
 		bf = list_first_entry(&txq->axq_q, struct ath_buf, list);
@@ -2697,6 +2585,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
 		ath_tx_process_buffer(sc, txq, &ts, bf, &bf_head);
 	}
 	ath_txq_unlock_complete(sc, txq);
+	ath_txq_schedule(sc);
 }
 
 void ath_tx_tasklet(struct ath_softc *sc)
@@ -2711,6 +2600,7 @@ void ath_tx_tasklet(struct ath_softc *sc)
 			ath_tx_processq(sc, &sc->tx.txq[i]);
 	}
 	rcu_read_unlock();
+	ath_txq_schedule(sc);
 }
 
 void ath_tx_edma_tasklet(struct ath_softc *sc)
@@ -2796,6 +2686,7 @@ void ath_tx_edma_tasklet(struct ath_softc *sc)
 		ath_txq_unlock_complete(sc, txq);
 	}
 	rcu_read_unlock();
+	ath_txq_schedule(sc);
 }
 
 /*****************/
@@ -2875,7 +2766,6 @@ void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an)
 		tid->baw_head  = tid->baw_tail = 0;
 		tid->active	   = false;
 		tid->clear_ps_filter = true;
-		tid->has_queued  = false;
 		__skb_queue_head_init(&tid->retry_q);
 		INIT_LIST_HEAD(&tid->list);
 		acno = TID_TO_WME_AC(tidno);
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index cc9073e45be9..715f45501aff 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -105,9 +105,12 @@
  * The driver is expected to initialize its private per-queue data for stations
  * and interfaces in the .add_interface and .sta_add ops.
  *
- * The driver can't access the queue directly. To dequeue a frame, it calls
- * ieee80211_tx_dequeue(). Whenever mac80211 adds a new frame to a queue, it
- * calls the .wake_tx_queue driver op.
+ * The driver can't access the queue directly. To obtain the next queue to pull
+ * frames from, the driver calls ieee80211_next_txq(). To dequeue a frame from a
+ * txq, it calls ieee80211_tx_dequeue(). Whenever mac80211 adds a new frame to a
+ * queue, it calls the .wake_tx_queue driver op. The driver is expected to
+ * re-schedule the txq using ieee80211_schedule_txq() if it is still active
+ * after the driver has finished pulling packets from it.
  *
  * For AP powersave TIM handling, the driver only needs to indicate if it has
  * buffered packets in the driver specific data structures by calling
@@ -3723,8 +3726,7 @@ struct ieee80211_ops {
 					 struct ieee80211_vif *vif,
 					 struct ieee80211_tdls_ch_sw_params *params);
 
-	void (*wake_tx_queue)(struct ieee80211_hw *hw,
-			      struct ieee80211_txq *txq);
+	void (*wake_tx_queue)(struct ieee80211_hw *hw);
 	void (*sync_rx_queues)(struct ieee80211_hw *hw);
 
 	int (*start_nan)(struct ieee80211_hw *hw,
@@ -5869,13 +5871,36 @@ void ieee80211_unreserve_tid(struct ieee80211_sta *sta, u8 tid);
  * ieee80211_tx_dequeue - dequeue a packet from a software tx queue
  *
  * @hw: pointer as obtained from ieee80211_alloc_hw()
- * @txq: pointer obtained from station or virtual interface
+ * @txq: pointer obtained from ieee80211_next_txq()
  *
  * Returns the skb if successful, %NULL if no frame was available.
  */
 struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw,
 				     struct ieee80211_txq *txq);
 
+/**
+ * ieee80211_schedule_txq - add txq to scheduling loop
+ *
+ * @hw: pointer as obtained from ieee80211_alloc_hw()
+ * @txq: pointer obtained from station or virtual interface
+ *
+ * Returns %true if the txq was actually added to the scheduling,
+ * %false otherwise.
+ */
+bool ieee80211_schedule_txq(struct ieee80211_hw *hw,
+			    struct ieee80211_txq *txq);
+
+/**
+ * ieee80211_next_txq - get next tx queue to pull packets from
+ *
+ * @hw: pointer as obtained from ieee80211_alloc_hw()
+ *
+ * Returns the next txq if successful, %NULL if no queue is eligible. If a txq
+ * is returned, it will have been removed from the scheduler queue and needs to
+ * be re-scheduled with ieee80211_schedule_txq() to continue to be active.
+ */
+struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw);
+
 /**
  * ieee80211_txq_get_depth - get pending frame/byte count of given txq
  *
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index bef516ec47f9..569b5b5c6d70 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -226,9 +226,13 @@ ieee80211_agg_start_txq(struct sta_info *sta, int tid, bool enable)
 		clear_bit(IEEE80211_TXQ_AMPDU, &txqi->flags);
 
 	clear_bit(IEEE80211_TXQ_STOP, &txqi->flags);
+
+	if (!ieee80211_schedule_txq(&sta->sdata->local->hw, txq))
+		return;
+
 	local_bh_disable();
 	rcu_read_lock();
-	drv_wake_tx_queue(sta->sdata->local, txqi);
+	drv_wake_tx_queue(sta->sdata->local);
 	rcu_read_unlock();
 	local_bh_enable();
 }
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 09f77e4a8a79..e20a9e2acd53 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -1157,16 +1157,10 @@ drv_tdls_recv_channel_switch(struct ieee80211_local *local,
 	trace_drv_return_void(local);
 }
 
-static inline void drv_wake_tx_queue(struct ieee80211_local *local,
-				     struct txq_info *txq)
+static inline void drv_wake_tx_queue(struct ieee80211_local *local)
 {
-	struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif);
-
-	if (!check_sdata_in_driver(sdata))
-		return;
-
-	trace_drv_wake_tx_queue(local, sdata, txq);
-	local->ops->wake_tx_queue(&local->hw, &txq->txq);
+	trace_drv_wake_tx_queue(local);
+	local->ops->wake_tx_queue(&local->hw);
 }
 
 static inline int drv_start_nan(struct ieee80211_local *local,
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 9675814f64db..95be548b1d4f 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -832,6 +832,7 @@ struct txq_info {
 	struct codel_vars def_cvars;
 	struct codel_stats cstats;
 	struct sk_buff_head frags;
+	struct list_head schedule_order;
 	unsigned long flags;
 
 	/* keep last! */
@@ -1121,6 +1122,10 @@ struct ieee80211_local {
 	struct codel_vars *cvars;
 	struct codel_params cparams;
 
+	/* protects active_txqs and txqi->schedule_order */
+	spinlock_t active_txq_lock;
+	struct list_head active_txqs;
+
 	const struct ieee80211_ops *ops;
 
 	/*
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 8aa1f5b6a051..9ad0556aa24b 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -616,6 +616,9 @@ struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t priv_data_len,
 	spin_lock_init(&local->rx_path_lock);
 	spin_lock_init(&local->queue_stop_reason_lock);
 
+	INIT_LIST_HEAD(&local->active_txqs);
+	spin_lock_init(&local->active_txq_lock);
+
 	INIT_LIST_HEAD(&local->chanctx_list);
 	mutex_init(&local->chanctx_mtx);
 
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 9673e157bf8f..da3737d4778f 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -1246,12 +1246,17 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
 		drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta);
 
 	if (sta->sta.txq[0]) {
+		bool wake = false;
+
 		for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
 			if (!txq_has_queue(sta->sta.txq[i]))
 				continue;
 
-			drv_wake_tx_queue(local, to_txq_info(sta->sta.txq[i]));
+			if (ieee80211_schedule_txq(&local->hw, sta->sta.txq[i]))
+				wake = true;
 		}
+		if (wake)
+			drv_wake_tx_queue(local);
 	}
 
 	skb_queue_head_init(&pending);
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index 3d9ac17af407..f51eade947ee 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -2549,35 +2549,9 @@ TRACE_EVENT(drv_tdls_recv_channel_switch,
 	)
 );
 
-TRACE_EVENT(drv_wake_tx_queue,
-	TP_PROTO(struct ieee80211_local *local,
-		 struct ieee80211_sub_if_data *sdata,
-		 struct txq_info *txq),
-
-	TP_ARGS(local, sdata, txq),
-
-	TP_STRUCT__entry(
-		LOCAL_ENTRY
-		VIF_ENTRY
-		STA_ENTRY
-		__field(u8, ac)
-		__field(u8, tid)
-	),
-
-	TP_fast_assign(
-		struct ieee80211_sta *sta = txq->txq.sta;
-
-		LOCAL_ASSIGN;
-		VIF_ASSIGN;
-		STA_ASSIGN;
-		__entry->ac = txq->txq.ac;
-		__entry->tid = txq->txq.tid;
-	),
-
-	TP_printk(
-		LOCAL_PR_FMT  VIF_PR_FMT  STA_PR_FMT " ac:%d tid:%d",
-		LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ac, __entry->tid
-	)
+DEFINE_EVENT(local_only_evt, drv_wake_tx_queue,
+	     TP_PROTO(struct ieee80211_local *local),
+	     TP_ARGS(local)
 );
 
 #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 94826680cf2b..824d87e6d3eb 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1405,6 +1405,7 @@ void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata,
 	codel_vars_init(&txqi->def_cvars);
 	codel_stats_init(&txqi->cstats);
 	__skb_queue_head_init(&txqi->frags);
+	INIT_LIST_HEAD(&txqi->schedule_order);
 
 	txqi->txq.vif = &sdata->vif;
 
@@ -1428,6 +1429,7 @@ void ieee80211_txq_purge(struct ieee80211_local *local,
 
 	fq_tin_reset(fq, tin, fq_skb_free_func);
 	ieee80211_purge_tx_queue(&local->hw, &txqi->frags);
+	list_del_init(&txqi->schedule_order);
 }
 
 int ieee80211_txq_setup_flows(struct ieee80211_local *local)
@@ -1524,7 +1526,8 @@ static bool ieee80211_queue_skb(struct ieee80211_local *local,
 	ieee80211_txq_enqueue(local, txqi, skb);
 	spin_unlock_bh(&fq->lock);
 
-	drv_wake_tx_queue(local, txqi);
+	if (ieee80211_schedule_txq(&local->hw, &txqi->txq))
+		drv_wake_tx_queue(local);
 
 	return true;
 }
@@ -3517,6 +3520,50 @@ struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw,
 }
 EXPORT_SYMBOL(ieee80211_tx_dequeue);
 
+bool ieee80211_schedule_txq(struct ieee80211_hw *hw,
+			    struct ieee80211_txq *txq)
+{
+	struct ieee80211_local *local = hw_to_local(hw);
+	struct txq_info *txqi = to_txq_info(txq);
+	bool ret = false;
+
+	spin_lock_bh(&local->active_txq_lock);
+
+	if (list_empty(&txqi->schedule_order)) {
+		list_add_tail(&txqi->schedule_order, &local->active_txqs);
+		ret = true;
+	}
+
+	spin_unlock_bh(&local->active_txq_lock);
+
+	return ret;
+}
+EXPORT_SYMBOL(ieee80211_schedule_txq);
+
+struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw)
+{
+	struct ieee80211_local *local = hw_to_local(hw);
+	struct txq_info *txqi = NULL;
+
+	spin_lock_bh(&local->active_txq_lock);
+
+	if (list_empty(&local->active_txqs))
+		goto out;
+
+	txqi = list_first_entry(&local->active_txqs,
+				struct txq_info, schedule_order);
+	list_del_init(&txqi->schedule_order);
+
+out:
+	spin_unlock_bh(&local->active_txq_lock);
+
+	if (!txqi)
+		return NULL;
+
+	return &txqi->txq;
+}
+EXPORT_SYMBOL(ieee80211_next_txq);
+
 void __ieee80211_subif_start_xmit(struct sk_buff *skb,
 				  struct net_device *dev,
 				  u32 info_flags)
-- 
2.14.2

^ permalink raw reply related

* Re: [v3] ath10k: rebuild crypto header in rx data frames
From: Kalle Valo @ 2017-10-27 15:44 UTC (permalink / raw)
  To: Kalle Valo; +Cc: ath10k, linux-wireless, Vasanthakumar Thiagarajan
In-Reply-To: <1509035774-26553-1-git-send-email-kvalo@qca.qualcomm.com>

Kalle Valo <kvalo@qca.qualcomm.com> wrote:

> Rx data frames notified through HTT_T2H_MSG_TYPE_RX_IND and
> HTT_T2H_MSG_TYPE_RX_FRAG_IND expect PN/TSC check to be done
> on host (mac80211) rather than firmware. Rebuild cipher header
> in every received data frames (that are notified through those
> HTT interfaces) from the rx_hdr_status tlv available in the
> rx descriptor of the first msdu. Skip setting RX_FLAG_IV_STRIPPED
> flag for the packets which requires mac80211 PN/TSC check support
> and set appropriate RX_FLAG for stripped crypto tail. Hw QCA988X,
> QCA9887, QCA99X0, QCA9984, QCA9888 and QCA4019 currently need the
> rebuilding of cipher header to perform PN/TSC check for replay
> attack.
> 
> Please note that removing crypto tail for CCMP-256, GCMP and GCMP-256 ciphers
> in raw mode needs to be fixed. Since Rx with these ciphers in raw
> mode does not work in the current form even without this patch and
> removing crypto tail for these chipers needs clean up, raw mode related
> issues in CCMP-256, GCMP and GCMP-256 can be addressed in follow up
> patches.
> 
> Tested-by: Manikanta Pubbisetty <mpubbise@qti.qualcomm.com>
> Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com>
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

Any comments or feedback about this? I'm hoping to apply this during the
weekend so that it will make it to v4.14 in time. So if there are any issues
with this patch please let me know ASAP.

-- 
https://patchwork.kernel.org/patch/10028621/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply

* wcn36xx: connection monitoring issue
From: Damien Riegel @ 2017-10-27 15:55 UTC (permalink / raw)
  To: linux-wireless, netdev, linux-kernel, linux-arm-msm, wcn36xx
  Cc: Eugene Krasnikov, Kalle Valo

Hi,


I'm working on a board derived from the DragonBoard-410c (apq8016 +
wcn3620) and noticed an issue with WiFi connection monitoring. When I
get out of the range of the access point, the device stays associated,
no matter how far I go or how long I wait.

The chip on this board is the WCN3620, and the driver sets
IEEE80211_HW_CONNECTION_MONITOR at drivers/net/wireless/ath/wcn36xx/main.c:1127, 
so the hardware is supposed to do the monitoring, but it looks like it
doesn't. If I comment out this flag (snippet at the end of the email),
the correct behaviour is observed.

Has anyone else noticed that issue?


Thanks,
Damien

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 35bd50bcbbd5..2aa1643d15bf 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -1124,7 +1124,6 @@ static int wcn36xx_init_ieee80211(struct wcn36xx *wcn)

        ieee80211_hw_set(wcn->hw, TIMING_BEACON_ONLY);
        ieee80211_hw_set(wcn->hw, AMPDU_AGGREGATION);
-       ieee80211_hw_set(wcn->hw, CONNECTION_MONITOR);
        ieee80211_hw_set(wcn->hw, SUPPORTS_PS);
        ieee80211_hw_set(wcn->hw, SIGNAL_DBM);
        ieee80211_hw_set(wcn->hw, HAS_RATE_CONTROL);

^ permalink raw reply related

* Re: RTL usb adapter question
From: Larry Finger @ 2017-10-27 18:49 UTC (permalink / raw)
  To: James Cameron, David Ashley; +Cc: linux-wireless
In-Reply-To: <20171026220013.GC9888@us.netrek.org>

On 10/26/2017 05:00 PM, James Cameron wrote:
> Base on your evidence, I'd say the device is different to others and
> has firmware included.

That would seem to be the case. The firmware has been updated since that device 
was released, and I suggest that you provide the file requested, namely 
/lib/firmware/rtlwifi/rtl8192cufw_TMSC.bin.

Larry

^ permalink raw reply

* Re: ath10k-regression due to "ath10k: fix napi_poll budget overflow" c9353bf483d3
From: Ryan Hsu @ 2017-10-27 19:01 UTC (permalink / raw)
  To: Kalle Valo, Thorsten Leemhuis
  Cc: ath10k@lists.infradead.org, linux-wireless@vger.kernel.org
In-Reply-To: <877evh53p8.fsf_-_@kamboji.qca.qualcomm.com>

T24gMTAvMjcvMjAxNyAwMjo0MCBBTSwgS2FsbGUgVmFsbyB3cm90ZToNCg0KPiArIGxpbnV4LXdp
cmVsZXNzDQo+DQo+IFNvcnJ5LCBJIGhhdmUgbm90IGJlZW4gYWJsZSB0byBmb2xsb3cgdGhpcyBk
aXNjdXNzaW9uIHZlcnkgY2xvc2VseSBidXQNCj4gd2FzIHRoZSBjb25jbHVzaW9uPyBTaG91bGQg
d2Ugc2hvdWxkIHJldmVydCBjOTM1M2JmNDgzZDMgZm9yIDQuMTQgb3INCj4gd2hhdD8gSSBzaG91
bGQgc3RpbGwgaGF2ZSB0aW1lIHRvIGRvIHRoYXQsIGJ1dCBub3QgbXVjaC4NCg0KS2FsbGUsIEkg
ZG9uJ3QgdGhpbmsgSSBoYXZlIGVub3VnaCB0aW1lIHRvIGxvb2sgaW50byB0aGUgaXNzdWUsIHNp
bmNlIG9yaWdpbmFsIGNoYW5nZSBpcyB0byBhdm9pZCB0aGUgd2FybmluZywgYnV0IG5vdyBpcyBo
YXZpbmcgcmVncmVzc2lvbi4NCkxldCdzIHRyeSB0byByZXZlcnQgYzkzNTNiZjQ4M2QzIGZvciA0
LjE0LCBhbmQgSSdsbCBsb29rIGludG8gdGhpcyBsYXRlci4NCg0KLS0gDQpSeWFuIEhzdQ0K

^ permalink raw reply

* Re: Commit 0711d638 breaks mwifiex
From: Johannes Berg @ 2017-10-27 20:10 UTC (permalink / raw)
  To: Brian Norris
  Cc: Jesse Sung, Amitkumar Karwar, Nishant Sarmukadam, Ilan Peer,
	Anthony Wong, Jason Yen, Terry.Wey, linux-wireless,
	Ganapathi Bhat
In-Reply-To: <20171026211313.GA46251@google.com>

Hi,

> IIUC, mwifiex hasn't told the firmware to do anything at this point --
> the -EALREADY check is practically the first thing it does within
> connect(). So it just quits the connect() request and tries to carry on
> as usual. It will only do something different if the upper layers tell
> it to do so afterward (e.g., calling disconnect()).

Yeah, that makes sense.

> Yes, that's definitely what's happening. And it's explicitly called out
> in the supplicant's nl80211 driver that this is intentional:
> 
> [...]

Right.

> This is the main code path for supplicant commands like "Reattach",
> which boil down to (for non SME drivers):
> 
> wpas_request_connection()
>   ...
>  -> wpa_supplicant_connect()
>    -> wpa_supplicant_associate()
>      -> wpas_start_assoc_cb()
>        -> wpa_drv_associate()
>          -> wpa_driver_nl80211_associate()
>            -> wpa_driver_nl80211_connect()
> 
> Now for the part I'm not so familiar with: is this really the *expected*
> flow for full-MAC drivers in reattach, reassociate, and roaming flows?
> All of those seem to boil down to this same connect() (and fallback to
> disconnect()+connect() if -EALREADY) flow.

We never implemented a "ROAM" command, so there's not all that much
choice.

> But it doesn't seem like all full-MAC drivers do the same thing. Some
> seem to just blaze ahead with a connect attempt (maybe some firmwares
> automatically interpret this for us?) and never return -EALREADY at all.

Agree, some seem to just do some form of roaming on this, which really
just means they disconnect internally - or perhaps they even try to
roam if it's the same network?

> Sorry if this is slightly off-topic, but I'm trying to understand what
> the general expectations are here, based on my relatively narrow
> experience with a few drivers.

I don't really know either! There aren't that many direct cfg80211
drivers that don't use mac80211, so there's not that much experience.

You're probably well positioned to say what the behaviour _should_ be
though? :-)

I tend to think we should actually do the EALREADY from cfg80211, so
that wpa_s will always be forced to go through this roundabout code
path, but also finally implement a ROAM command, to let drivers have
that option?

Note also that we've always sort of envisioned that drivers
implementing CONNECT would do BSS selection themselves, but I think
there's no automatic way of doing that with wpa_s, and it may not even
be desirable in many cases (unless you really need the power saving
advantage) since it gets us into a situation where we have all these
different algorithms etc.

johannes

^ permalink raw reply

* Re: Setting single rate in ath10k broken by "reject/clear user rate mask if not usable"
From: Johannes Berg @ 2017-10-27 20:15 UTC (permalink / raw)
  To: Ben Greear, Oleksij Rempel, linux-wireless@vger.kernel.org,
	ath10k, kirtika
In-Reply-To: <db23762d-3e65-7707-ca78-ad7e7bc7dfa6@candelatech.com>

On Wed, 2017-10-25 at 09:13 -0700, Ben Greear wrote:

> > Well it resulted in a WARN_ON because if the AP didn't have those
> > rates, we'd not find any usable rates while trying to transmit a frame,
> > and then ended up warning and falling down to the lowest possible rate.
> > 
> > I don't think I agree that configuring this should reject the
> > association, and I've already implemented the behaviour of dropping the
> > user's rate set in this case in the patch we're discussing.
> 
> So, as long as we are associating to a VHT AP, then we could still set the
> tx-rateset to (only) VHT MCS 8 and allow association, even if there are no additional
> rates set.  There is at least one common rate, so theoretically, the
> station and AP can communicate.
> 
> If we tried to associate this same station to an HT AP, then your work-around
> code could kick in and throw away the user's rateset configuration, preferably
> with a fairly noticeable warning message since you are overriding the user's
> preferred tx rateset?

There's only a debug message now, and I actually compare to the basic
rates. Like I said, we could fix that to compare to real rates, but
that gets a little trickier since we don't select from all possible
rates when we try to send management frames, only from legacy rates, so
we'd have to modify that code too.

> > This kind of problem is why I absolutely dislike out-of-band state that
> > affects the connection, rather than giving it in the connection
> > command(s) (connect, auth, associate, whatever). We're stuck with it
> > now, and needed to redefine that this selection may be dropped if not
> > usable.
> 
> You could start allowing the user to configure the full advertised and
> transmit rateset for each of these actions (and probe too), and user-space can add the fields
> to their netlink commands.  At least going forward, this might help
> make the behaviour more as expected.  If you would like to implement at
> least the basics in cfg/mac80211, I would be happy to work on the supplicant
> end of things.

I'm not sure we can really remove this, there are users out there (e.g.
Chrome's shill, IIRC), so we'd be stuck with two ways of doing things
... that's not so much better really :)

johannes

^ permalink raw reply

* Re: Setting single rate in ath10k broken by "reject/clear user rate mask if not usable"
From: Ben Greear @ 2017-10-27 20:41 UTC (permalink / raw)
  To: Johannes Berg, Oleksij Rempel, linux-wireless@vger.kernel.org,
	ath10k, kirtika
In-Reply-To: <1509135311.2283.12.camel@sipsolutions.net>

On 10/27/2017 01:15 PM, Johannes Berg wrote:
> On Wed, 2017-10-25 at 09:13 -0700, Ben Greear wrote:
>
>>> Well it resulted in a WARN_ON because if the AP didn't have those
>>> rates, we'd not find any usable rates while trying to transmit a frame,
>>> and then ended up warning and falling down to the lowest possible rate.
>>>
>>> I don't think I agree that configuring this should reject the
>>> association, and I've already implemented the behaviour of dropping the
>>> user's rate set in this case in the patch we're discussing.
>>
>> So, as long as we are associating to a VHT AP, then we could still set the
>> tx-rateset to (only) VHT MCS 8 and allow association, even if there are no additional
>> rates set.  There is at least one common rate, so theoretically, the
>> station and AP can communicate.
>>
>> If we tried to associate this same station to an HT AP, then your work-around
>> code could kick in and throw away the user's rateset configuration, preferably
>> with a fairly noticeable warning message since you are overriding the user's
>> preferred tx rateset?
>
> There's only a debug message now, and I actually compare to the basic
> rates. Like I said, we could fix that to compare to real rates, but
> that gets a little trickier since we don't select from all possible
> rates when we try to send management frames, only from legacy rates, so
> we'd have to modify that code too.

ath10k ignores the tx rateset pretty much entirely when sending management
frames, so even if you set the tx rateset to have only VHT MCS 8,
management frames are still sent with legacy ratesets.

My end goal about this part is to be able to configure a single tx rate
and have that be allowed again, at least with ath10k.

Maybe a new flag for drivers like ath10k that at least somewhat ignore
the tx-rateset for management frames, and this flag would allow us to
bypass the cannot-set-single-rate check?

>>> This kind of problem is why I absolutely dislike out-of-band state that
>>> affects the connection, rather than giving it in the connection
>>> command(s) (connect, auth, associate, whatever). We're stuck with it
>>> now, and needed to redefine that this selection may be dropped if not
>>> usable.
>>
>> You could start allowing the user to configure the full advertised and
>> transmit rateset for each of these actions (and probe too), and user-space can add the fields
>> to their netlink commands.  At least going forward, this might help
>> make the behaviour more as expected.  If you would like to implement at
>> least the basics in cfg/mac80211, I would be happy to work on the supplicant
>> end of things.
>
> I'm not sure we can really remove this, there are users out there (e.g.
> Chrome's shill, IIRC), so we'd be stuck with two ways of doing things
> ... that's not so much better really :)

I am not saying you should remove the existing support, but since it is clunky
at best, you can add support for specifying the rates and those rates, if specified,
can take precedence over whatever was previously set (or auto-configured).

The kernel code will still be somewhat convoluted, but at least user-space
using newer API might have a more deterministic behaviour.

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

^ permalink raw reply

* Re: rtlwifi oops
From: nirinA raseliarison @ 2017-10-27 21:02 UTC (permalink / raw)
  To: James Cameron; +Cc: Larry Finger, linux-wireless
In-Reply-To: <20171027045716.GH9888@us.netrek.org>

On 10/27/2017 07:57 AM, James Cameron wrote:
> On Fri, Oct 27, 2017 at 04:08:48AM +0300, nirinA raseliarison wrote:
>> hi all,
>> i applied the patch against 4.13.8. i still got some trouble, dmesg
>> is below.
>
> As this new event does not have "disabled by hub (EMI?)", it is a
> different problem to your 19th October post, so I don't think the
> patch is relevant.
>
>> after i plugged the device, it seems to be detected and all modules
>> loaded, but when i tried to connect to an access point, by using
>> wicd, it halted after a while. at this point, all usb ports are
>> broken, there was no more log in dmesg,
>
> If the other USB ports are not responding, then your problem is
> probably wider than the wireless device, and the wireless device
> is acting as the "canary in the mine"; failing first because it is
> the most active.
>
> Can you test to exclude possibility of damaged USB host controller or
> hub?

yes, dmesg below with an usb audio adapter and a usb mouse plugged at
boot time. then the rtl8192cu plugged, and i'm using it to retrieve
and send this mail.

my first guess was also about a damaged device or usb port
as those random crashes are recent.
note that the device i'm using here is not the same as the one
that triggered the previous errors.

>> lsusb still showed the device even after being unplugged. it got
>> even worse as reboot failed.
>
> Yes, once a USB host controller is failed, organised reboot can be
> difficult.  lsusb not updated confirms host controller not responding.
>
>> i cannot really trace the error as right now all thing works fine.
>
> Your dmesg looks like you removed and reinserted the wireless device
> several times.  Did you do that, or did the system do it without any
> physical action?

no, the device was always connected. i've only removed it long after
i noticed something went wrong and just before i tried reboot.

> A full dmesg from boot may be interesting, at least to better
> understand the USB host controller.
>

here it is.
thanks,

##
[    0.000000] random: get_random_bytes called from 
start_kernel+0x2a/0x413 with crng_init=0
[    0.000000] Linux version 4.13.8.20171019 (root@supernova) (gcc 
version 7.2.0 (GCC)) #1 SMP Thu Oct 19 03:53:05 EAT 2017
[    0.000000] Command line: BOOT_IMAGE=nirinA ro root=802 
vt.default_utf8=0 console=tty0 raid=noautodetect
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating 
point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Enabled xstate features 0x3, context size is 576 
bytes, using 'standard' format.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x00000000cdf30fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cdf31000-0x00000000ce25afff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ce25b000-0x00000000ce25bfff] 
ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000ce25c000-0x00000000ce373fff] 
ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ce374000-0x00000000ce6d8fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ce6d9000-0x00000000ce6d9fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000ce6da000-0x00000000ce71cfff] 
ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ce71d000-0x00000000cee19fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cee1a000-0x00000000ceff1fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ceff2000-0x00000000ceffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cf800000-0x00000000df9fffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed03fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000021f5fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] random: fast init done
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: To be filled by O.E.M. To be filled by O.E.M./ONDA 
H61V Ver:4.01, BIOS 4.6.5 01/07/2013
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x21f600 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-E7FFF uncachable
[    0.000000]   E8000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask E00000000 write-back
[    0.000000]   1 base 200000000 mask FE0000000 write-back
[    0.000000]   2 base 0E0000000 mask FE0000000 uncachable
[    0.000000]   3 base 0D0000000 mask FF0000000 uncachable
[    0.000000]   4 base 0CF800000 mask FFF800000 uncachable
[    0.000000]   5 base 21F800000 mask FFF800000 uncachable
[    0.000000]   6 base 21F600000 mask FFFE00000 uncachable
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WC  UC- 
WT
[    0.000000] e820: update [mem 0xcf800000-0xffffffff] usable ==> reserved
[    0.000000] e820: last_pfn = 0xcf000 max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [mem 0x000fd6f0-0x000fd6ff] mapped 
at [ffff8800000fd6f0]
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 24576
[    0.000000] BRK [0x02145000, 0x02145fff] PGTABLE
[    0.000000] BRK [0x02146000, 0x02146fff] PGTABLE
[    0.000000] BRK [0x02147000, 0x02147fff] PGTABLE
[    0.000000] BRK [0x02148000, 0x02148fff] PGTABLE
[    0.000000] BRK [0x02149000, 0x02149fff] PGTABLE
[    0.000000] BRK [0x0214a000, 0x0214afff] PGTABLE
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000F0490 000024 (v02 ALASKA)
[    0.000000] ACPI: XSDT 0x00000000CE362070 000064 (v01 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: FACP 0x00000000CE36B698 0000F4 (v04 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 0x00000000CE362170 009526 (v02 ALASKA A M I 
00000660 INTL 20051117)
[    0.000000] ACPI: FACS 0x00000000CE372F80 000040
[    0.000000] ACPI: APIC 0x00000000CE36B790 000062 (v03 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: FPDT 0x00000000CE36B7F8 000044 (v01 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: MCFG 0x00000000CE36B840 00003C (v01 ALASKA A M I 
01072009 MSFT 00000097)
[    0.000000] ACPI: HPET 0x00000000CE36B880 000038 (v01 ALASKA A M I 
01072009 AMI. 00000005)
[    0.000000] ACPI: SSDT 0x00000000CE36B8B8 00036D (v01 SataRe SataTabl 
00001000 INTL 20091112)
[    0.000000] ACPI: SSDT 0x00000000CE36BC28 000860 (v01 PmRef  Cpu0Ist 
00003000 INTL 20051117)
[    0.000000] ACPI: SSDT 0x00000000CE36C488 000A92 (v01 PmRef  CpuPm 
00003000 INTL 20051117)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000021f5fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009cfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000001fffffff]
[    0.000000]   node   0: [mem 0x0000000020200000-0x0000000040003fff]
[    0.000000]   node   0: [mem 0x0000000040005000-0x00000000cdf30fff]
[    0.000000]   node   0: [mem 0x00000000ce6d9000-0x00000000ce6d9fff]
[    0.000000]   node   0: [mem 0x00000000ce71d000-0x00000000cee19fff]
[    0.000000]   node   0: [mem 0x00000000ceff2000-0x00000000ceffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000021f5fffff]
[    0.000000] Initmem setup node 0 [mem 
0x0000000000001000-0x000000021f5fffff]
[    0.000000] On node 0 totalpages: 2021848
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3996 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 13137 pages used for memmap
[    0.000000]   DMA32 zone: 840764 pages, LIFO batch:31
[    0.000000]   Normal zone: 18392 pages used for memmap
[    0.000000]   Normal zone: 1177088 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics memory at 
0x00000000cfa00000-0x00000000df9fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 
0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009d000-0x0009dfff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x40004000-0x40004fff]
[    0.000000] PM: Registered nosave memory: [mem 0xcdf31000-0xce25afff]
[    0.000000] PM: Registered nosave memory: [mem 0xce25b000-0xce25bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xce25c000-0xce373fff]
[    0.000000] PM: Registered nosave memory: [mem 0xce374000-0xce6d8fff]
[    0.000000] PM: Registered nosave memory: [mem 0xce6da000-0xce71cfff]
[    0.000000] PM: Registered nosave memory: [mem 0xcee1a000-0xceff1fff]
[    0.000000] PM: Registered nosave memory: [mem 0xcf000000-0xcf7fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xcf800000-0xdf9fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xdfa00000-0xf7ffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xf8000000-0xfbffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfc000000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfecfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed00000-0xfed03fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed04000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] e820: [mem 0xdfa00000-0xf7ffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff 
max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:2 
nr_node_ids:1
[    0.000000] percpu: Embedded 37 pages/cpu @ffff88021f200000 s111192 
r8192 d32168 u1048576
[    0.000000] pcpu-alloc: s111192 r8192 d32168 u1048576 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on. 
Total pages: 1990234
[    0.000000] Kernel command line: BOOT_IMAGE=nirinA ro root=802 
vt.default_utf8=0 console=tty0 raid=noautodetect
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 
8388608 bytes)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 
4194304 bytes)
[    0.000000] Memory: 7863988K/8087392K available (9617K kernel code, 
1116K rwdata, 3012K rodata, 1440K init, 660K bss, 223404K reserved, 0K 
cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 36813 entries in 144 pages
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 4352, nr_irqs: 440, preallocated irqs: 16
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 133484882848 ns
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.001000] tsc: Detected 2594.066 MHz processor
[    0.001000] Calibrating delay loop (skipped), value calculated using 
timer frequency.. 5188.13 BogoMIPS (lpj=2594066)
[    0.001000] pid_max: default: 32768 minimum: 301
[    0.001000] ACPI: Core revision 20170531
[    0.005766] ACPI: 4 ACPI AML tables successfully acquired and loaded
[    0.005787] Security Framework initialized
[    0.005817] Mount-cache hash table entries: 16384 (order: 5, 131072 
bytes)
[    0.005843] Mountpoint-cache hash table entries: 16384 (order: 5, 
131072 bytes)
[    0.005982] CPU: Physical Processor ID: 0
[    0.005986] CPU: Processor Core ID: 0
[    0.005991] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.006003] ENERGY_PERF_BIAS: View and update with 
x86_energy_perf_policy(8)
[    0.006009] mce: CPU supports 7 MCE banks
[    0.006018] CPU0: Thermal monitoring enabled (TM1)
[    0.006028] process: using mwait in idle threads
[    0.006032] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
[    0.006035] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.006111] Freeing SMP alternatives memory: 36K
[    0.007054] smpboot: Max logical packages: 1
[    0.007467] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.017646] TSC deadline timer enabled
[    0.017648] smpboot: CPU0: Intel(R) Celeron(R) CPU G1610 @ 2.60GHz 
(family: 0x6, model: 0x3a, stepping: 0x9)
[    0.017701] Performance Events: PEBS fmt1+, IvyBridge events, 16-deep 
LBR, full-width counters, Intel PMU driver.
[    0.017726] ... version:                3
[    0.017728] ... bit width:              48
[    0.017731] ... generic registers:      8
[    0.017734] ... value mask:             0000ffffffffffff
[    0.017737] ... max period:             00007fffffffffff
[    0.017740] ... fixed-purpose events:   3
[    0.017743] ... event mask:             00000007000000ff
[    0.017772] Hierarchical SRCU implementation.
[    0.017840] smp: Bringing up secondary CPUs ...
[    0.017888] x86: Booting SMP configuration:
[    0.017892] .... node  #0, CPUs:      #1
[    0.078018] smp: Brought up 1 node, 2 CPUs
[    0.078018] smpboot: Total of 2 processors activated (10379.97 BogoMIPS)
[    0.079123] devtmpfs: initialized
[    0.079123] x86/mm: Memory block size: 128MB
[    0.079489] PM: Registering ACPI NVS region [mem 
0xce25c000-0xce373fff] (1146880 bytes)
[    0.079489] PM: Registering ACPI NVS region [mem 
0xce6da000-0xce71cfff] (274432 bytes)
[    0.079489] clocksource: jiffies: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.079489] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.079489] pinctrl core: initialized pinctrl subsystem
[    0.079489] NET: Registered protocol family 16
[    0.080026] cpuidle: using governor ladder
[    0.080026] cpuidle: using governor menu
[    0.080026] PCCT header not found.
[    0.080048] ACPI: bus type PCI registered
[    0.080052] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.080082] PCI: Using configuration type 1 for base access
[    0.080122] core: PMU erratum BJ122, BV98, HSD29 workaround disabled, 
HT off
[    0.083368] ACPI: Added _OSI(Module Device)
[    0.083368] ACPI: Added _OSI(Processor Device)
[    0.083368] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.083368] ACPI: Added _OSI(Processor Aggregator Device)
[    0.083368] ACPI: Executed 1 blocks of module-level executable AML code
[    0.086305] ACPI: Dynamic OEM Table Load:
[    0.086314] ACPI: SSDT 0xFFFF880216669000 00083B (v01 PmRef  Cpu0Cst 
00003001 INTL 20051117)
[    0.086395] ACPI: Dynamic OEM Table Load:
[    0.086395] ACPI: SSDT 0xFFFF88021642DC00 000303 (v01 PmRef  ApIst 
00003000 INTL 20051117)
[    0.087030] ACPI: Dynamic OEM Table Load:
[    0.087035] ACPI: SSDT 0xFFFF880216708200 000119 (v01 PmRef  ApCst 
00003000 INTL 20051117)
[    0.087379] ACPI: Interpreter enabled
[    0.087401] ACPI: (supports S0 S1 S3 S4 S5)
[    0.087404] ACPI: Using IOAPIC for interrupt routing
[    0.087428] PCI: Using host bridge windows from ACPI; if necessary, 
use "pci=nocrs" and report a bug
[    0.092821] ACPI: Power Resource [FN00] (off)
[    0.092884] ACPI: Power Resource [FN01] (off)
[    0.092945] ACPI: Power Resource [FN02] (off)
[    0.093005] ACPI: Power Resource [FN03] (off)
[    0.093066] ACPI: Power Resource [FN04] (off)
[    0.093467] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[    0.093474] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments 
MSI]
[    0.093596] acpi PNP0A08:00: _OSC: not requesting OS control; OS 
requires [ExtendedConfig ASPM ClockPM MSI]
[    0.093955] PCI host bridge to bus 0000:00
[    0.093960] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    0.093963] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    0.093967] pci_bus 0000:00: root bus resource [mem 
0x000a0000-0x000bffff window]
[    0.093972] pci_bus 0000:00: root bus resource [mem 
0x000d4000-0x000d7fff window]
[    0.093978] pci_bus 0000:00: root bus resource [mem 
0x000d8000-0x000dbfff window]
[    0.093983] pci_bus 0000:00: root bus resource [mem 
0x000dc000-0x000dffff window]
[    0.093988] pci_bus 0000:00: root bus resource [mem 
0x000e0000-0x000e3fff window]
[    0.093993] pci_bus 0000:00: root bus resource [mem 
0x000e4000-0x000e7fff window]
[    0.093998] pci_bus 0000:00: root bus resource [mem 
0xdfa00000-0xfeafffff window]
[    0.094002] pci_bus 0000:00: root bus resource [bus 00-3e]
[    0.094012] pci 0000:00:00.0: [8086:0150] type 00 class 0x060000
[    0.094090] pci 0000:00:02.0: [8086:0152] type 00 class 0x030000
[    0.094100] pci 0000:00:02.0: reg 0x10: [mem 0xf7800000-0xf7bfffff 64bit]
[    0.094105] pci 0000:00:02.0: reg 0x18: [mem 0xe0000000-0xefffffff 
64bit pref]
[    0.094109] pci 0000:00:02.0: reg 0x20: [io  0xf000-0xf03f]
[    0.094202] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[    0.094227] pci 0000:00:16.0: reg 0x10: [mem 0xf7c0a000-0xf7c0a00f 64bit]
[    0.094298] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.094370] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[    0.094391] pci 0000:00:1a.0: reg 0x10: [mem 0xf7c08000-0xf7c083ff]
[    0.094474] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.094540] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[    0.094558] pci 0000:00:1b.0: reg 0x10: [mem 0xf7c00000-0xf7c03fff 64bit]
[    0.094623] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.094688] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[    0.094764] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.094834] pci 0000:00:1c.2: [8086:1c14] type 01 class 0x060400
[    0.094909] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.094983] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[    0.095004] pci 0000:00:1d.0: reg 0x10: [mem 0xf7c07000-0xf7c073ff]
[    0.095086] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.095153] pci 0000:00:1f.0: [8086:1c5c] type 00 class 0x060100
[    0.095317] pci 0000:00:1f.2: [8086:1c02] type 00 class 0x010601
[    0.095335] pci 0000:00:1f.2: reg 0x10: [io  0xf0b0-0xf0b7]
[    0.095342] pci 0000:00:1f.2: reg 0x14: [io  0xf0a0-0xf0a3]
[    0.095350] pci 0000:00:1f.2: reg 0x18: [io  0xf090-0xf097]
[    0.095357] pci 0000:00:1f.2: reg 0x1c: [io  0xf080-0xf083]
[    0.095364] pci 0000:00:1f.2: reg 0x20: [io  0xf060-0xf07f]
[    0.095371] pci 0000:00:1f.2: reg 0x24: [mem 0xf7c06000-0xf7c067ff]
[    0.095411] pci 0000:00:1f.2: PME# supported from D3hot
[    0.095471] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[    0.095489] pci 0000:00:1f.3: reg 0x10: [mem 0xf7c05000-0xf7c050ff 64bit]
[    0.095509] pci 0000:00:1f.3: reg 0x20: [io  0xf040-0xf05f]
[    0.095626] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.095700] pci 0000:02:00.0: [10ec:8136] type 00 class 0x020000
[    0.095725] pci 0000:02:00.0: reg 0x10: [io  0xe000-0xe0ff]
[    0.095758] pci 0000:02:00.0: reg 0x18: [mem 0xf0004000-0xf0004fff 
64bit pref]
[    0.095778] pci 0000:02:00.0: reg 0x20: [mem 0xf0000000-0xf0003fff 
64bit pref]
[    0.095870] pci 0000:02:00.0: supports D1 D2
[    0.095871] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.098023] pci 0000:00:1c.2: PCI bridge to [bus 02]
[    0.098032] pci 0000:00:1c.2:   bridge window [io  0xe000-0xefff]
[    0.098042] pci 0000:00:1c.2:   bridge window [mem 
0xf0000000-0xf00fffff 64bit pref]
[    0.098071] pci_bus 0000:00: on NUMA node 0
[    0.098356] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 
14 15)
[    0.098402] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 
15) *0, disabled.
[    0.098448] ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 10 11 12 
14 15)
[    0.098490] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 *10 11 12 
14 15)
[    0.098533] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 
15) *0, disabled.
[    0.098578] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 
15) *0, disabled.
[    0.098623] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 10 11 12 
14 15)
[    0.098666] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 *11 12 
14 15)
[    0.098825] ACPI: Enabled 4 GPEs in block 00 to 3F
[    0.098882] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    0.098882] pci 0000:00:02.0: vgaarb: VGA device added: 
decodes=io+mem,owns=io+mem,locks=none
[    0.098882] pci 0000:00:02.0: vgaarb: bridge control possible
[    0.098882] vgaarb: loaded
[    0.098882] SCSI subsystem initialized
[    0.099002] libata version 3.00 loaded.
[    0.099005] ACPI: bus type USB registered
[    0.099023] usbcore: registered new interface driver usbfs
[    0.099033] usbcore: registered new interface driver hub
[    0.099043] usbcore: registered new device driver usb
[    0.099057] EDAC MC: Ver: 3.0.0
[    0.099114] PCI: Using ACPI for IRQ routing
[    0.099114] PCI: pci_cache_line_size set to 64 bytes
[    0.099114] e820: reserve RAM buffer [mem 0x0009d800-0x0009ffff]
[    0.099114] e820: reserve RAM buffer [mem 0x40004000-0x43ffffff]
[    0.099114] e820: reserve RAM buffer [mem 0xcdf31000-0xcfffffff]
[    0.099114] e820: reserve RAM buffer [mem 0xce6da000-0xcfffffff]
[    0.099114] e820: reserve RAM buffer [mem 0xcee1a000-0xcfffffff]
[    0.099114] e820: reserve RAM buffer [mem 0xcf000000-0xcfffffff]
[    0.099114] e820: reserve RAM buffer [mem 0x21f600000-0x21fffffff]
[    0.099133] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.099133] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.101009] clocksource: Switched to clocksource hpet
[    0.106961] VFS: Disk quotas dquot_6.6.0
[    0.106981] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 
bytes)
[    0.107043] pnp: PnP ACPI init
[    0.107133] system 00:00: [mem 0xfed40000-0xfed44fff] has been reserved
[    0.107139] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.107197] system 00:01: [io  0x0680-0x069f] has been reserved
[    0.107201] system 00:01: [io  0x0200-0x020f] has been reserved
[    0.107205] system 00:01: [io  0xffff] has been reserved
[    0.107209] system 00:01: [io  0xffff] has been reserved
[    0.107212] system 00:01: [io  0x0400-0x0453] has been reserved
[    0.107216] system 00:01: [io  0x0458-0x047f] has been reserved
[    0.107219] system 00:01: [io  0x0500-0x057f] has been reserved
[    0.107223] system 00:01: [io  0x164e-0x164f] has been reserved
[    0.107227] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107245] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.107278] system 00:03: [io  0x0454-0x0457] has been reserved
[    0.107282] system 00:03: Plug and Play ACPI device, IDs INT3f0d 
PNP0c02 (active)
[    0.107342] system 00:04: [io  0x0a30-0x0a3f] has been reserved
[    0.107346] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107376] pnp 00:05: Plug and Play ACPI device, IDs PNP0303 PNP030b 
(active)
[    0.107487] pnp 00:06: [dma 0 disabled]
[    0.107520] pnp 00:06: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.107553] system 00:07: [io  0x04d0-0x04d1] has been reserved
[    0.107558] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107712] system 00:08: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.107716] system 00:08: [mem 0xfed10000-0xfed17fff] has been reserved
[    0.107720] system 00:08: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.107724] system 00:08: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.107727] system 00:08: [mem 0xf8000000-0xfbffffff] has been reserved
[    0.107731] system 00:08: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.107735] system 00:08: [mem 0xfed90000-0xfed93fff] has been reserved
[    0.107739] system 00:08: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.107742] system 00:08: [mem 0xff000000-0xffffffff] has been reserved
[    0.107746] system 00:08: [mem 0xfee00000-0xfeefffff] could not be 
reserved
[    0.107750] system 00:08: [mem 0xdfa00000-0xdfa00fff] has been reserved
[    0.107754] system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107866] system 00:09: [mem 0x20000000-0x201fffff] has been reserved
[    0.107870] system 00:09: [mem 0x40004000-0x40004fff] has been reserved
[    0.107874] system 00:09: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.107891] pnp: PnP ACPI: found 10 devices
[    0.113798] clocksource: acpi_pm: mask: 0xffffff max_cycles: 
0xffffff, max_idle_ns: 2085701024 ns
[    0.113825] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.113839] pci 0000:00:1c.2: PCI bridge to [bus 02]
[    0.113845] pci 0000:00:1c.2:   bridge window [io  0xe000-0xefff]
[    0.113854] pci 0000:00:1c.2:   bridge window [mem 
0xf0000000-0xf00fffff 64bit pref]
[    0.113865] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    0.113866] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    0.113867] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff 
window]
[    0.113868] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff 
window]
[    0.113869] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff 
window]
[    0.113870] pci_bus 0000:00: resource 9 [mem 0x000dc000-0x000dffff 
window]
[    0.113871] pci_bus 0000:00: resource 10 [mem 0x000e0000-0x000e3fff 
window]
[    0.113872] pci_bus 0000:00: resource 11 [mem 0x000e4000-0x000e7fff 
window]
[    0.113873] pci_bus 0000:00: resource 12 [mem 0xdfa00000-0xfeafffff 
window]
[    0.113874] pci_bus 0000:02: resource 0 [io  0xe000-0xefff]
[    0.113875] pci_bus 0000:02: resource 2 [mem 0xf0000000-0xf00fffff 
64bit pref]
[    0.113947] NET: Registered protocol family 2
[    0.114057] TCP established hash table entries: 65536 (order: 7, 
524288 bytes)
[    0.114158] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.114341] TCP: Hash tables configured (established 65536 bind 65536)
[    0.114371] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    0.114399] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    0.114458] NET: Registered protocol family 1
[    0.114555] RPC: Registered named UNIX socket transport module.
[    0.114559] RPC: Registered udp transport module.
[    0.114562] RPC: Registered tcp transport module.
[    0.114564] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.114579] pmd_set_huge: Cannot satisfy [mem 0xf7800000-0xf7a00000] 
with a huge-page mapping due to MTRR override.
[    0.114592] pci 0000:00:02.0: BIOS left Intel GPU interrupts enabled; 
disabling
[    0.114611] pci 0000:00:02.0: Video device with shadowed ROM at [mem 
0x000c0000-0x000dffff]
[    0.147118] PCI: CLS 64 bytes, default 64
[    0.147154] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.147158] software IO TLB [mem 0xc9f31000-0xcdf31000] (64MB) mapped 
at [ffff8800c9f31000-ffff8800cdf30fff]
[    0.147223] RAPL PMU: API unit is 2^-32 Joules, 3 fixed counters, 
163840 ms ovfl timer
[    0.147228] RAPL PMU: hw unit of domain pp0-core 2^-16 Joules
[    0.147231] RAPL PMU: hw unit of domain package 2^-16 Joules
[    0.147234] RAPL PMU: hw unit of domain pp1-gpu 2^-16 Joules
[    0.147496] audit: initializing netlink subsys (disabled)
[    0.147530] audit: type=2000 audit(1509135453.147:1): 
state=initialized audit_enabled=0 res=1
[    0.147671] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    0.148709] NFS: Registering the id_resolver key type
[    0.148718] Key type id_resolver registered
[    0.148721] Key type id_legacy registered
[    0.148725] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.148801] ntfs: driver 2.1.32 [Flags: R/W].
[    0.148830] romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
[    0.150274] Block layer SCSI generic (bsg) driver version 0.4 loaded 
(major 252)
[    0.150303] io scheduler noop registered
[    0.150306] io scheduler deadline registered
[    0.150327] io scheduler cfq registered (default)
[    0.150330] io scheduler mq-deadline registered
[    0.150333] io scheduler kyber registered
[    0.150618] vesafb: mode is 1024x768x16, linelength=2048, pages=169
[    0.150622] vesafb: scrolling: redraw
[    0.150625] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[    0.150638] vesafb: framebuffer at 0xe0000000, mapped to 
0xffffc90000c00000, using 3072k, total 262080k
[    0.175394] Console: switching to colour frame buffer device 128x48
[    0.198189] fb0: VESA VGA frame buffer device
[    0.198401] intel_idle: MWAIT substates: 0x1120
[    0.198402] intel_idle: v0.4.1 model 0x3A
[    0.198455] intel_idle: lapic_timer_reliable_states 0xffffffff
[    0.198512] GHES: HEST is not enabled!
[    0.201091] brd: module loaded
[    0.201390] fnic: Cisco FCoE HBA Driver, ver 1.6.0.34
[    0.201638] fnic: Successfully Initialized Trace Buffer
[    0.201906] fnic: Successfully Initialized FC_CTLR Trace Buffer
[    0.202354] Adaptec aacraid driver 1.2.1[50834]-custom
[    0.202601] aic94xx: Adaptec aic94xx SAS/SATA driver version 1.0.3 loaded
[    0.203042] scsi: <fdomain> Detection failed (no card)
[    0.203293] qla2xxx [0000:00:00.0]-0005: : QLogic Fibre Channel HBA 
Driver: 10.00.00.00-k.
[    0.203682] Emulex LightPulse Fibre Channel SCSI driver 11.4.0.1
[    0.203960] Copyright (C) 2017 Broadcom. All Rights Reserved. The 
term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
[    0.204583] QLogic BR-series BFA FC/FCOE SCSI driver - version: 3.2.25.1
[    0.204927] megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 
EST 2006)
[    0.205288] megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 
2006)
[    0.205618] megasas: 07.701.17.00-rc1
[    0.205797] mpt3sas version 15.100.00.00 loaded
[    0.215058] GDT-HA: Storage RAID Controller Driver. Version: 3.05
[    0.224498] 3ware Storage Controller device driver for Linux 
v1.26.02.003.
[    0.233996] 3ware 9000 Storage Controller device driver for Linux 
v2.26.02.014.
[    0.243526] LSI 3ware SAS/SATA-RAID Controller device driver for 
Linux v3.26.02.000.
[    0.253071] ipr: IBM Power RAID SCSI Device Driver version: 2.6.4 
(March 14, 2017)
[    0.262627] RocketRAID 3xxx/4xxx Controller driver v1.10.0
[    0.272099] stex: Promise SuperTrak EX Driver version: 6.02.0000.01
[    0.281704] st: Version 20160209, fixed bufsize 32768, s/g segs 256
[    0.291470] ahci 0000:00:1f.2: version 3.0
[    0.291637] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 3 Gbps 
0x3 impl SATA mode
[    0.301535] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum 
part ems apst
[    0.314344] scsi host0: ahci
[    0.324214] scsi host1: ahci
[    0.333812] scsi host2: ahci
[    0.343146] scsi host3: ahci
[    0.352316] ata1: SATA max UDMA/133 abar m2048@0xf7c06000 port 
0xf7c06100 irq 24
[    0.361837] ata2: SATA max UDMA/133 abar m2048@0xf7c06000 port 
0xf7c06180 irq 24
[    0.371288] ata3: DUMMY
[    0.380649] ata4: DUMMY
[    0.390440] scsi host4: pata_legacy
[    0.399689] ata5: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
[    0.708585] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    0.718014] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    0.727274] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.736604] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.746153] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.755718] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT1._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.765606] ata2.00: ATAPI: TSSTcorp CDDVDW SH-224BB, SB00, max UDMA/100
[    0.775609] ata1.00: ATA-8: ST500DM002-1BD142, KC45, max UDMA/133
[    0.785624] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    0.797067] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.807493] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.818177] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.828867] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT1._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.839762] ata2.00: configured for UDMA/100
[    0.850477] ata1.00: configured for UDMA/133
[    1.183036] tsc: Refined TSC clocksource calibration: 2594.107 MHz
[    1.193411] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 
0x25647d583cf, max_idle_ns: 440795304232 ns
[    2.207229] clocksource: Switched to clocksource tsc
[    3.231153] floppy0: no floppy controllers found
[    3.241619] scsi 0:0:0:0: Direct-Access     ATA      ST500DM002-1BD14 
KC45 PQ: 0 ANSI: 5
[    3.252177] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 
GB/466 GiB)
[    3.262613] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    3.273018] sd 0:0:0:0: [sda] Write Protect is off
[    3.273021] scsi 1:0:0:0: CD-ROM            TSSTcorp CDDVDW SH-224BB 
SB00 PQ: 0 ANSI: 5
[    3.293731] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.293742] sd 0:0:0:0: [sda] Write cache: enabled, read cache: 
enabled, doesn't support DPO or FUA
[    3.319639] sr 1:0:0:0: [sr0] scsi3-mmc drive: 48x/48x writer dvd-ram 
cd/rw xa/form2 cdda tray
[    3.330204] cdrom: Uniform CD-ROM driver Revision: 3.20
[    3.340791] sr 1:0:0:0: Attached scsi CD-ROM sr0
[    3.343079]  sda: sda1 sda2 sda3 sda5 sda6
[    3.353800] sd 0:0:0:0: [sda] Attached SCSI disk
[    3.364320] scsi host4: pata_legacy
[    3.374453] ata6: PATA max PIO4 cmd 0x170 ctl 0x376 irq 15
[    3.543439] Fusion MPT base driver 3.04.20
[    3.553407] Copyright (c) 1999-2008 LSI Corporation
[    3.563330] Fusion MPT SPI Host driver 3.04.20
[    3.573403] Fusion MPT FC Host driver 3.04.20
[    3.583554] Fusion MPT SAS Host driver 3.04.20
[    3.593795] Fusion MPT misc device (ioctl) driver 3.04.20
[    3.604011] mptctl: Registered with Fusion MPT base driver
[    3.614354] mptctl: /dev/mptctl @ (major,minor=10,220)
[    3.624610] Fusion MPT LAN driver 3.04.20
[    3.635049] usbcore: registered new interface driver usbserial
[    3.645608] usbcore: registered new interface driver usbserial_generic
[    3.656060] usbserial: USB Serial support registered for generic
[    3.666540] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    3.677252] i8042: PNP: PS/2 appears to have AUX port disabled, if 
this is incorrect please boot with i8042.nopnp
[    3.688678] serio: i8042 KBD port at 0x60,0x64 irq 1
[    3.699471] mousedev: PS/2 mouse device common for all mice
[    3.710012] rtc_cmos 00:02: RTC can wake from S4
[    3.720448] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    3.730561] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes 
nvram, hpet irqs
[    3.740760] intel_pstate: Intel P-state driver initializing
[    3.751077] ip_tables: (C) 2000-2006 Netfilter Core Team
[    3.766645] Initializing XFRM netlink socket
[    3.776445] NET: Registered protocol family 17
[    3.786018] Key type dns_resolver registered
[    3.795546] microcode: sig=0x306a9, pf=0x2, revision=0x10
[    3.804839] microcode: Microcode Update Driver: v2.2.
[    3.804849] sched_clock: Marking stable (3804833789, 0)->(3805320172, 
-486383)
[    3.823571] input: AT Translated Set 2 keyboard as 
/devices/platform/i8042/serio0/input/input0
[    3.823649] registered taskstats version 1
[    3.865260] EXT4-fs (sda2): couldn't mount as ext3 due to feature 
incompatibilities
[    3.917720] EXT4-fs (sda2): mounted filesystem with ordered data 
mode. Opts: (null)
[    3.932431] VFS: Mounted root (ext4 filesystem) readonly on device 8:2.
[    3.954965] devtmpfs: mounted
[    3.965977] Freeing unused kernel memory: 1440K
[    3.977257] Write protecting the kernel read-only data: 14336k
[    3.986825] Freeing unused kernel memory: 616K
[    3.998082] Freeing unused kernel memory: 1084K
[    4.006960] rodata_test: all tests were successful
[    4.673130] random: crng init done
[    5.435976] udevd[153]: bind failed: Read-only file system
[    5.449739] udevd[153]: error binding udev control socket
[    5.593569] Adding 16787920k swap on /dev/sda3.  Priority:-1 
extents:1 across:16787920k
[    5.936881] fuse init (API version 7.26)
[    7.231377] EXT4-fs (sda2): re-mounted. Opts: (null)
[    7.270874] EXT4-fs (sda2): re-mounted. Opts: (null)
[   10.841139] EXT4-fs (sda5): mounted filesystem with ordered data 
mode. Opts: (null)
[   10.987833] EXT4-fs (sda6): mounted filesystem with ordered data 
mode. Opts: (null)
[   11.116467] EXT4-fs (sda1): mounted filesystem with ordered data 
mode. Opts: (null)
[   16.455793] udevd[528]: starting eudev-3.2.4
[   17.002954] input: Power Button as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[   17.002973] ACPI: Power Button [PWRB]
[   17.003147] input: Power Button as 
/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[   17.003158] ACPI: Power Button [PWRF]
[   17.233207] ACPI Warning: SystemIO range 
0x0000000000000428-0x000000000000042F conflicts with OpRegion 
0x0000000000000400-0x000000000000047F (\PMIO) (20170531/utaddress-247)
[   17.233212] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.233214] ACPI Warning: SystemIO range 
0x0000000000000540-0x000000000000054F conflicts with OpRegion 
0x0000000000000500-0x0000000000000563 (\GPIO) (20170531/utaddress-247)
[   17.233217] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.233217] ACPI Warning: SystemIO range 
0x0000000000000530-0x000000000000053F conflicts with OpRegion 
0x0000000000000500-0x0000000000000563 (\GPIO) (20170531/utaddress-247)
[   17.233220] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.233220] ACPI Warning: SystemIO range 
0x0000000000000500-0x000000000000052F conflicts with OpRegion 
0x0000000000000500-0x0000000000000563 (\GPIO) (20170531/utaddress-247)
[   17.233222] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.233223] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   17.282124] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   17.288596] ehci-pci: EHCI PCI platform driver
[   17.288760] ehci-pci 0000:00:1a.0: EHCI Host Controller
[   17.288813] ehci-pci 0000:00:1a.0: new USB bus registered, assigned 
bus number 1
[   17.288827] ehci-pci 0000:00:1a.0: debug port 2
[   17.292722] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[   17.292738] ehci-pci 0000:00:1a.0: irq 16, io mem 0xf7c08000
[   17.293717] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[   17.314322] 00:06: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) 
is a 16550A
[   17.314343] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[   17.314391] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   17.314392] usb usb1: New USB device strings: Mfr=3, Product=2, 
SerialNumber=1
[   17.314393] usb usb1: Product: EHCI Host Controller
[   17.314394] usb usb1: Manufacturer: Linux 4.13.8.20171019 ehci_hcd
[   17.314395] usb usb1: SerialNumber: 0000:00:1a.0
[   17.314493] hub 1-0:1.0: USB hub found
[   17.314498] hub 1-0:1.0: 2 ports detected
[   17.314705] ehci-pci 0000:00:1d.0: EHCI Host Controller
[   17.314742] ehci-pci 0000:00:1d.0: new USB bus registered, assigned 
bus number 2
[   17.314753] ehci-pci 0000:00:1d.0: debug port 2
[   17.318659] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[   17.318671] ehci-pci 0000:00:1d.0: irq 23, io mem 0xf7c07000
[   17.325011] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[   17.325038] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[   17.325039] usb usb2: New USB device strings: Mfr=3, Product=2, 
SerialNumber=1
[   17.325041] usb usb2: Product: EHCI Host Controller
[   17.325042] usb usb2: Manufacturer: Linux 4.13.8.20171019 ehci_hcd
[   17.325042] usb usb2: SerialNumber: 0000:00:1d.0
[   17.325136] hub 2-0:1.0: USB hub found
[   17.325140] hub 2-0:1.0: 2 ports detected
[   17.340999] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[   17.355509] Linux agpgart interface v0.103
[   17.423770] thermal LNXTHERM:00: registered as thermal_zone0
[   17.423772] ACPI: Thermal Zone [TZ00] (28 C)
[   17.424000] thermal LNXTHERM:01: registered as thermal_zone1
[   17.424014] ACPI: Thermal Zone [TZ01] (30 C)
[   17.580716] input: PC Speaker as /devices/platform/pcspkr/input/input3
[   17.623013] usb 1-1: new high-speed USB device number 2 using ehci-pci
[   17.640030] usb 2-1: new high-speed USB device number 2 using ehci-pci
[   17.741402] usb 1-1: New USB device found, idVendor=8087, idProduct=0024
[   17.741404] usb 1-1: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0
[   17.741545] hub 1-1:1.0: USB hub found
[   17.741646] hub 1-1:1.0: 4 ports detected
[   17.760429] usb 2-1: New USB device found, idVendor=8087, idProduct=0024
[   17.760432] usb 2-1: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0
[   17.760682] hub 2-1:1.0: USB hub found
[   17.760773] hub 2-1:1.0: 6 ports detected
[   17.805182] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   17.805541] r8169 0000:02:00.0 eth0: RTL8105e at 0xffffc90000031000, 
00:e0:66:84:16:a7, XID 00a00000 IRQ 26
[   18.015031] usb 1-1.2: new full-speed USB device number 3 using ehci-pci
[   18.031011] usb 2-1.3: new low-speed USB device number 3 using ehci-pci
[   18.116428] usb 2-1.3: New USB device found, idVendor=1c4f, 
idProduct=0034
[   18.116431] usb 2-1.3: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
[   18.116432] usb 2-1.3: Product: Usb Mouse
[   18.116434] usb 2-1.3: Manufacturer: SIGMACHIP
[   18.141508] i2c /dev entries driver
[   18.594623] [drm] Memory usable by graphics device = 2048M
[   18.594626] checking generic (e0000000 fff0000) vs hw (e0000000 10000000)
[   18.594627] fb: switching to inteldrmfb from VESA VGA
[   18.594651] Console: switching to colour dummy device 80x25
[   18.594736] [drm] Replacing VGA console driver
[   18.601079] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   18.601080] [drm] Driver supports precise vblank timestamp query.
[   18.604169] i915 0000:00:02.0: vgaarb: changed VGA decodes: 
olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   18.608058] [drm] Initialized i915 1.6.0 20170619 for 0000:00:02.0 on 
minor 0
[   18.608403] ACPI: Video Device [GFX0] (multi-head: yes  rom: no 
post: no)
[   18.608591] acpi device:49: registered as cooling_device7
[   18.608642] input: Video Bus as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input4
[   18.625111] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops 
i915_audio_component_bind_ops [i915])
[   18.655772] usb 1-1.2: New USB device found, idVendor=1b3f, 
idProduct=2007
[   18.655775] usb 1-1.2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
[   18.655776] usb 1-1.2: Product: USB Audio Device
[   18.655778] usb 1-1.2: Manufacturer: GeneralPlus
[   18.671440] fbcon: inteldrmfb (fb0) is primary device
[   18.733098] Console: switching to colour frame buffer device 170x48
[   18.751719] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   19.250076] snd_hda_codec_realtek hdaudioC1D2: autoconfig for ALC662 
rev3: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[   19.250078] snd_hda_codec_realtek hdaudioC1D2:    speaker_outs=0 
(0x0/0x0/0x0/0x0/0x0)
[   19.250080] snd_hda_codec_realtek hdaudioC1D2:    hp_outs=1 
(0x1b/0x0/0x0/0x0/0x0)
[   19.250081] snd_hda_codec_realtek hdaudioC1D2:    mono: mono_out=0x0
[   19.250082] snd_hda_codec_realtek hdaudioC1D2:    dig-out=0x1e/0x0
[   19.250083] snd_hda_codec_realtek hdaudioC1D2:    inputs:
[   19.250085] snd_hda_codec_realtek hdaudioC1D2:      Front Mic=0x19
[   19.250086] snd_hda_codec_realtek hdaudioC1D2:      Rear Mic=0x18
[   19.250087] snd_hda_codec_realtek hdaudioC1D2:      Line=0x1a
[   19.617638] input: HDA Intel PCH Front Mic as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input5
[   19.617690] input: HDA Intel PCH Rear Mic as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input6
[   19.617720] input: HDA Intel PCH Line as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input7
[   19.617752] input: HDA Intel PCH Line Out as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input8
[   19.617782] input: HDA Intel PCH Front Headphone as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input9
[   19.617813] input: HDA Intel PCH HDMI/DP,pcm=3 as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input10
[   19.617843] input: HDA Intel PCH HDMI/DP,pcm=7 as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input11
[   19.617873] input: HDA Intel PCH HDMI/DP,pcm=8 as 
/devices/pci0000:00/0000:00:1b.0/sound/card1/input12
[   20.392010] usb 2-1.3: USB disconnect, device number 3
[   20.657288] hidraw: raw HID events driver (C) Jiri Kosina
[   20.703225] usbcore: registered new interface driver usbhid
[   20.703226] usbhid: USB HID core driver
[   20.734521] usb 1-1.2: 1:1: cannot get freq at ep 0x5
[   20.735257] usb 1-1.2: 2:1: cannot get freq at ep 0x86
[   20.751131] usbcore: registered new interface driver snd-usb-audio
[   20.907898] input: GeneralPlus USB Audio Device as 
/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.3/0003:1B3F:2007.0001/input/input13
[   20.959334] hid-generic 0003:1B3F:2007.0001: input,hidraw0: USB HID 
v2.01 Device [GeneralPlus USB Audio Device] on usb-0000:00:1a.0-1.2/input3
[   21.815028] usb 2-1.3: new low-speed USB device number 4 using ehci-pci
[   21.898249] usb 2-1.3: New USB device found, idVendor=1c4f, 
idProduct=0034
[   21.898252] usb 2-1.3: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
[   21.898254] usb 2-1.3: Product: Usb Mouse
[   21.898255] usb 2-1.3: Manufacturer: SIGMACHIP
[   21.900987] input: SIGMACHIP Usb Mouse as 
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:1C4F:0034.0002/input/input14
[   21.901152] hid-generic 0003:1C4F:0034.0002: input,hidraw1: USB HID 
v1.10 Mouse [SIGMACHIP Usb Mouse] on usb-0000:00:1d.0-1.3/input0
[   23.193054] r8169 0000:02:00.0 eth0: link down
[   23.193070] r8169 0000:02:00.0 eth0: link down
[   23.589795] NET: Registered protocol family 10
[   23.590227] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   23.590274] Segment Routing with IPv6
[   24.516778] NFSD: the nfsdcld client tracking upcall will be removed 
in 3.10. Please transition to using nfsdcltrack.
[   24.516780] NFSD: starting 90-second grace period (net ffffffff81ee6400)
[   24.773386] r8169 0000:02:00.0 eth0: link up
[   24.773400] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   35.748078] nct6775: Found NCT6779D or compatible chip at 0x2e:0xa30
[   36.252940] NET: Registered protocol family 4
[   36.266545] NET: Registered protocol family 5
[  145.887086] NFSD: Unable to end grace period: -110
[  309.194881] usb 1-1.2: 1:1: cannot get freq at ep 0x5
[  813.692026] usb 2-1.4: new high-speed USB device number 5 using ehci-pci
[  813.771752] usb 2-1.4: New USB device found, idVendor=0bda, 
idProduct=8178
[  813.771754] usb 2-1.4: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[  813.771756] usb 2-1.4: Product: 802.11n WLAN Adapter
[  813.771757] usb 2-1.4: Manufacturer: Realtek
[  813.771757] usb 2-1.4: SerialNumber: 00e04c000001
[  813.954745] rtl8192cu: Chip version 0x11
[  814.031127] rtl8192cu: Board Type 0
[  814.031368] rtl_usb: rx_max_size 15360, rx_urb_num 8, in_ep 1
[  814.031398] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw_TMSC.bin
[  814.031534] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
[  814.031712] usbcore: registered new interface driver rtl8192cu
[  814.034508] usbcore: registered new interface driver rtl8xxxu
[  814.114407] rtl8192cu 2-1.4:1.0 wlan125: renamed from wlan0
[  814.119131] rtl8192cu 2-1.4:1.0 wlan1: renamed from wlan125
[  872.272098] rtl8192cu: MAC auto ON okay!
[  872.304968] rtl8192cu: Tx queue select: 0x05
[  872.906879] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[  881.042276] rtl8192cu: MAC auto ON okay!
[  881.075282] rtl8192cu: Tx queue select: 0x05
[  881.677711] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[  881.840898] rtl8192cu: MAC auto ON okay!
[  881.874650] rtl8192cu: Tx queue select: 0x05
[  882.478431] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[  885.721281] wlan1: authenticate with 16:6b:72:6d:9d:fc
[  885.747759] wlan1: send auth to 16:6b:72:6d:9d:fc (try 1/3)
[  885.751276] wlan1: authenticated
[  885.752070] wlan1: associate with 16:6b:72:6d:9d:fc (try 1/3)
[  885.768967] wlan1: RX AssocResp from 16:6b:72:6d:9d:fc (capab=0x431 
status=0 aid=1)
[  885.872798] wlan1: associated
[  885.873506] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready

##

--
nirinA

^ permalink raw reply

* [PATCH 1/1] ocb: Use common freqchan helper for setting the operating channel
From: Peter Große @ 2017-10-27 21:43 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

Simplify code by using the helper which has been introduced earlier.

Signed-off-by: Peter Große <pegro@friiks.de>
---
 ocb.c | 50 ++++++++------------------------------------------
 1 file changed, 8 insertions(+), 42 deletions(-)

diff --git a/ocb.c b/ocb.c
index bcf0474..dfdaf59 100644
--- a/ocb.c
+++ b/ocb.c
@@ -10,56 +10,22 @@ static int join_ocb(struct nl80211_state *state,
 		    struct nl_msg *msg, int argc, char **argv,
 		    enum id_input id)
 {
-	unsigned long freq;
-	char *end;
-	unsigned int i;
-	const struct chanmode *chanmode_selected = NULL;
-	static const struct chanmode chanmode[] = {
-		{ .name = "5MHz",
-		  .width = NL80211_CHAN_WIDTH_5,
-		  .freq1_diff = 0,
-		  .chantype = -1 },
-		{ .name = "10MHz",
-		  .width = NL80211_CHAN_WIDTH_10,
-		  .freq1_diff = 0,
-		  .chantype = -1 },
-	};
+	struct chandef chandef;
+	int err, parsed;
 
 	if (argc < 2)
 		return 1;
 
-	/* freq */
-	freq = strtoul(argv[0], &end, 10);
-	if (*end != '\0')
-		return 1;
-
-	NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_FREQ, freq);
-	argv++;
-	argc--;
+	err = parse_freqchan(&chandef, false, argc, argv, &parsed);
 
-	/* channel width */
-	for (i = 0; i < ARRAY_SIZE(chanmode); i++) {
-		if (strcasecmp(chanmode[i].name, argv[0]) == 0) {
-			chanmode_selected = &chanmode[i];
-			break;
-		}
-	}
-	if (chanmode_selected) {
-		NLA_PUT_U32(msg, NL80211_ATTR_CHANNEL_WIDTH,
-			    chanmode_selected->width);
-		NLA_PUT_U32(msg, NL80211_ATTR_CENTER_FREQ1,
-			    get_cf1(chanmode_selected, freq));
+	if (err)
+		return err;
 
-		argv++;
-		argc--;
-	} else {
-		return 1;
-	}
+	put_chandef(msg, &chandef);
+	if (err)
+		return err;
 
 	return 0;
-
-nla_put_failure:
-	return -ENOBUFS;
 }
 COMMAND(ocb, join, "<freq in MHz> <5MHz|10MHz>",
 	NL80211_CMD_JOIN_OCB, 0, CIB_NETDEV, join_ocb,
-- 
2.13.6

^ permalink raw reply related

* Re: rtlwifi oops
From: James Cameron @ 2017-10-27 22:57 UTC (permalink / raw)
  To: nirinA raseliarison; +Cc: Larry Finger, linux-wireless
In-Reply-To: <7532bb89-9f58-f2e2-e9c3-baa4be24da81@gmail.com>

On Sat, Oct 28, 2017 at 12:02:30AM +0300, nirinA raseliarison wrote:
> On 10/27/2017 07:57 AM, James Cameron wrote:
> >On Fri, Oct 27, 2017 at 04:08:48AM +0300, nirinA raseliarison wrote:
> >>hi all,
> >>i applied the patch against 4.13.8. i still got some trouble, dmesg
> >>is below.
> >
> >As this new event does not have "disabled by hub (EMI?)", it is a
> >different problem to your 19th October post, so I don't think the
> >patch is relevant.
> >
> >>after i plugged the device, it seems to be detected and all modules
> >>loaded, but when i tried to connect to an access point, by using
> >>wicd, it halted after a while. at this point, all usb ports are
> >>broken, there was no more log in dmesg,
> >
> >If the other USB ports are not responding, then your problem is
> >probably wider than the wireless device, and the wireless device
> >is acting as the "canary in the mine"; failing first because it is
> >the most active.
> >
> >Can you test to exclude possibility of damaged USB host controller or
> >hub?
> 
> yes, dmesg below with an usb audio adapter and a usb mouse plugged at
> boot time. then the rtl8192cu plugged, and i'm using it to retrieve
> and send this mail.

Thanks.

Your dmesg shows the mouse is discovered, then disconnects, then
reconnects.  I can't tell if your mouse normally does this.  Can you
also test for the wireless problem without the USB mouse, or with a
different mouse?

Your dmesg also shows "cannot get freq" for USB audio device
endpoints, but I'm not sure what this means.

> my first guess was also about a damaged device or usb port
> as those random crashes are recent.
> note that the device i'm using here is not the same as the one
> that triggered the previous errors.
> 
> >>lsusb still showed the device even after being unplugged. it got
> >>even worse as reboot failed.
> >
> >Yes, once a USB host controller is failed, organised reboot can be
> >difficult.  lsusb not updated confirms host controller not responding.
> >
> >>i cannot really trace the error as right now all thing works fine.
> >
> >Your dmesg looks like you removed and reinserted the wireless device
> >several times.  Did you do that, or did the system do it without any
> >physical action?
> 
> no, the device was always connected. i've only removed it long after
> i noticed something went wrong and just before i tried reboot.

Okay, thanks.  I'm worried that unexpected disconnect suggests a USB
host or hub problem.

> >A full dmesg from boot may be interesting, at least to better
> >understand the USB host controller.
> >
> 
> here it is.
> thanks,
> [...]

-- 
James Cameron
http://quozl.netrek.org/

^ permalink raw reply

* Re: RTL usb adapter question
From: David Ashley @ 2017-10-28  3:23 UTC (permalink / raw)
  To: James Cameron; +Cc: linux-wireless
In-Reply-To: <20171027044149.GG9888@us.netrek.org>

On 10/26/17, James Cameron <quozl@laptop.org> wrote:
> Interesting, thanks.  It should be a QFN 46 pin chip; you may have
> counted 15 instead of 14 pins on the long edge.  Send me a photograph
> of the inside, off-list?

I uploaded a couple of pictures here:
http://www.linuxmotors.com/RTL8188CUS/

You're right, I miscounted, it has 46 pins.

-Dave

^ permalink raw reply

* Re: RTL usb adapter question
From: James Cameron @ 2017-10-28  3:44 UTC (permalink / raw)
  To: David Ashley; +Cc: linux-wireless
In-Reply-To: <CABkE59AL=Cj_AoLo8qk01ia3vaHye29Wje=pPoA_r4mCPq_9mQ@mail.gmail.com>

On Fri, Oct 27, 2017 at 10:23:54PM -0500, David Ashley wrote:
> On 10/26/17, James Cameron <quozl@laptop.org> wrote:
> > Interesting, thanks.  It should be a QFN 46 pin chip; you may have
> > counted 15 instead of 14 pins on the long edge.  Send me a photograph
> > of the inside, off-list?
> 
> I uploaded a couple of pictures here:
> http://www.linuxmotors.com/RTL8188CUS/
> 
> You're right, I miscounted, it has 46 pins.

Thanks.  The BZ5JA might be 5V to 3.3V switching voltage regulator,
with inductor above it.

Datasheet shows there is internal non-volatile memory, powered from
pin 27, which has a trace to an external filter capacitor.

The large zero ohm resistor bottom right is interesting; size chosen
for accessibility; probably for fault isolation or qualification.

In summary, the board design is consistent with the datasheet, and
confirms non-volatile memory that will contain configuration data and
probably firmware.

I agree with Larry; try the firmware file.

-- 
James Cameron
http://quozl.netrek.org/

^ permalink raw reply

* [PATCH net-next] rsi: remove unused including <linux/version.h>
From: Wei Yongjun @ 2017-10-28  5:10 UTC (permalink / raw)
  To: Kalle Valo, Karun Eagalapati, Amitkumar Karwar,
	Prameela Rani Garnepudi
  Cc: Wei Yongjun, linux-wireless

Remove including <linux/version.h> that don't need it.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
 drivers/net/wireless/rsi/rsi_91x_ps.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/wireless/rsi/rsi_91x_ps.c b/drivers/net/wireless/rsi/rsi_91x_ps.c
index 523f532..410c55f 100644
--- a/drivers/net/wireless/rsi/rsi_91x_ps.c
+++ b/drivers/net/wireless/rsi/rsi_91x_ps.c
@@ -16,7 +16,6 @@
 
 #include <linux/etherdevice.h>
 #include <linux/if.h>
-#include <linux/version.h>
 #include "rsi_debugfs.h"
 #include "rsi_mgmt.h"
 #include "rsi_common.h"

^ permalink raw reply related

* Re: [RFC PATCH v10 0/7] PCI: rockchip: Move PCIe WAKE# handling into pci core
From: Rafael J. Wysocki @ 2017-10-28  9:07 UTC (permalink / raw)
  To: Jeffy Chen
  Cc: linux-kernel, bhelgaas, linux-pm, tony, shawn.lin, briannorris,
	dianders, Xinming Hu, linux-pci, Rob Herring, Catalin Marinas,
	Kalle Valo, Heiko Stuebner, linux-acpi, linux-rockchip,
	Nishant Sarmukadam, Will Deacon, Matthias Kaehlcke, devicetree,
	Ganapathi Bhat, Frank Rowand, Len Brown, Amitkumar Karwar,
	linux-arm-kernel, netdev, linux-wireless, Caesar Wang,
	Klaus Goger, Mark Rutland
In-Reply-To: <20171027072612.26565-1-jeffy.chen@rock-chips.com>

On Friday, October 27, 2017 9:26:05 AM CEST Jeffy Chen wrote:
> 
> Currently we are handling wake irq in mrvl wifi driver. Move it into
> pci core.
> 
> Tested on my chromebook bob(with cros 4.4 kernel and mrvl wifi).
> 
> 
> Changes in v10:
> Use device_set_wakeup_capable() instead of device_set_wakeup_enable(),
> since dedicated wakeirq will be lost in device_set_wakeup_enable(false).
> 
> Changes in v9:
> Add section for PCI devices and rewrite the commit message.
> Rewrite the commit message.
> Fix check error in .cleanup().
> Move dedicated wakeirq setup to setup() callback and use
> device_set_wakeup_enable() to enable/disable.
> 
> Changes in v8:
> Add optional "pci", and rewrite commit message.
> Rewrite the commit message.
> Add pci-of.c and use platform_pm_ops to handle the PCIe WAKE# signal.
> 
> Changes in v7:
> Move PCIE_WAKE handling into pci core.
> 
> Changes in v6:
> Fix device_init_wake error handling, and add some comments.
> 
> Changes in v5:
> Move to pci.txt
> Use "wakeup" instead of "wake"
> Rebase.
> 
> Changes in v3:
> Fix error handling.
> 
> Changes in v2:
> Use dev_pm_set_dedicated_wake_irq.
> 
> Jeffy Chen (7):
>   dt-bindings: PCI: Add definition of PCIe WAKE# irq and PCI irq
>   of/irq: Adjust of_pci_irq parsing for multiple interrupts
>   mwifiex: Disable wakeup irq handling for pcie
>   arm64: dts: rockchip: Move PCIe WAKE# irq to pcie driver for Gru
>   PCI: Make pci_platform_pm_ops's callbacks optional
>   PCI / PM: Move acpi wakeup code to pci core
>   PCI / PM: Add support for the PCIe WAKE# signal for OF

Overall, I don't quite like the direction this is going into, but I need to
have a deeper look.  Which may take some time, so please bear with me.

Thanks,
Rafael

^ permalink raw reply

* Re: [PATCH 03/12] wil6210: refresh FW capabilities during interface up
From: Kalle Valo @ 2017-10-28 15:01 UTC (permalink / raw)
  To: Maya Erez; +Cc: Lior David, linux-wireless, wil6210
In-Reply-To: <1508937247-11890-4-git-send-email-qca_merez@qca.qualcomm.com>

Maya Erez <qca_merez@qca.qualcomm.com> writes:

> From: Lior David <qca_liord@qca.qualcomm.com>
>
> FW capabilities are currently retrieved only during module
> initialization, but userspace can replace the firmware while
> interface is down, so refresh the FW capabilities when
> interface is up (after FW is loaded) to ensure driver
> functionality matches the loaded FW.

I think usually the firmware is loaded only once during probe() and I
think it's quite special that you retrieve it during interface up. Being
able to change the firmware version runtime like that can lead to
problems eventually, for example cfg80211 might not allow changing
already registered configuration etc.

-- 
Kalle Valo

^ permalink raw reply

* Re: [PATCH 12/12] wil6210: update statistics for suspend
From: Kalle Valo @ 2017-10-28 15:18 UTC (permalink / raw)
  To: Maya Erez; +Cc: Lazar Alexei, linux-wireless, wil6210
In-Reply-To: <1508937247-11890-13-git-send-email-qca_merez@qca.qualcomm.com>

Maya Erez <qca_merez@qca.qualcomm.com> writes:

> From: Lazar Alexei <qca_ailizaro@qca.qualcomm.com>
>
> Currently the statistics show how many successful/failed
> suspend/resume operations the system had.
> Update the statistics by splitting each successful/failed
> suspend/resume operations to radio on/off.
>
> Signed-off-by: Lazar Alexei <qca_ailizaro@qca.qualcomm.com>
> Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
> ---
>  drivers/net/wireless/ath/wil6210/debugfs.c  | 27 ++++++++++++++++++---------
>  drivers/net/wireless/ath/wil6210/pcie_bus.c | 20 ++++++++++++++------
>  drivers/net/wireless/ath/wil6210/pm.c       |  8 +++++---
>  drivers/net/wireless/ath/wil6210/wil6210.h  | 11 ++++++++---
>  4 files changed, 45 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
> index 03d17ea..9164855 100644
> --- a/drivers/net/wireless/ath/wil6210/debugfs.c
> +++ b/drivers/net/wireless/ath/wil6210/debugfs.c
> @@ -1685,20 +1685,29 @@ static ssize_t wil_read_suspend_stats(struct file *file,
>  				      size_t count, loff_t *ppos)
>  {
>  	struct wil6210_priv *wil = file->private_data;
> -	static char text[400];
> +	static char text[500];

I was first about to mention about excessive stack usage but only then I
noticed the static keyword. That again is problematic when you have two
(or more) devices as then they would be accessing the same buffer,
right?

As this from debugfs interface I admit that it's a very theoretical
issue but still something which should be fixed. I can still take this
patch, but please fix the static usage in a followup patch.

-- 
Kalle Valo

^ permalink raw reply

* Re: [PATCH 03/12] wil6210: refresh FW capabilities during interface up
From: Lior David @ 2017-10-28 15:25 UTC (permalink / raw)
  To: Kalle Valo, Maya Erez; +Cc: Lior David, linux-wireless, wil6210
In-Reply-To: <87o9ors4ef.fsf@purkki.adurom.net>



On 10/28/2017 6:01 PM, Kalle Valo wrote:
> Maya Erez <qca_merez@qca.qualcomm.com> writes:
> 
>> From: Lior David <qca_liord@qca.qualcomm.com>
>>
>> FW capabilities are currently retrieved only during module
>> initialization, but userspace can replace the firmware while
>> interface is down, so refresh the FW capabilities when
>> interface is up (after FW is loaded) to ensure driver
>> functionality matches the loaded FW.
> 
> I think usually the firmware is loaded only once during probe() and I
> think it's quite special that you retrieve it during interface up. Being
> able to change the firmware version runtime like that can lead to
> problems eventually, for example cfg80211 might not allow changing
> already registered configuration etc.
> 
Yes you are right, it is not perfect.
We shutdown our chip in interface down so the FW is lost, we have to load it
every interface up. We could request_firmware only once at insmod and store it
so the same FW will be used every time but this is a big waste of memory (FW
size is ~400KB and may be larger with future chips). We only touch one or two
very simple fields in struct wiphy that are not validated in wiphy_register. The
behavior is not 100% proof but good enough, and we recommend to our users to
always rmmod/insmod when replacing FW (replacing FW at runtime is usually not
done in production systems, this is only for debugging).
However, if we do not refresh the capabilities we will have larger problems -
the driver can try to access features not supported by FW and cause FW/host crashes.

^ permalink raw reply

* Re: Commit 0711d638 breaks mwifiex
From: Arend van Spriel @ 2017-10-28 21:32 UTC (permalink / raw)
  To: Johannes Berg, Brian Norris
  Cc: Jesse Sung, Amitkumar Karwar, Nishant Sarmukadam, Ilan Peer,
	Anthony Wong, Jason Yen, Terry.Wey, linux-wireless,
	Ganapathi Bhat
In-Reply-To: <1509135034.2283.8.camel@sipsolutions.net>

On 27-10-17 22:10, Johannes Berg wrote:
> Hi,
> 
>> IIUC, mwifiex hasn't told the firmware to do anything at this point --
>> the -EALREADY check is practically the first thing it does within
>> connect(). So it just quits the connect() request and tries to carry on
>> as usual. It will only do something different if the upper layers tell
>> it to do so afterward (e.g., calling disconnect()).
> 
> Yeah, that makes sense.
> 
>> Yes, that's definitely what's happening. And it's explicitly called out
>> in the supplicant's nl80211 driver that this is intentional:
>>
>> [...]
> 
> Right.
> 
>> This is the main code path for supplicant commands like "Reattach",
>> which boil down to (for non SME drivers):
>>
>> wpas_request_connection()
>>    ...
>>   -> wpa_supplicant_connect()
>>     -> wpa_supplicant_associate()
>>       -> wpas_start_assoc_cb()
>>         -> wpa_drv_associate()
>>           -> wpa_driver_nl80211_associate()
>>             -> wpa_driver_nl80211_connect()
>>
>> Now for the part I'm not so familiar with: is this really the *expected*
>> flow for full-MAC drivers in reattach, reassociate, and roaming flows?
>> All of those seem to boil down to this same connect() (and fallback to
>> disconnect()+connect() if -EALREADY) flow.
> 
> We never implemented a "ROAM" command, so there's not all that much
> choice.
> 
>> But it doesn't seem like all full-MAC drivers do the same thing. Some
>> seem to just blaze ahead with a connect attempt (maybe some firmwares
>> automatically interpret this for us?) and never return -EALREADY at all.
> 
> Agree, some seem to just do some form of roaming on this, which really
> just means they disconnect internally - or perhaps they even try to
> roam if it's the same network?
> 
>> Sorry if this is slightly off-topic, but I'm trying to understand what
>> the general expectations are here, based on my relatively narrow
>> experience with a few drivers.
> 
> I don't really know either! There aren't that many direct cfg80211
> drivers that don't use mac80211, so there's not that much experience.
> 
> You're probably well positioned to say what the behaviour _should_ be
> though? :-)
> 
> I tend to think we should actually do the EALREADY from cfg80211, so
> that wpa_s will always be forced to go through this roundabout code
> path, but also finally implement a ROAM command, to let drivers have
> that option?
> 
> Note also that we've always sort of envisioned that drivers
> implementing CONNECT would do BSS selection themselves, but I think
> there's no automatic way of doing that with wpa_s, and it may not even
> be desirable in many cases (unless you really need the power saving
> advantage) since it gets us into a situation where we have all these
> different algorithms etc.

wpa_s can issue a CONNECT without bssid (nor bssid_hint) leaving it up 
to the driver to select the BSS. I am pretty sure I hit that scenario 
although not sure what exact criteria are for wpa_s. Maybe it depended 
on WIPHY_FLAG_SUPPORTS_FW_ROAM.

Regarding BSS selection I added bss_select feature. An effort which 
actually was triggered by a chromebook project. Guess the number of 
drivers implementing that can be counted on one ...finger ;-)

Regards,
Arend

^ permalink raw reply

* Re: rtlwifi oops
From: nirinA raseliarison @ 2017-10-28 22:08 UTC (permalink / raw)
  To: James Cameron; +Cc: Larry Finger, linux-wireless
In-Reply-To: <20171027225701.GB8920@us.netrek.org>

On 10/28/2017 01:57 AM, James Cameron wrote:
> [snip]
> Your dmesg shows the mouse is discovered, then disconnects, then
> reconnects.  I can't tell if your mouse normally does this.  Can you
> also test for the wireless problem without the USB mouse, or with a
> different mouse?

a new dmesg below with another usb mouse.

> Your dmesg also shows "cannot get freq" for USB audio device
> endpoints, but I'm not sure what this means.

it seems that this device does not support reading the sample rate.
i added its usb id in sound/usb/quirks.c:snd_usb_get_sample_rate_quirk
so that this "cannot get freq"  is not logged anymore.

> [snip]

thanks,

[    0.000000] random: get_random_bytes called from 
start_kernel+0x2a/0x413 with crng_init=0
[    0.000000] Linux version 4.13.8.20171019 (root@supernova) (gcc 
version 7.2.0 (GCC)) #2 SMP Sat Oct 28 16:27:44 EAT 2017
[    0.000000] Command line: BOOT_IMAGE=nirinA ro root=802 
vt.default_utf8=0 console=tty0 raid=noautodetect
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating 
point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Enabled xstate features 0x3, context size is 576 
bytes, using 'standard' format.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x00000000cdf30fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cdf31000-0x00000000ce25afff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ce25b000-0x00000000ce25bfff] 
ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000ce25c000-0x00000000ce373fff] 
ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ce374000-0x00000000ce6d8fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ce6d9000-0x00000000ce6d9fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000ce6da000-0x00000000ce71cfff] 
ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ce71d000-0x00000000cee19fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cee1a000-0x00000000ceff1fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ceff2000-0x00000000ceffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cf800000-0x00000000df9fffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed03fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] 
reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] 
reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000021f5fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] random: fast init done
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: To be filled by O.E.M. To be filled by O.E.M./ONDA 
H61V Ver:4.01, BIOS 4.6.5 01/07/2013
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x21f600 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-E7FFF uncachable
[    0.000000]   E8000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask E00000000 write-back
[    0.000000]   1 base 200000000 mask FE0000000 write-back
[    0.000000]   2 base 0E0000000 mask FE0000000 uncachable
[    0.000000]   3 base 0D0000000 mask FF0000000 uncachable
[    0.000000]   4 base 0CF800000 mask FFF800000 uncachable
[    0.000000]   5 base 21F800000 mask FFF800000 uncachable
[    0.000000]   6 base 21F600000 mask FFFE00000 uncachable
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WC  UC- WT
[    0.000000] e820: update [mem 0xcf800000-0xffffffff] usable ==> reserved
[    0.000000] e820: last_pfn = 0xcf000 max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [mem 0x000fd6f0-0x000fd6ff] mapped 
at [ffff8800000fd6f0]
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 24576
[    0.000000] BRK [0x02145000, 0x02145fff] PGTABLE
[    0.000000] BRK [0x02146000, 0x02146fff] PGTABLE
[    0.000000] BRK [0x02147000, 0x02147fff] PGTABLE
[    0.000000] BRK [0x02148000, 0x02148fff] PGTABLE
[    0.000000] BRK [0x02149000, 0x02149fff] PGTABLE
[    0.000000] BRK [0x0214a000, 0x0214afff] PGTABLE
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000F0490 000024 (v02 ALASKA)
[    0.000000] ACPI: XSDT 0x00000000CE362070 000064 (v01 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: FACP 0x00000000CE36B698 0000F4 (v04 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 0x00000000CE362170 009526 (v02 ALASKA A M I 
00000660 INTL 20051117)
[    0.000000] ACPI: FACS 0x00000000CE372F80 000040
[    0.000000] ACPI: APIC 0x00000000CE36B790 000062 (v03 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: FPDT 0x00000000CE36B7F8 000044 (v01 ALASKA A M I 
01072009 AMI  00010013)
[    0.000000] ACPI: MCFG 0x00000000CE36B840 00003C (v01 ALASKA A M I 
01072009 MSFT 00000097)
[    0.000000] ACPI: HPET 0x00000000CE36B880 000038 (v01 ALASKA A M I 
01072009 AMI. 00000005)
[    0.000000] ACPI: SSDT 0x00000000CE36B8B8 00036D (v01 SataRe SataTabl 
00001000 INTL 20091112)
[    0.000000] ACPI: SSDT 0x00000000CE36BC28 000860 (v01 PmRef  Cpu0Ist 
00003000 INTL 20051117)
[    0.000000] ACPI: SSDT 0x00000000CE36C488 000A92 (v01 PmRef  CpuPm 
00003000 INTL 20051117)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000021f5fffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009cfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000001fffffff]
[    0.000000]   node   0: [mem 0x0000000020200000-0x0000000040003fff]
[    0.000000]   node   0: [mem 0x0000000040005000-0x00000000cdf30fff]
[    0.000000]   node   0: [mem 0x00000000ce6d9000-0x00000000ce6d9fff]
[    0.000000]   node   0: [mem 0x00000000ce71d000-0x00000000cee19fff]
[    0.000000]   node   0: [mem 0x00000000ceff2000-0x00000000ceffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000021f5fffff]
[    0.000000] Initmem setup node 0 [mem 
0x0000000000001000-0x000000021f5fffff]
[    0.000000] On node 0 totalpages: 2021848
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3996 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 13137 pages used for memmap
[    0.000000]   DMA32 zone: 840764 pages, LIFO batch:31
[    0.000000]   Normal zone: 18392 pages used for memmap
[    0.000000]   Normal zone: 1177088 pages, LIFO batch:31
[    0.000000] Reserving Intel graphics memory at 
0x00000000cfa00000-0x00000000df9fffff
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 
0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009d000-0x0009dfff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x20000000-0x201fffff]
[    0.000000] PM: Registered nosave memory: [mem 0x40004000-0x40004fff]
[    0.000000] PM: Registered nosave memory: [mem 0xcdf31000-0xce25afff]
[    0.000000] PM: Registered nosave memory: [mem 0xce25b000-0xce25bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xce25c000-0xce373fff]
[    0.000000] PM: Registered nosave memory: [mem 0xce374000-0xce6d8fff]
[    0.000000] PM: Registered nosave memory: [mem 0xce6da000-0xce71cfff]
[    0.000000] PM: Registered nosave memory: [mem 0xcee1a000-0xceff1fff]
[    0.000000] PM: Registered nosave memory: [mem 0xcf000000-0xcf7fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xcf800000-0xdf9fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xdfa00000-0xf7ffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xf8000000-0xfbffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfc000000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfecfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed00000-0xfed03fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed04000-0xfed1bfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] e820: [mem 0xdfa00000-0xf7ffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff 
max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:2 
nr_node_ids:1
[    0.000000] percpu: Embedded 37 pages/cpu @ffff88021f200000 s111192 
r8192 d32168 u1048576
[    0.000000] pcpu-alloc: s111192 r8192 d32168 u1048576 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on. 
Total pages: 1990234
[    0.000000] Kernel command line: BOOT_IMAGE=nirinA ro root=802 
vt.default_utf8=0 console=tty0 raid=noautodetect
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 
8388608 bytes)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 
4194304 bytes)
[    0.000000] Memory: 7863988K/8087392K available (9617K kernel code, 
1116K rwdata, 3012K rodata, 1440K init, 660K bss, 223404K reserved, 0K 
cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 36813 entries in 144 pages
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 4352, nr_irqs: 440, preallocated irqs: 16
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 133484882848 ns
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.001000] tsc: Detected 2594.092 MHz processor
[    0.001000] Calibrating delay loop (skipped), value calculated using 
timer frequency.. 5188.18 BogoMIPS (lpj=2594092)
[    0.001000] pid_max: default: 32768 minimum: 301
[    0.001000] ACPI: Core revision 20170531
[    0.005768] ACPI: 4 ACPI AML tables successfully acquired and loaded
[    0.005790] Security Framework initialized
[    0.005820] Mount-cache hash table entries: 16384 (order: 5, 131072 
bytes)
[    0.005846] Mountpoint-cache hash table entries: 16384 (order: 5, 
131072 bytes)
[    0.005986] CPU: Physical Processor ID: 0
[    0.005989] CPU: Processor Core ID: 0
[    0.006003] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.006006] ENERGY_PERF_BIAS: View and update with 
x86_energy_perf_policy(8)
[    0.006011] mce: CPU supports 7 MCE banks
[    0.006020] CPU0: Thermal monitoring enabled (TM1)
[    0.006030] process: using mwait in idle threads
[    0.006035] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
[    0.006038] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.006113] Freeing SMP alternatives memory: 36K
[    0.007221] smpboot: Max logical packages: 1
[    0.007634] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.017648] TSC deadline timer enabled
[    0.017650] smpboot: CPU0: Intel(R) Celeron(R) CPU G1610 @ 2.60GHz 
(family: 0x6, model: 0x3a, stepping: 0x9)
[    0.017703] Performance Events: PEBS fmt1+, IvyBridge events, 16-deep 
LBR, full-width counters, Intel PMU driver.
[    0.017727] ... version:                3
[    0.017730] ... bit width:              48
[    0.017733] ... generic registers:      8
[    0.017736] ... value mask:             0000ffffffffffff
[    0.017739] ... max period:             00007fffffffffff
[    0.017741] ... fixed-purpose events:   3
[    0.017744] ... event mask:             00000007000000ff
[    0.017774] Hierarchical SRCU implementation.
[    0.017842] smp: Bringing up secondary CPUs ...
[    0.017890] x86: Booting SMP configuration:
[    0.017893] .... node  #0, CPUs:      #1
[    0.078018] smp: Brought up 1 node, 2 CPUs
[    0.078018] smpboot: Total of 2 processors activated (10380.04 BogoMIPS)
[    0.079123] devtmpfs: initialized
[    0.079123] x86/mm: Memory block size: 128MB
[    0.079492] PM: Registering ACPI NVS region [mem 
0xce25c000-0xce373fff] (1146880 bytes)
[    0.079492] PM: Registering ACPI NVS region [mem 
0xce6da000-0xce71cfff] (274432 bytes)
[    0.079492] clocksource: jiffies: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.079492] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.079492] pinctrl core: initialized pinctrl subsystem
[    0.079492] NET: Registered protocol family 16
[    0.080029] cpuidle: using governor ladder
[    0.080029] cpuidle: using governor menu
[    0.080029] PCCT header not found.
[    0.080048] ACPI: bus type PCI registered
[    0.080052] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.080083] PCI: Using configuration type 1 for base access
[    0.080122] core: PMU erratum BJ122, BV98, HSD29 workaround disabled, 
HT off
[    0.083373] ACPI: Added _OSI(Module Device)
[    0.083373] ACPI: Added _OSI(Processor Device)
[    0.083373] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.083373] ACPI: Added _OSI(Processor Aggregator Device)
[    0.083373] ACPI: Executed 1 blocks of module-level executable AML code
[    0.086305] ACPI: Dynamic OEM Table Load:
[    0.086315] ACPI: SSDT 0xFFFF880216669000 00083B (v01 PmRef  Cpu0Cst 
00003001 INTL 20051117)
[    0.086395] ACPI: Dynamic OEM Table Load:
[    0.086395] ACPI: SSDT 0xFFFF88021642DC00 000303 (v01 PmRef  ApIst 
00003000 INTL 20051117)
[    0.087037] ACPI: Dynamic OEM Table Load:
[    0.087042] ACPI: SSDT 0xFFFF880216708200 000119 (v01 PmRef  ApCst 
00003000 INTL 20051117)
[    0.087380] ACPI: Interpreter enabled
[    0.087401] ACPI: (supports S0 S1 S3 S4 S5)
[    0.087405] ACPI: Using IOAPIC for interrupt routing
[    0.087428] PCI: Using host bridge windows from ACPI; if necessary, 
use "pci=nocrs" and report a bug
[    0.092834] ACPI: Power Resource [FN00] (off)
[    0.092897] ACPI: Power Resource [FN01] (off)
[    0.092958] ACPI: Power Resource [FN02] (off)
[    0.093018] ACPI: Power Resource [FN03] (off)
[    0.093078] ACPI: Power Resource [FN04] (off)
[    0.093479] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[    0.093486] acpi PNP0A08:00: _OSC: OS supports [ASPM ClockPM Segments 
MSI]
[    0.093607] acpi PNP0A08:00: _OSC: not requesting OS control; OS 
requires [ExtendedConfig ASPM ClockPM MSI]
[    0.093968] PCI host bridge to bus 0000:00
[    0.093973] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    0.093976] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    0.093980] pci_bus 0000:00: root bus resource [mem 
0x000a0000-0x000bffff window]
[    0.093985] pci_bus 0000:00: root bus resource [mem 
0x000d4000-0x000d7fff window]
[    0.093990] pci_bus 0000:00: root bus resource [mem 
0x000d8000-0x000dbfff window]
[    0.093996] pci_bus 0000:00: root bus resource [mem 
0x000dc000-0x000dffff window]
[    0.094000] pci_bus 0000:00: root bus resource [mem 
0x000e0000-0x000e3fff window]
[    0.094006] pci_bus 0000:00: root bus resource [mem 
0x000e4000-0x000e7fff window]
[    0.094012] pci_bus 0000:00: root bus resource [mem 
0xdfa00000-0xfeafffff window]
[    0.094017] pci_bus 0000:00: root bus resource [bus 00-3e]
[    0.094026] pci 0000:00:00.0: [8086:0150] type 00 class 0x060000
[    0.094104] pci 0000:00:02.0: [8086:0152] type 00 class 0x030000
[    0.094114] pci 0000:00:02.0: reg 0x10: [mem 0xf7800000-0xf7bfffff 64bit]
[    0.094119] pci 0000:00:02.0: reg 0x18: [mem 0xe0000000-0xefffffff 
64bit pref]
[    0.094123] pci 0000:00:02.0: reg 0x20: [io  0xf000-0xf03f]
[    0.094216] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[    0.094241] pci 0000:00:16.0: reg 0x10: [mem 0xf7c0a000-0xf7c0a00f 64bit]
[    0.094312] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.094384] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[    0.094406] pci 0000:00:1a.0: reg 0x10: [mem 0xf7c08000-0xf7c083ff]
[    0.094488] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.094554] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[    0.094571] pci 0000:00:1b.0: reg 0x10: [mem 0xf7c00000-0xf7c03fff 64bit]
[    0.094637] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.094704] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[    0.094780] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.094850] pci 0000:00:1c.2: [8086:1c14] type 01 class 0x060400
[    0.094925] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.094999] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[    0.095020] pci 0000:00:1d.0: reg 0x10: [mem 0xf7c07000-0xf7c073ff]
[    0.095102] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.095170] pci 0000:00:1f.0: [8086:1c5c] type 00 class 0x060100
[    0.095334] pci 0000:00:1f.2: [8086:1c02] type 00 class 0x010601
[    0.095352] pci 0000:00:1f.2: reg 0x10: [io  0xf0b0-0xf0b7]
[    0.095359] pci 0000:00:1f.2: reg 0x14: [io  0xf0a0-0xf0a3]
[    0.095367] pci 0000:00:1f.2: reg 0x18: [io  0xf090-0xf097]
[    0.095374] pci 0000:00:1f.2: reg 0x1c: [io  0xf080-0xf083]
[    0.095381] pci 0000:00:1f.2: reg 0x20: [io  0xf060-0xf07f]
[    0.095388] pci 0000:00:1f.2: reg 0x24: [mem 0xf7c06000-0xf7c067ff]
[    0.095427] pci 0000:00:1f.2: PME# supported from D3hot
[    0.095488] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[    0.095507] pci 0000:00:1f.3: reg 0x10: [mem 0xf7c05000-0xf7c050ff 64bit]
[    0.095526] pci 0000:00:1f.3: reg 0x20: [io  0xf040-0xf05f]
[    0.095642] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.095717] pci 0000:02:00.0: [10ec:8136] type 00 class 0x020000
[    0.095741] pci 0000:02:00.0: reg 0x10: [io  0xe000-0xe0ff]
[    0.095775] pci 0000:02:00.0: reg 0x18: [mem 0xf0004000-0xf0004fff 
64bit pref]
[    0.095796] pci 0000:02:00.0: reg 0x20: [mem 0xf0000000-0xf0003fff 
64bit pref]
[    0.095888] pci 0000:02:00.0: supports D1 D2
[    0.095889] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.098023] pci 0000:00:1c.2: PCI bridge to [bus 02]
[    0.098033] pci 0000:00:1c.2:   bridge window [io  0xe000-0xefff]
[    0.098042] pci 0000:00:1c.2:   bridge window [mem 
0xf0000000-0xf00fffff 64bit pref]
[    0.098071] pci_bus 0000:00: on NUMA node 0
[    0.098356] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 
14 15)
[    0.098402] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 
15) *0, disabled.
[    0.098449] ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 10 11 12 
14 15)
[    0.098492] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 *10 11 12 
14 15)
[    0.098535] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 
15) *0, disabled.
[    0.098579] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 
15) *0, disabled.
[    0.098624] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 10 11 12 
14 15)
[    0.098667] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 *11 12 
14 15)
[    0.098826] ACPI: Enabled 4 GPEs in block 00 to 3F
[    0.098882] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    0.098882] pci 0000:00:02.0: vgaarb: VGA device added: 
decodes=io+mem,owns=io+mem,locks=none
[    0.098882] pci 0000:00:02.0: vgaarb: bridge control possible
[    0.098882] vgaarb: loaded
[    0.098882] SCSI subsystem initialized
[    0.098882] libata version 3.00 loaded.
[    0.099003] ACPI: bus type USB registered
[    0.099021] usbcore: registered new interface driver usbfs
[    0.099031] usbcore: registered new interface driver hub
[    0.099041] usbcore: registered new device driver usb
[    0.099055] EDAC MC: Ver: 3.0.0
[    0.099111] PCI: Using ACPI for IRQ routing
[    0.099111] PCI: pci_cache_line_size set to 64 bytes
[    0.099111] e820: reserve RAM buffer [mem 0x0009d800-0x0009ffff]
[    0.099111] e820: reserve RAM buffer [mem 0x40004000-0x43ffffff]
[    0.099111] e820: reserve RAM buffer [mem 0xcdf31000-0xcfffffff]
[    0.099111] e820: reserve RAM buffer [mem 0xce6da000-0xcfffffff]
[    0.099111] e820: reserve RAM buffer [mem 0xcee1a000-0xcfffffff]
[    0.099111] e820: reserve RAM buffer [mem 0xcf000000-0xcfffffff]
[    0.099111] e820: reserve RAM buffer [mem 0x21f600000-0x21fffffff]
[    0.099133] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.099133] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.101009] clocksource: Switched to clocksource hpet
[    0.106960] VFS: Disk quotas dquot_6.6.0
[    0.106979] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 
bytes)
[    0.107043] pnp: PnP ACPI init
[    0.107135] system 00:00: [mem 0xfed40000-0xfed44fff] has been reserved
[    0.107141] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.107200] system 00:01: [io  0x0680-0x069f] has been reserved
[    0.107204] system 00:01: [io  0x0200-0x020f] has been reserved
[    0.107208] system 00:01: [io  0xffff] has been reserved
[    0.107211] system 00:01: [io  0xffff] has been reserved
[    0.107215] system 00:01: [io  0x0400-0x0453] has been reserved
[    0.107218] system 00:01: [io  0x0458-0x047f] has been reserved
[    0.107222] system 00:01: [io  0x0500-0x057f] has been reserved
[    0.107225] system 00:01: [io  0x164e-0x164f] has been reserved
[    0.107230] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107247] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.107280] system 00:03: [io  0x0454-0x0457] has been reserved
[    0.107285] system 00:03: Plug and Play ACPI device, IDs INT3f0d 
PNP0c02 (active)
[    0.107344] system 00:04: [io  0x0a30-0x0a3f] has been reserved
[    0.107349] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107379] pnp 00:05: Plug and Play ACPI device, IDs PNP0303 PNP030b 
(active)
[    0.107490] pnp 00:06: [dma 0 disabled]
[    0.107523] pnp 00:06: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.107556] system 00:07: [io  0x04d0-0x04d1] has been reserved
[    0.107561] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107713] system 00:08: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.107718] system 00:08: [mem 0xfed10000-0xfed17fff] has been reserved
[    0.107721] system 00:08: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.107725] system 00:08: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.107729] system 00:08: [mem 0xf8000000-0xfbffffff] has been reserved
[    0.107733] system 00:08: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.107736] system 00:08: [mem 0xfed90000-0xfed93fff] has been reserved
[    0.107740] system 00:08: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.107744] system 00:08: [mem 0xff000000-0xffffffff] has been reserved
[    0.107748] system 00:08: [mem 0xfee00000-0xfeefffff] could not be 
reserved
[    0.107751] system 00:08: [mem 0xdfa00000-0xdfa00fff] has been reserved
[    0.107756] system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.107868] system 00:09: [mem 0x20000000-0x201fffff] has been reserved
[    0.107872] system 00:09: [mem 0x40004000-0x40004fff] has been reserved
[    0.107876] system 00:09: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.107893] pnp: PnP ACPI: found 10 devices
[    0.113812] clocksource: acpi_pm: mask: 0xffffff max_cycles: 
0xffffff, max_idle_ns: 2085701024 ns
[    0.113839] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.113854] pci 0000:00:1c.2: PCI bridge to [bus 02]
[    0.113859] pci 0000:00:1c.2:   bridge window [io  0xe000-0xefff]
[    0.113869] pci 0000:00:1c.2:   bridge window [mem 
0xf0000000-0xf00fffff 64bit pref]
[    0.113880] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    0.113881] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    0.113882] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff 
window]
[    0.113883] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff 
window]
[    0.113884] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff 
window]
[    0.113885] pci_bus 0000:00: resource 9 [mem 0x000dc000-0x000dffff 
window]
[    0.113886] pci_bus 0000:00: resource 10 [mem 0x000e0000-0x000e3fff 
window]
[    0.113887] pci_bus 0000:00: resource 11 [mem 0x000e4000-0x000e7fff 
window]
[    0.113888] pci_bus 0000:00: resource 12 [mem 0xdfa00000-0xfeafffff 
window]
[    0.113889] pci_bus 0000:02: resource 0 [io  0xe000-0xefff]
[    0.113890] pci_bus 0000:02: resource 2 [mem 0xf0000000-0xf00fffff 
64bit pref]
[    0.113961] NET: Registered protocol family 2
[    0.114072] TCP established hash table entries: 65536 (order: 7, 
524288 bytes)
[    0.114174] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.114358] TCP: Hash tables configured (established 65536 bind 65536)
[    0.114387] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    0.114415] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    0.114472] NET: Registered protocol family 1
[    0.114567] RPC: Registered named UNIX socket transport module.
[    0.114571] RPC: Registered udp transport module.
[    0.114574] RPC: Registered tcp transport module.
[    0.114577] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.114591] pmd_set_huge: Cannot satisfy [mem 0xf7800000-0xf7a00000] 
with a huge-page mapping due to MTRR override.
[    0.114604] pci 0000:00:02.0: BIOS left Intel GPU interrupts enabled; 
disabling
[    0.114623] pci 0000:00:02.0: Video device with shadowed ROM at [mem 
0x000c0000-0x000dffff]
[    0.147118] PCI: CLS 64 bytes, default 64
[    0.147154] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.147159] software IO TLB [mem 0xc9f31000-0xcdf31000] (64MB) mapped 
at [ffff8800c9f31000-ffff8800cdf30fff]
[    0.147224] RAPL PMU: API unit is 2^-32 Joules, 3 fixed counters, 
163840 ms ovfl timer
[    0.147229] RAPL PMU: hw unit of domain pp0-core 2^-16 Joules
[    0.147232] RAPL PMU: hw unit of domain package 2^-16 Joules
[    0.147235] RAPL PMU: hw unit of domain pp1-gpu 2^-16 Joules
[    0.147498] audit: initializing netlink subsys (disabled)
[    0.147531] audit: type=2000 audit(1509198077.147:1): 
state=initialized audit_enabled=0 res=1
[    0.147672] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    0.148714] NFS: Registering the id_resolver key type
[    0.148722] Key type id_resolver registered
[    0.148725] Key type id_legacy registered
[    0.148729] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.148805] ntfs: driver 2.1.32 [Flags: R/W].
[    0.148833] romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
[    0.150277] Block layer SCSI generic (bsg) driver version 0.4 loaded 
(major 252)
[    0.150308] io scheduler noop registered
[    0.150312] io scheduler deadline registered
[    0.150332] io scheduler cfq registered (default)
[    0.150336] io scheduler mq-deadline registered
[    0.150338] io scheduler kyber registered
[    0.150628] vesafb: mode is 1024x768x16, linelength=2048, pages=169
[    0.150632] vesafb: scrolling: redraw
[    0.150635] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[    0.150648] vesafb: framebuffer at 0xe0000000, mapped to 
0xffffc90000c00000, using 3072k, total 262080k
[    0.175404] Console: switching to colour frame buffer device 128x48
[    0.198195] fb0: VESA VGA frame buffer device
[    0.198406] intel_idle: MWAIT substates: 0x1120
[    0.198407] intel_idle: v0.4.1 model 0x3A
[    0.198458] intel_idle: lapic_timer_reliable_states 0xffffffff
[    0.198516] GHES: HEST is not enabled!
[    0.201105] brd: module loaded
[    0.201400] fnic: Cisco FCoE HBA Driver, ver 1.6.0.34
[    0.201649] fnic: Successfully Initialized Trace Buffer
[    0.201917] fnic: Successfully Initialized FC_CTLR Trace Buffer
[    0.202370] Adaptec aacraid driver 1.2.1[50834]-custom
[    0.202617] aic94xx: Adaptec aic94xx SAS/SATA driver version 1.0.3 loaded
[    0.203058] scsi: <fdomain> Detection failed (no card)
[    0.203308] qla2xxx [0000:00:00.0]-0005: : QLogic Fibre Channel HBA 
Driver: 10.00.00.00-k.
[    0.203696] Emulex LightPulse Fibre Channel SCSI driver 11.4.0.1
[    0.203974] Copyright (C) 2017 Broadcom. All Rights Reserved. The 
term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
[    0.204602] QLogic BR-series BFA FC/FCOE SCSI driver - version: 3.2.25.1
[    0.204946] megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 
EST 2006)
[    0.205308] megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 
2006)
[    0.205637] megasas: 07.701.17.00-rc1
[    0.205817] mpt3sas version 15.100.00.00 loaded
[    0.215061] GDT-HA: Storage RAID Controller Driver. Version: 3.05
[    0.224486] 3ware Storage Controller device driver for Linux 
v1.26.02.003.
[    0.233970] 3ware 9000 Storage Controller device driver for Linux 
v2.26.02.014.
[    0.243497] LSI 3ware SAS/SATA-RAID Controller device driver for 
Linux v3.26.02.000.
[    0.253038] ipr: IBM Power RAID SCSI Device Driver version: 2.6.4 
(March 14, 2017)
[    0.262591] RocketRAID 3xxx/4xxx Controller driver v1.10.0
[    0.272060] stex: Promise SuperTrak EX Driver version: 6.02.0000.01
[    0.281660] st: Version 20160209, fixed bufsize 32768, s/g segs 256
[    0.291417] ahci 0000:00:1f.2: version 3.0
[    0.291586] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 3 Gbps 
0x3 impl SATA mode
[    0.301477] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum 
part ems apst
[    0.314341] scsi host0: ahci
[    0.324210] scsi host1: ahci
[    0.333807] scsi host2: ahci
[    0.343147] scsi host3: ahci
[    0.352314] ata1: SATA max UDMA/133 abar m2048@0xf7c06000 port 
0xf7c06100 irq 24
[    0.361835] ata2: SATA max UDMA/133 abar m2048@0xf7c06000 port 
0xf7c06180 irq 24
[    0.371289] ata3: DUMMY
[    0.380658] ata4: DUMMY
[    0.390447] scsi host4: pata_legacy
[    0.399711] ata5: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
[    0.708584] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    0.718028] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    0.727308] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.736659] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT1._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.746208] ata2.00: ATAPI: TSSTcorp CDDVDW SH-224BB, SB00, max UDMA/100
[    0.755793] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.765646] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.776076] ata1.00: ATA-8: ST500DM002-1BD142, KC45, max UDMA/133
[    0.786335] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    0.796688] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.807332] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT1._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.818223] ata2.00: configured for UDMA/100
[    0.830011] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND 
(20170531/psargs-364)
[    0.841063] ACPI Error: Method parse/execution failed 
\_SB.PCI0.SAT0.SPT0._GTF, AE_NOT_FOUND (20170531/psparse-550)
[    0.852511] ata1.00: configured for UDMA/133
[    1.183051] tsc: Refined TSC clocksource calibration: 2594.107 MHz
[    1.194009] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 
0x25647d583cf, max_idle_ns: 440795304232 ns
[    2.207211] clocksource: Switched to clocksource tsc
[    3.231176] floppy0: no floppy controllers found
[    3.242200] scsi 0:0:0:0: Direct-Access     ATA      ST500DM002-1BD14 
KC45 PQ: 0 ANSI: 5
[    3.253340] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 
GB/466 GiB)
[    3.264349] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    3.275325] sd 0:0:0:0: [sda] Write Protect is off
[    3.275344] scsi 1:0:0:0: CD-ROM            TSSTcorp CDDVDW SH-224BB 
SB00 PQ: 0 ANSI: 5
[    3.297181] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.297192] sd 0:0:0:0: [sda] Write cache: enabled, read cache: 
enabled, doesn't support DPO or FUA
[    3.311966] sr 1:0:0:0: [sr0] scsi3-mmc drive: 48x/48x writer dvd-ram 
cd/rw xa/form2 cdda tray
[    3.323070] cdrom: Uniform CD-ROM driver Revision: 3.20
[    3.334137] sr 1:0:0:0: Attached scsi CD-ROM sr0
[    3.359230]  sda: sda1 sda2 sda3 sda5 sda6
[    3.370454] sd 0:0:0:0: [sda] Attached SCSI disk
[    3.381610] scsi host4: pata_legacy
[    3.392321] ata6: PATA max PIO4 cmd 0x170 ctl 0x376 irq 15
[    3.559205] Fusion MPT base driver 3.04.20
[    3.569748] Copyright (c) 1999-2008 LSI Corporation
[    3.580254] Fusion MPT SPI Host driver 3.04.20
[    3.590910] Fusion MPT FC Host driver 3.04.20
[    3.601639] Fusion MPT SAS Host driver 3.04.20
[    3.612472] Fusion MPT misc device (ioctl) driver 3.04.20
[    3.623273] mptctl: Registered with Fusion MPT base driver
[    3.634203] mptctl: /dev/mptctl @ (major,minor=10,220)
[    3.645038] Fusion MPT LAN driver 3.04.20
[    3.656033] usbcore: registered new interface driver usbserial
[    3.667160] usbcore: registered new interface driver usbserial_generic
[    3.678186] usbserial: USB Serial support registered for generic
[    3.689233] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    3.700518] i8042: PNP: PS/2 appears to have AUX port disabled, if 
this is incorrect please boot with i8042.nopnp
[    3.712525] serio: i8042 KBD port at 0x60,0x64 irq 1
[    3.723830] mousedev: PS/2 mouse device common for all mice
[    3.734880] rtc_cmos 00:02: RTC can wake from S4
[    3.745867] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    3.756576] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes 
nvram, hpet irqs
[    3.767145] intel_pstate: Intel P-state driver initializing
[    3.777828] ip_tables: (C) 2000-2006 Netfilter Core Team
[    3.794020] Initializing XFRM netlink socket
[    3.809826] NET: Registered protocol family 17
[    3.819749] Key type dns_resolver registered
[    3.829606] microcode: sig=0x306a9, pf=0x2, revision=0x10
[    3.839209] microcode: Microcode Update Driver: v2.2.
[    3.839217] sched_clock: Marking stable (3839205490, 0)->(3839677294, 
-471804)
[    3.857943] input: AT Translated Set 2 keyboard as 
/devices/platform/i8042/serio0/input/input0
[    3.858084] registered taskstats version 1
[    3.898324] EXT4-fs (sda2): couldn't mount as ext3 due to feature 
incompatibilities
[    3.942183] EXT4-fs (sda2): mounted filesystem with ordered data 
mode. Opts: (null)
[    3.951626] VFS: Mounted root (ext4 filesystem) readonly on device 8:2.
[    3.979748] devtmpfs: mounted
[    3.990553] Freeing unused kernel memory: 1440K
[    4.000585] Write protecting the kernel read-only data: 14336k
[    4.010209] Freeing unused kernel memory: 616K
[    4.021513] Freeing unused kernel memory: 1084K
[    4.030416] rodata_test: all tests were successful
[    4.678967] random: crng init done
[    5.435789] udevd[153]: bind failed: Read-only file system
[    5.444612] udevd[153]: error binding udev control socket
[    5.585045] Adding 16787920k swap on /dev/sda3.  Priority:-1 
extents:1 across:16787920k
[    5.948565] fuse init (API version 7.26)
[    6.354334] EXT4-fs (sda2): re-mounted. Opts: (null)
[    6.396835] EXT4-fs (sda2): re-mounted. Opts: (null)
[   10.022320] EXT4-fs (sda5): mounted filesystem with ordered data 
mode. Opts: (null)
[   10.177325] EXT4-fs (sda6): mounted filesystem with ordered data 
mode. Opts: (null)
[   10.272131] EXT4-fs (sda1): mounted filesystem with ordered data 
mode. Opts: (null)
[   16.658346] udevd[528]: starting eudev-3.2.4
[   17.426432] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[   17.451676] input: Power Button as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[   17.451692] ACPI: Power Button [PWRB]
[   17.451724] input: Power Button as 
/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[   17.451731] ACPI: Power Button [PWRF]
[   17.490100] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   17.497283] ACPI Warning: SystemIO range 
0x0000000000000428-0x000000000000042F conflicts with OpRegion 
0x0000000000000400-0x000000000000047F (\PMIO) (20170531/utaddress-247)
[   17.497288] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.497290] ACPI Warning: SystemIO range 
0x0000000000000540-0x000000000000054F conflicts with OpRegion 
0x0000000000000500-0x0000000000000563 (\GPIO) (20170531/utaddress-247)
[   17.497293] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.497293] ACPI Warning: SystemIO range 
0x0000000000000530-0x000000000000053F conflicts with OpRegion 
0x0000000000000500-0x0000000000000563 (\GPIO) (20170531/utaddress-247)
[   17.497295] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.497296] ACPI Warning: SystemIO range 
0x0000000000000500-0x000000000000052F conflicts with OpRegion 
0x0000000000000500-0x0000000000000563 (\GPIO) (20170531/utaddress-247)
[   17.497298] ACPI: If an ACPI driver is available for this device, you 
should use it instead of the native driver
[   17.497298] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   17.521285] ehci-pci: EHCI PCI platform driver
[   17.521436] ehci-pci 0000:00:1a.0: EHCI Host Controller
[   17.521495] ehci-pci 0000:00:1a.0: new USB bus registered, assigned 
bus number 1
[   17.521508] ehci-pci 0000:00:1a.0: debug port 2
[   17.525423] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[   17.525649] ehci-pci 0000:00:1a.0: irq 16, io mem 0xf7c08000
[   17.532017] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[   17.532076] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   17.532077] usb usb1: New USB device strings: Mfr=3, Product=2, 
SerialNumber=1
[   17.532079] usb usb1: Product: EHCI Host Controller
[   17.532081] usb usb1: Manufacturer: Linux 4.13.8.20171019 ehci_hcd
[   17.532082] usb usb1: SerialNumber: 0000:00:1a.0
[   17.532272] hub 1-0:1.0: USB hub found
[   17.532277] hub 1-0:1.0: 2 ports detected
[   17.532480] ehci-pci 0000:00:1d.0: EHCI Host Controller
[   17.532513] ehci-pci 0000:00:1d.0: new USB bus registered, assigned 
bus number 2
[   17.532524] ehci-pci 0000:00:1d.0: debug port 2
[   17.536411] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[   17.536717] ehci-pci 0000:00:1d.0: irq 23, io mem 0xf7c07000
[   17.543013] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[   17.543066] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[   17.543068] usb usb2: New USB device strings: Mfr=3, Product=2, 
SerialNumber=1
[   17.543069] usb usb2: Product: EHCI Host Controller
[   17.543071] usb usb2: Manufacturer: Linux 4.13.8.20171019 ehci_hcd
[   17.543072] usb usb2: SerialNumber: 0000:00:1d.0
[   17.543195] hub 2-0:1.0: USB hub found
[   17.543200] hub 2-0:1.0: 2 ports detected
[   17.566079] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[   17.586680] 00:06: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) 
is a 16550A
[   17.622449] Linux agpgart interface v0.103
[   17.634429] thermal LNXTHERM:00: registered as thermal_zone0
[   17.634430] ACPI: Thermal Zone [TZ00] (28 C)
[   17.634597] thermal LNXTHERM:01: registered as thermal_zone1
[   17.634597] ACPI: Thermal Zone [TZ01] (30 C)
[   17.772416] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   17.772763] r8169 0000:02:00.0 eth0: RTL8105e at 0xffffc90000049000, 
00:e0:66:84:16:a7, XID 00a00000 IRQ 26
[   17.847016] usb 1-1: new high-speed USB device number 2 using ehci-pci
[   17.855013] usb 2-1: new high-speed USB device number 2 using ehci-pci
[   17.965317] usb 1-1: New USB device found, idVendor=8087, idProduct=0024
[   17.965320] usb 1-1: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0
[   17.965592] hub 1-1:1.0: USB hub found
[   17.965685] hub 1-1:1.0: 4 ports detected
[   17.973314] usb 2-1: New USB device found, idVendor=8087, idProduct=0024
[   17.973316] usb 2-1: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0
[   17.973464] hub 2-1:1.0: USB hub found
[   17.973560] hub 2-1:1.0: 6 ports detected
[   18.239015] usb 1-1.2: new full-speed USB device number 3 using ehci-pci
[   18.248021] usb 2-1.3: new low-speed USB device number 3 using ehci-pci
[   18.260473] input: PC Speaker as /devices/platform/pcspkr/input/input3
[   18.330184] usb 2-1.3: New USB device found, idVendor=093a, 
idProduct=2510
[   18.330185] usb 2-1.3: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
[   18.330187] usb 2-1.3: Product: USB OPTICAL MOUSE
[   18.330188] usb 2-1.3: Manufacturer: PIXART
[   18.347995] i2c /dev entries driver
[   18.880809] usb 1-1.2: New USB device found, idVendor=1b3f, 
idProduct=2007
[   18.880812] usb 1-1.2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
[   18.880813] usb 1-1.2: Product: USB Audio Device
[   18.880815] usb 1-1.2: Manufacturer: GeneralPlus
[   19.322316] [drm] Memory usable by graphics device = 2048M
[   19.322319] checking generic (e0000000 fff0000) vs hw (e0000000 10000000)
[   19.322319] fb: switching to inteldrmfb from VESA VGA
[   19.322355] Console: switching to colour dummy device 80x25
[   19.322424] [drm] Replacing VGA console driver
[   19.328065] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   19.328066] [drm] Driver supports precise vblank timestamp query.
[   19.330582] i915 0000:00:02.0: vgaarb: changed VGA decodes: 
olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   19.334551] [drm] Initialized i915 1.6.0 20170619 for 0000:00:02.0 on 
minor 0
[   19.335036] ACPI: Video Device [GFX0] (multi-head: yes  rom: no post: no)
[   19.335297] acpi device:49: registered as cooling_device8
[   19.335554] input: Video Bus as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input4
[   19.352187] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops 
i915_audio_component_bind_ops [i915])
[   19.398703] fbcon: inteldrmfb (fb0) is primary device
[   19.458096] Console: switching to colour frame buffer device 170x48
[   19.476705] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   19.899223] snd_hda_codec_realtek hdaudioC0D2: autoconfig for ALC662 
rev3: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[   19.899224] snd_hda_codec_realtek hdaudioC0D2:    speaker_outs=0 
(0x0/0x0/0x0/0x0/0x0)
[   19.899225] snd_hda_codec_realtek hdaudioC0D2:    hp_outs=1 
(0x1b/0x0/0x0/0x0/0x0)
[   19.899226] snd_hda_codec_realtek hdaudioC0D2:    mono: mono_out=0x0
[   19.899227] snd_hda_codec_realtek hdaudioC0D2:    dig-out=0x1e/0x0
[   19.899228] snd_hda_codec_realtek hdaudioC0D2:    inputs:
[   19.899229] snd_hda_codec_realtek hdaudioC0D2:      Front Mic=0x19
[   19.899230] snd_hda_codec_realtek hdaudioC0D2:      Rear Mic=0x18
[   19.899231] snd_hda_codec_realtek hdaudioC0D2:      Line=0x1a
[   20.285745] input: HDA Intel PCH Front Mic as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input5
[   20.285799] input: HDA Intel PCH Rear Mic as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[   20.285846] input: HDA Intel PCH Line as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[   20.285892] input: HDA Intel PCH Line Out as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[   20.285936] input: HDA Intel PCH Front Headphone as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[   20.285982] input: HDA Intel PCH HDMI/DP,pcm=3 as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[   20.286036] input: HDA Intel PCH HDMI/DP,pcm=7 as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[   20.286184] input: HDA Intel PCH HDMI/DP,pcm=8 as 
/devices/pci0000:00/0000:00:1b.0/sound/card0/input12
[   21.608466] hidraw: raw HID events driver (C) Jiri Kosina
[   21.635340] usbcore: registered new interface driver usbhid
[   21.635341] usbhid: USB HID core driver
[   21.739682] usbcore: registered new interface driver snd-usb-audio
[   23.159597] input: PIXART USB OPTICAL MOUSE as 
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:093A:2510.0001/input/input13
[   23.159690] hid-generic 0003:093A:2510.0001: input,hidraw0: USB HID 
v1.11 Mouse [PIXART USB OPTICAL MOUSE] on usb-0000:00:1d.0-1.3/input0
[   23.159786] input: GeneralPlus USB Audio Device as 
/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.3/0003:1B3F:2007.0002/input/input14
[   23.211240] hid-generic 0003:1B3F:2007.0002: input,hidraw1: USB HID 
v2.01 Device [GeneralPlus USB Audio Device] on usb-0000:00:1a.0-1.2/input3
[   24.217048] r8169 0000:02:00.0 eth0: link down
[   24.217062] r8169 0000:02:00.0 eth0: link down
[   24.502121] NET: Registered protocol family 10
[   24.502362] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   24.502403] Segment Routing with IPv6
[   25.615236] NFSD: the nfsdcld client tracking upcall will be removed 
in 3.10. Please transition to using nfsdcltrack.
[   25.615239] NFSD: starting 90-second grace period (net ffffffff81ee6400)
[   25.818487] r8169 0000:02:00.0 eth0: link up
[   25.818500] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   37.455802] nct6775: Found NCT6779D or compatible chip at 0x2e:0xa30
[   37.737820] NET: Registered protocol family 4
[   37.749316] NET: Registered protocol family 5
[  145.887027] NFSD: Unable to end grace period: -110
[  145.966016] usb 2-1.4: new high-speed USB device number 4 using ehci-pci
[  146.045808] usb 2-1.4: New USB device found, idVendor=0bda, 
idProduct=8178
[  146.045811] usb 2-1.4: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[  146.045812] usb 2-1.4: Product: 802.11n WLAN Adapter
[  146.045813] usb 2-1.4: Manufacturer: Realtek
[  146.045814] usb 2-1.4: SerialNumber: 00e04c000001
[  146.202043] rtl8192cu: Chip version 0x11
[  146.278549] rtl8192cu: Board Type 0
[  146.278790] rtl_usb: rx_max_size 15360, rx_urb_num 8, in_ep 1
[  146.278823] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw_TMSC.bin
[  146.278938] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
[  146.279113] usbcore: registered new interface driver rtl8192cu
[  146.281706] usbcore: registered new interface driver rtl8xxxu
[  146.344941] rtl8192cu 2-1.4:1.0 wlan125: renamed from wlan0
[  146.348126] rtl8192cu 2-1.4:1.0 wlan1: renamed from wlan125
[  187.045383] rtl8192cu: MAC auto ON okay!
[  187.079138] rtl8192cu: Tx queue select: 0x05
[  187.678428] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[  190.424743] rtl8192cu: MAC auto ON okay!
[  190.457904] rtl8192cu: Tx queue select: 0x05
[  191.067336] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[  191.192858] rtl8192cu: MAC auto ON okay!
[  191.225864] rtl8192cu: Tx queue select: 0x05
[  191.834651] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
[  193.861920] wlan1: authenticate with 34:e0:cf:f2:e2:18
[  193.873285] wlan1: send auth to 34:e0:cf:f2:e2:18 (try 1/3)
[  193.877329] wlan1: aborting authentication with 34:e0:cf:f2:e2:18 by 
local choice (Reason: 3=DEAUTH_LEAVING)
[  193.889626] wlan1: authenticate with 34:e0:cf:f2:e2:18
[  193.905124] wlan1: send auth to 34:e0:cf:f2:e2:18 (try 1/3)
[  193.908920] wlan1: aborting authentication with 34:e0:cf:f2:e2:18 by 
local choice (Reason: 3=DEAUTH_LEAVING)
[  193.921612] wlan1: authenticate with 34:e0:cf:f2:e2:18
[  193.934649] wlan1: send auth to 34:e0:cf:f2:e2:18 (try 1/3)
[  193.934694] wlan1: authenticated
[  193.935963] wlan1: associate with 34:e0:cf:f2:e2:18 (try 1/3)
[  193.991609] wlan1: RX AssocResp from 34:e0:cf:f2:e2:18 (capab=0x421 
status=0 aid=2)
[  194.093600] wlan1: associated
[  194.095031] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready

--
nirinA

^ permalink raw reply

* Re: ath10k-regression in 4.14: Connections aborts with "failed to extract amsdu: -11"
From: Kalle Valo @ 2017-10-29  7:06 UTC (permalink / raw)
  To: Ryan Hsu
  Cc: Thorsten Leemhuis, ath10k@lists.infradead.org,
	linux-wireless@vger.kernel.org
In-Reply-To: <46f918c5-b07d-e397-2f3d-8136c7c1a8f3@qti.qualcomm.com>

+ linux-wireless

Ryan Hsu <ryanhsu@qti.qualcomm.com> writes:

>>> ath10k_pci 0000:3a:00.0: Direct firmware load for
>>> ath10k/pre-cal-pci-0000:3a:00.0.bin failed with error -2
>>> ath10k_pci 0000:3a:00.0: Direct firmware load for
>>> ath10k/cal-pci-0000:3a:00.0.bin failed with error -2
>> Do they have anything to do with this? Hardware is
>
> This error message is confusing since QCA6174 is not supporting
> pre-calibration feature, this reminds me that we need to clean this
> up.

These warnings come up again because of this commit:

c0cc00f250e1 ath10k: activate user space firmware loading again

https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=3Da=
th-next&id=3Dc0cc00f250e19c717fc9cdbdb7f55aaa569c7498

We really need a function like request_firmware_nowarn() which would not
print a warning everytime a file is not found. It just confuses the
users and make them falsely believe that's the reason of their problems.

--=20
Kalle Valo=

^ permalink raw reply

* ath10k: Wifi slow on the XPS13 (9360) (QCA6174)
From: Kalle Valo @ 2017-10-29  7:27 UTC (permalink / raw)
  To: Thorsten Leemhuis
  Cc: Ryan Hsu, ath10k@lists.infradead.org, Paul Menzel,
	linux-wireless@vger.kernel.org
In-Reply-To: <74a979dc-f06d-be9d-7c3f-359cd481d16c@leemhuis.info>

KyBsaW51eC13aXJlbGVzcyBhbmQgY2xlYW5pbmcgdGhlIHN1YmplY3QNCg0KSGkgVGhvcnN0ZW4s
DQoNCnNvcnJ5IGZvciB0aGUgbGF0ZSByZXBseSwgSSdtIGhhdmluZyBwcm9ibGVtcyBrZWVwaW5n
IHVwIHdpdGggYWxsIHRoZQ0KZW1haWwuIEkganVzdCBkbyBhIHF1aWNrIHJlcGx5IG5vdyB0byBw
b2ludCBvdXQgdGhhdCB5b3UgYXJlIHRhbGtpbmcNCmFib3V0IHR3byBkaWZmZXJlbnQgcHJvYmxl
bXMuIFRvIGtlZXAgdGhlIGRpc2N1c3Npb24gc2ltcGxlIEkgcmVjb21tZW5kDQprZWVwaW5nIHRo
ZSB0d28gaXNzdWVzIGNvbXBsZXRlIHNlcGFyYXRlLg0KDQpUaG9yc3RlbiBMZWVtaHVpcyA8bGlu
dXhAbGVlbWh1aXMuaW5mbz4gd3JpdGVzOg0KDQo+IExvISBTcGxpdHRpbmcgdGhpcyB0aHJlYWQg
dG8gZm9jdXMgb24gYSBpc3N1ZSB0aGF0IGhhcyBub3RoaW5nIHRvIGRvDQo+IHdpdGggdGhlIHJl
Z3Jlc3Npb24gaW4gNC4xNCBJIHJlcG9ydGVkOg0KPg0KPiBPbiAwMy4xMC4yMDE3IDAxOjQwLCBS
eWFuIEhzdSB3cm90ZToNCj4+IE9uIDEwLzAxLzIwMTcgMDE6NTkgQU0sIFRob3JzdGVuIExlZW1o
dWlzIHdyb3RlOg0KPj4+PiBhdGgxMGtfcGNpIDAwMDA6M2E6MDAuMDogRGlyZWN0IGZpcm13YXJl
IGxvYWQgZm9yDQo+Pj4+IGF0aDEway9wcmUtY2FsLXBjaS0wMDAwOjNhOjAwLjAuYmluIGZhaWxl
ZCB3aXRoIGVycm9yIC0yDQo+Pj4+IGF0aDEwa19wY2kgMDAwMDozYTowMC4wOiBEaXJlY3QgZmly
bXdhcmUgbG9hZCBmb3INCj4+Pj4gYXRoMTBrL2NhbC1wY2ktMDAwMDozYTowMC4wLmJpbiBmYWls
ZWQgd2l0aCBlcnJvciAtMg0KPj4+IERvIHRoZXkgaGF2ZSBhbnl0aGluZyB0byBkbyB3aXRoIHRo
aXM/IEhhcmR3YXJlIGlzDQo+PiBUaGlzIGVycm9yIG1lc3NhZ2UgaXMgY29uZnVzaW5nIHNpbmNl
IFFDQTYxNzQgaXMgbm90IHN1cHBvcnRpbmcNCj4+IHByZS1jYWxpYnJhdGlvbiBmZWF0dXJlLCB0
aGlzIHJlbWluZHMgbWUgdGhhdCB3ZSBuZWVkIHRvIGNsZWFuIHRoaXMgdXAuDQo+DQo+IEkgZ3Vl
c3MgdGhhdCB3b3VsZCBiZSBnb29kIHRvIGF2b2lkIGNvbmZ1c2lvbi4gQnV0IHdoaWxlIGF0IGl0
OiBJZiB5b3UNCj4gaGF2ZSBhIG1pbnV0ZSwgY291bGQgeW91IHBsZWFzZSBleHBsYWluIHRvIG1l
IGhvdyB0byBwcm9wZXJseSBzZXQgdXAgdGhlDQo+IHdpZmkgZmlybXdhcmUgZmlsZXMgZm9yIG15
IERlbGwgWFBTMTMgKDkzNjApPyBUaGUgcmVhc29ucyB3aHkgSSdtDQo+IGFza2luZzogU2VuZGlu
ZyBkYXRhIHZpYSB3aWZpIGlzIHJlYWxseSBzbG93IG9uIG15IGxhcHRvcCAoc2NwIGNvcGllcw0K
PiBvbmx5IGdldCAyIHRvIDUgTUJ5dGUvcyBvbiBuZXR3b3JrcyB0aGF0IGFyZSBrbm93biB0byBi
ZSBhIGxvdCBmYXN0ZXIpLg0KPiBJIHdvbmRlciBpZiB0aGUgZmlybXdhcmUgZmlsZXMgb3IgdGhl
IGNhbGlicmF0aW9uIGRhdGEgaXMgcGFydCBvZiB0aGUNCj4gcmVhc29uIHdpZmkgVHggaXMgc2xv
dy4gVGhlIG1hY2hpbmUgaXMgbm9ybWFsbHkgc2hpcHBlZCB3aXRoIGEgc2xpZ2h0bHkNCj4gZW5o
YW5jZWQgVWJ1bnR1IDE2LjA0LiBUaGF0IGFtb25nIG90aGVycyBjb250YWlucyBhIHBhY2thZ2Ug
d2l0aCB0aGUNCj4gbWFjaGluZSBzcGVjaWZpYyBmaWxlcyBib2FyZC5iaW4gYW5kIGJvYXJkLTIu
YmluIHRoYXQgcmVwbGFjZSB0aGUgZmlsZXMNCj4gbm9ybWFsbHkgaW5zdGFsbGVkIGluIC9saWIv
ZmlybXdhcmUvYXRoMTBrL1FDQTYxNzQvaHczLjAvIEFyZSB0aG9zZQ0KPiBtYWNoaW5lIHNwZWNp
ZmljIGZpbGVzIGNydWNpYWwgdG8gaGF2ZSBvciBhcmUgdGhlIG9uZSBmcm9tIHRoZQ0KPiBsaW51
eC1maXJtd2FyZSByZXBvIGdvb2QgZW5vZ3VoPyBJJ20gdXNpbmcgRmVkb3JhIGFuZCBjb3VsZCBj
b3B5IHRoZQ0KPiBvbmVzIGZyb20gVWJ1bnR1IG92ZXIsIGJ1dCBvYnZpb3VzbHkgdGhleSB3aWxs
IGdldCBvdmVyd3JpdHRlbiBldmVyeQ0KPiB0aW1lIEZlZG9yYSBzaGlwcyBhIG5ldyBsaW51eC1m
aXJtd2FyZSBwYWNrYWdlIOKAkyBJT1c6IGV2ZXJ5IGZldyB3ZWVrcyA6LS8NCg0KWWVzLCB0aGUg
Ym9hcmQgZmlsZSBjYW4gYWZmZWN0IHRocm91Z2h0cHV0LCBfYm90aF8gVENQIGFuZCBVRFAuIEkg
ZG9uJ3QNCmtub3cgd2hhdCBib2FyZCBmaWxlcyBVYnVudHUgaXMgc2hpcHBpbmcgYnV0IHdlIHNo
b3VsZCB0cnkgdG8gZ2V0IHRob3NlDQppbnRvIHVwc3RyZWFtLg0KDQo+IFNpZGUgbm90ZTogWW91
IGZpbmQgYSBsb3Qgb2YgcmVwb3J0cyBhYm91dCBzbG93IHdpZmkgaXMgeW91IHNlYXJjaCB0aGUN
Cj4gbmV0IHdpdGggdGVybXMgbGlrZSAiOTM2MCB3aWZpIHNsb3cgbGludXgiLiBVYnVudHUgZml4
ZWQgdGhhdCBhIGZldw0KPiBtb250aHMgYWdvIHdpdGggdGhpcyBwYXRjaDoNCj4gaHR0cDovL2tl
cm5lbC51YnVudHUuY29tL2dpdC91YnVudHUvdWJ1bnR1LXhlbmlhbC5naXQvY29tbWl0Lz9pZD05
NjkwZjE5ZjA3ZmVlMmFjYjJiMDRlYTVlYWE1ZGIxODRlZTE3NWQ1DQo+DQo+IFNvbWUgYnVncyBh
Ym91dCB0aGlzOg0KPiBodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC91YnVudHUvK3NvdXJjZS9s
aW51eC8rYnVnLzE2OTI4MzYNCj4gaHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvdWJ1bnR1Lytz
b3VyY2UvbGludXgvK2J1Zy8xNjcwMDQxDQoNCkJ1dCB0aGlzIGFnYWluIGFib3V0IGludGVycmFj
dGlvbiBiZXR3ZWVuIGF0aDEwayBhbmQgVENQIHN0YWNrLiBBbmQgaXQNCl9vbmx5XyBhZmZlY3Rz
IFRDUCwgVURQIHNob3VsZCBiZSB1bmFmZmVjdGVkLiBTbyB3aGVuZXZlciB0ZXN0aW5nDQp0aHJv
dWdocHV0IHBsZWFzZSBhbHdheXMgbWVhc3VyZSBib3RoIFRDUCBhbmQgVURQIGJlY2F1c2UgdGhl
biBpdCdzDQplYXNpZXIgdG8gcGlucG9pbnQgdGhlIHJlYXNvbi4NCg0KPiBCdXQgZnJvbSB3aGF0
IEkgZ2F0aGVyZWQgYnkgc2VhcmNoaW5nIHRoZSBuZXQgYW5kIGFza2luZyBvbiAjYXRoMTBrIEkN
Cj4gZ290IHRoZSBpbXByZXNzaW9uIHRoYXQgcGF0Y2ggaXMgYSBtYXNzaXZlIHVnbHkgaGFjayBh
bmQgbm8gd2F5DQo+IGFjY2VwdGFibGUgdXBzdHJlYW0uICBJcyB0aGF0IGNvcnJlY3Q/DQoNClll
cywgaXQncyBhIGhvcnJpYmxlIGhhY2sgYW5kIEkgY2Fubm90IGFwcGx5IHRoYXQuIEFuZCBsaWtl
IHlvdSBzYWlkDQojMTY5MjgzNiwgYWxzbyBFcmljIER1bWF6ZXQgKG9uZSBvZiBUQ1AgbWFpbnRh
aW5lcnMpIGFncmVlcyB3aXRoIHRoYXQuDQoNCj4gSWYgeWVzOiBpcyB0aGVyZSBtYXliZSBhIHBy
b3BlciBmaXggb3V0IHRoZXJlIHNvbWV3aGVyZT8NCg0KVW5mb3J0dW5hdGVseSB0aGVyZSBzdGls
bCBpcyBubyBnb29kIHNvbHV0aW9uLiBJbiBhIHdlZWsgdGhlcmUncyBOZXRkZXYNCjIuMiBhbmQg
d2UgaGF2ZSBMaW51eCBXaXJlbGVzcyBzdW1taXQgdGhlcmUuIFdlIHNob3VsZCBicmluZyB1cCB0
aGlzDQp0b3BpYyB0aGVyZS4NCg0KLS0gDQpLYWxsZSBWYWxv

^ permalink raw reply

* [PATCH] Revert "ath10k: fix napi_poll budget overflow"
From: Kalle Valo @ 2017-10-29  7:41 UTC (permalink / raw)
  To: ath10k; +Cc: linux-wireless

Thorsten reported on <fa6e3ee2-91b5-a54b-afe3-87f30aac7a48@leemhuis.info> that
commit c9353bf483d3 made ath10k unstable with QCA6174 on his Dell XPS13 (9360)
with an error message:

ath10k_pci 0000:3a:00.0: failed to extract amsdu: -11

It only seemed to happen with certain APs, not all, but when it happened the
only way to get ath10k working was to switch the wifi off and on with a hotkey.

As this commit made things even worse (a warning vs breaking the whole
connection) let's revert the commit for now and while the issue is being fixed.

Link: http://lists.infradead.org/pipermail/ath10k/2017-October/010227.html
Reported-by: Thorsten Leemhuis <linux@leemhuis.info>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath10k/htt_rx.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index f068376ec565..7ae3926f4995 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -1745,8 +1745,7 @@ static void ath10k_htt_rx_delba(struct ath10k *ar, struct htt_resp *resp)
 }
 
 static int ath10k_htt_rx_extract_amsdu(struct sk_buff_head *list,
-				       struct sk_buff_head *amsdu,
-				       int budget_left)
+				       struct sk_buff_head *amsdu)
 {
 	struct sk_buff *msdu;
 	struct htt_rx_desc *rxd;
@@ -1757,9 +1756,8 @@ static int ath10k_htt_rx_extract_amsdu(struct sk_buff_head *list,
 	if (WARN_ON(!skb_queue_empty(amsdu)))
 		return -EINVAL;
 
-	while ((msdu = __skb_dequeue(list)) && budget_left) {
+	while ((msdu = __skb_dequeue(list))) {
 		__skb_queue_tail(amsdu, msdu);
-		budget_left--;
 
 		rxd = (void *)msdu->data - sizeof(*rxd);
 		if (rxd->msdu_end.common.info0 &
@@ -1850,8 +1848,7 @@ static int ath10k_htt_rx_h_rx_offload(struct ath10k *ar,
 	return num_msdu;
 }
 
-static int ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb,
-				    int budget_left)
+static int ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb)
 {
 	struct ath10k_htt *htt = &ar->htt;
 	struct htt_resp *resp = (void *)skb->data;
@@ -1908,9 +1905,9 @@ static int ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb,
 	if (offload)
 		num_msdus = ath10k_htt_rx_h_rx_offload(ar, &list);
 
-	while (!skb_queue_empty(&list) && budget_left) {
+	while (!skb_queue_empty(&list)) {
 		__skb_queue_head_init(&amsdu);
-		ret = ath10k_htt_rx_extract_amsdu(&list, &amsdu, budget_left);
+		ret = ath10k_htt_rx_extract_amsdu(&list, &amsdu);
 		switch (ret) {
 		case 0:
 			/* Note: The in-order indication may report interleaved
@@ -1920,7 +1917,6 @@ static int ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb,
 			 * should still give an idea about rx rate to the user.
 			 */
 			num_msdus += skb_queue_len(&amsdu);
-			budget_left -= skb_queue_len(&amsdu);
 			ath10k_htt_rx_h_ppdu(ar, &amsdu, status, vdev_id);
 			ath10k_htt_rx_h_filter(ar, &amsdu, status);
 			ath10k_htt_rx_h_mpdu(ar, &amsdu, status);
@@ -2563,8 +2559,7 @@ int ath10k_htt_txrx_compl_task(struct ath10k *ar, int budget)
 		}
 
 		spin_lock_bh(&htt->rx_ring.lock);
-		num_rx_msdus = ath10k_htt_rx_in_ord_ind(ar, skb,
-							(budget - quota));
+		num_rx_msdus = ath10k_htt_rx_in_ord_ind(ar, skb);
 		spin_unlock_bh(&htt->rx_ring.lock);
 		if (num_rx_msdus < 0) {
 			resched_napi = true;
-- 
2.7.4

^ permalink raw reply related

* Re: ath10k-regression due to "ath10k: fix napi_poll budget overflow" c9353bf483d3
From: Kalle Valo @ 2017-10-29  7:44 UTC (permalink / raw)
  To: Ryan Hsu
  Cc: Thorsten Leemhuis, linux-wireless@vger.kernel.org,
	ath10k@lists.infradead.org
In-Reply-To: <72e73df5-c261-cb1a-7fba-b1a3a9019fea@qti.qualcomm.com>

Ryan Hsu <ryanhsu@qti.qualcomm.com> writes:

> On 10/27/2017 02:40 AM, Kalle Valo wrote:
>
>> + linux-wireless
>>
>> Sorry, I have not been able to follow this discussion very closely but
>> was the conclusion? Should we should revert c9353bf483d3 for 4.14 or
>> what? I should still have time to do that, but not much.
>
> Kalle, I don't think I have enough time to look into the issue, since
> original change is to avoid the warning, but now is having regression.
> Let's try to revert c9353bf483d3 for 4.14, and I'll look into this later.

Great, thanks Ryan.

I now submitted the revert and I'll try to get it to 4.14:

https://patchwork.kernel.org/patch/10031233/

--=20
Kalle Valo=

^ permalink raw reply

* [PATCH 2/5] mac80211: call synchronize_net once in the restart flow
From: Luca Coelho @ 2017-10-29  9:51 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless, Sara Sharon, Luca Coelho
In-Reply-To: <20171029095111.17078-1-luca@coelho.fi>

From: Sara Sharon <sara.sharon@intel.com>

Currently the restart flow enables RX back, and then proceeds
to tear down RX and TX aggregations.
The TX aggregation tear down calls synchronize_net(), which
waits for packet receiving to be done.
This is done for every session, while RX processing is already
active, and in some reproductions it takes up to 3 seconds.
Add a call once in the restart_work, before we have traffic
active again, and remove the subsequent calls when tearing
down the aggregation.
This requires to move down the code that turns off the
reconfig flag in order to be able to test it in
_ieee80211_stop_tx_ba_session().

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/agg-tx.c |  3 ++-
 net/mac80211/main.c   |  3 +++
 net/mac80211/util.c   | 19 ++++++++++---------
 3 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 1d0bf857a3b5..96d1013d277d 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -387,7 +387,8 @@ int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
 	 * telling the driver. New packets will not go through since
 	 * the aggregation session is no longer OPERATIONAL.
 	 */
-	synchronize_net();
+	if (!local->in_reconfig)
+		synchronize_net();
 
 	tid_tx->stop_initiator = reason == AGG_STOP_PEER_REQUEST ?
 					WLAN_BACK_RECIPIENT :
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index e054a2fd8d38..0785d04a80bc 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -263,6 +263,9 @@ static void ieee80211_restart_work(struct work_struct *work)
 	flush_delayed_work(&local->roc_work);
 	flush_work(&local->hw_roc_done);
 
+	/* wait for all packet processing to be done */
+	synchronize_net();
+
 	ieee80211_reconfig(local);
 	rtnl_unlock();
 }
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index d57e5f6bd8b6..1f82191ce601 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2110,15 +2110,6 @@ int ieee80211_reconfig(struct ieee80211_local *local)
 		cfg80211_sched_scan_stopped_rtnl(local->hw.wiphy, 0);
 
  wake_up:
-	if (local->in_reconfig) {
-		local->in_reconfig = false;
-		barrier();
-
-		/* Restart deferred ROCs */
-		mutex_lock(&local->mtx);
-		ieee80211_start_next_roc(local);
-		mutex_unlock(&local->mtx);
-	}
 
 	if (local->monitors == local->open_count && local->monitors > 0)
 		ieee80211_add_virtual_monitor(local);
@@ -2146,6 +2137,16 @@ int ieee80211_reconfig(struct ieee80211_local *local)
 		mutex_unlock(&local->sta_mtx);
 	}
 
+	if (local->in_reconfig) {
+		local->in_reconfig = false;
+		barrier();
+
+		/* Restart deferred ROCs */
+		mutex_lock(&local->mtx);
+		ieee80211_start_next_roc(local);
+		mutex_unlock(&local->mtx);
+	}
+
 	ieee80211_wake_queues_by_reason(hw, IEEE80211_MAX_QUEUE_MAP,
 					IEEE80211_QUEUE_STOP_REASON_SUSPEND,
 					false);
-- 
2.14.2

^ permalink raw reply related


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