|
@@ -822,6 +822,8 @@ static void iwl_mvm_rx(struct iwl_op_mode *op_mode,
|
|
|
|
|
|
if (likely(pkt->hdr.cmd == REPLY_RX_MPDU_CMD))
|
|
|
iwl_mvm_rx_rx_mpdu(mvm, napi, rxb);
|
|
|
+ else if (pkt->hdr.cmd == FRAME_RELEASE)
|
|
|
+ iwl_mvm_rx_frame_release(mvm, rxb, 0);
|
|
|
else if (pkt->hdr.cmd == REPLY_RX_PHY_CMD)
|
|
|
iwl_mvm_rx_rx_phy_cmd(mvm, rxb);
|
|
|
else
|
|
@@ -1488,8 +1490,12 @@ static void iwl_mvm_rx_mq_rss(struct iwl_op_mode *op_mode,
|
|
|
unsigned int queue)
|
|
|
{
|
|
|
struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode);
|
|
|
+ struct iwl_rx_packet *pkt = rxb_addr(rxb);
|
|
|
|
|
|
- iwl_mvm_rx_mpdu_mq(mvm, napi, rxb, queue);
|
|
|
+ if (unlikely(pkt->hdr.cmd == FRAME_RELEASE))
|
|
|
+ iwl_mvm_rx_frame_release(mvm, rxb, queue);
|
|
|
+ else
|
|
|
+ iwl_mvm_rx_mpdu_mq(mvm, napi, rxb, queue);
|
|
|
}
|
|
|
|
|
|
static const struct iwl_op_mode_ops iwl_mvm_ops_mq = {
|