提交 2047fa54 编写于 作者: S Sara Sharon 提交者: Luca Coelho

iwlwifi: pcie: unify restock calls on init

Currently code calls restock for mq devices during the init
function, unlike sq where restock is called after init.
This causes an harmless but alarming deadlock warning from
lockdep, to fix this - unify the init code.
Rename the restock functions while at it.
Signed-off-by: NSara Sharon <sara.sharon@intel.com>
Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
上级 9794c64f
...@@ -233,10 +233,10 @@ static void iwl_pcie_rxq_check_wrptr(struct iwl_trans *trans) ...@@ -233,10 +233,10 @@ static void iwl_pcie_rxq_check_wrptr(struct iwl_trans *trans)
} }
/* /*
* iwl_pcie_rxq_mq_restock - restock implementation for multi-queue rx * iwl_pcie_rxmq_restock - restock implementation for multi-queue rx
*/ */
static void iwl_pcie_rxq_mq_restock(struct iwl_trans *trans, static void iwl_pcie_rxmq_restock(struct iwl_trans *trans,
struct iwl_rxq *rxq) struct iwl_rxq *rxq)
{ {
struct iwl_rx_mem_buffer *rxb; struct iwl_rx_mem_buffer *rxb;
...@@ -281,10 +281,10 @@ static void iwl_pcie_rxq_mq_restock(struct iwl_trans *trans, ...@@ -281,10 +281,10 @@ static void iwl_pcie_rxq_mq_restock(struct iwl_trans *trans,
} }
/* /*
* iwl_pcie_rxq_sq_restock - restock implementation for single queue rx * iwl_pcie_rxsq_restock - restock implementation for single queue rx
*/ */
static void iwl_pcie_rxq_sq_restock(struct iwl_trans *trans, static void iwl_pcie_rxsq_restock(struct iwl_trans *trans,
struct iwl_rxq *rxq) struct iwl_rxq *rxq)
{ {
struct iwl_rx_mem_buffer *rxb; struct iwl_rx_mem_buffer *rxb;
...@@ -343,9 +343,9 @@ static ...@@ -343,9 +343,9 @@ static
void iwl_pcie_rxq_restock(struct iwl_trans *trans, struct iwl_rxq *rxq) void iwl_pcie_rxq_restock(struct iwl_trans *trans, struct iwl_rxq *rxq)
{ {
if (trans->cfg->mq_rx_supported) if (trans->cfg->mq_rx_supported)
iwl_pcie_rxq_mq_restock(trans, rxq); iwl_pcie_rxmq_restock(trans, rxq);
else else
iwl_pcie_rxq_sq_restock(trans, rxq); iwl_pcie_rxsq_restock(trans, rxq);
} }
/* /*
...@@ -828,9 +828,6 @@ static void iwl_pcie_rx_mq_hw_init(struct iwl_trans *trans) ...@@ -828,9 +828,6 @@ static void iwl_pcie_rx_mq_hw_init(struct iwl_trans *trans)
enabled |= BIT(i) | BIT(i + 16); enabled |= BIT(i) | BIT(i + 16);
} }
/* restock default queue */
iwl_pcie_rxq_mq_restock(trans, &trans_pcie->rxq[0]);
/* /*
* Enable Rx DMA * Enable Rx DMA
* Rx buffer size 4 or 8k or 12k * Rx buffer size 4 or 8k or 12k
...@@ -960,12 +957,13 @@ int iwl_pcie_rx_init(struct iwl_trans *trans) ...@@ -960,12 +957,13 @@ int iwl_pcie_rx_init(struct iwl_trans *trans)
} }
iwl_pcie_rxq_alloc_rbs(trans, GFP_KERNEL, def_rxq); iwl_pcie_rxq_alloc_rbs(trans, GFP_KERNEL, def_rxq);
if (trans->cfg->mq_rx_supported) {
if (trans->cfg->mq_rx_supported)
iwl_pcie_rx_mq_hw_init(trans); iwl_pcie_rx_mq_hw_init(trans);
} else { else
iwl_pcie_rxq_sq_restock(trans, def_rxq);
iwl_pcie_rx_hw_init(trans, def_rxq); iwl_pcie_rx_hw_init(trans, def_rxq);
}
iwl_pcie_rxq_restock(trans, def_rxq);
spin_lock(&def_rxq->lock); spin_lock(&def_rxq->lock);
iwl_pcie_rxq_inc_wr_ptr(trans, def_rxq); iwl_pcie_rxq_inc_wr_ptr(trans, def_rxq);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册