|
@@ -389,6 +389,7 @@ int hdd_softap_inspect_dhcp_packet(struct hdd_adapter *adapter,
|
|
|
hdd_debug("EXIT: phase=%d, nego_status=%d",
|
|
|
hdd_sta_info->dhcp_phase,
|
|
|
hdd_sta_info->dhcp_nego_status);
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &hdd_sta_info, true);
|
|
|
}
|
|
|
|
|
|
return errno;
|
|
@@ -423,7 +424,7 @@ static void __hdd_softap_hard_start_xmit(struct sk_buff *skb,
|
|
|
static struct qdf_mac_addr bcast_mac_addr = QDF_MAC_ADDR_BCAST_INIT;
|
|
|
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
|
|
uint32_t num_seg;
|
|
|
- struct hdd_station_info *sta_info;
|
|
|
+ struct hdd_station_info *sta_info = NULL;
|
|
|
|
|
|
++adapter->hdd_stats.tx_rx_stats.tx_called;
|
|
|
adapter->hdd_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
|
|
@@ -606,12 +607,15 @@ static void __hdd_softap_hard_start_xmit(struct sk_buff *skb,
|
|
|
netif_trans_update(dev);
|
|
|
|
|
|
wlan_hdd_sar_unsolicited_timer_start(hdd_ctx);
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
|
|
|
return;
|
|
|
|
|
|
drop_pkt_and_release_skb:
|
|
|
qdf_net_buf_debug_release_skb(skb);
|
|
|
drop_pkt:
|
|
|
+ if (sta_info)
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
|
|
|
qdf_dp_trace_data_pkt(skb, QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
QDF_DP_TRACE_DROP_PACKET_RECORD, 0,
|
|
@@ -744,6 +748,7 @@ QDF_STATUS hdd_softap_init_tx_rx_sta(struct hdd_adapter *adapter,
|
|
|
sta_mac->bytes);
|
|
|
|
|
|
if (sta_info) {
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
hdd_err("Reinit of in use station " QDF_MAC_ADDR_STR,
|
|
|
QDF_MAC_ADDR_ARRAY(sta_mac->bytes));
|
|
|
return QDF_STATUS_E_FAILURE;
|
|
@@ -890,6 +895,8 @@ QDF_STATUS hdd_softap_rx_packet_cbk(void *adapter_context, qdf_nbuf_t rx_buf)
|
|
|
sta_info->rx_bytes += skb->len;
|
|
|
sta_info->last_tx_rx_ts = qdf_system_ticks();
|
|
|
hdd_softap_inspect_dhcp_packet(adapter, skb, QDF_RX);
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info,
|
|
|
+ true);
|
|
|
}
|
|
|
|
|
|
hdd_event_eapol_log(skb, QDF_RX);
|
|
@@ -1040,6 +1047,7 @@ QDF_STATUS hdd_softap_register_sta(struct hdd_adapter *adapter,
|
|
|
hdd_debug("clean up old entry for STA MAC " QDF_MAC_ADDR_STR,
|
|
|
QDF_MAC_ADDR_ARRAY(sta_mac->bytes));
|
|
|
hdd_softap_deregister_sta(adapter, &sta_info);
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1090,6 +1098,7 @@ QDF_STATUS hdd_softap_register_sta(struct hdd_adapter *adapter,
|
|
|
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
|
|
hdd_debug("cdp_peer_register() failed to register. Status = %d [0x%08X]",
|
|
|
qdf_status, qdf_status);
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
return qdf_status;
|
|
|
}
|
|
|
|
|
@@ -1133,6 +1142,7 @@ QDF_STATUS hdd_softap_register_sta(struct hdd_adapter *adapter,
|
|
|
sta_info->peer_state = OL_TXRX_PEER_STATE_CONN;
|
|
|
}
|
|
|
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
hdd_debug("Enabling queues");
|
|
|
wlan_hdd_netif_queue_control(adapter,
|
|
|
WLAN_START_ALL_NETIF_QUEUE_N_CARRIER,
|
|
@@ -1256,6 +1266,7 @@ QDF_STATUS hdd_softap_change_sta_state(struct hdd_adapter *adapter,
|
|
|
p2p_peer_authorized(adapter->vdev, sta_mac->bytes);
|
|
|
}
|
|
|
|
|
|
+ hdd_put_sta_info(&adapter->sta_info_list, &sta_info, true);
|
|
|
hdd_exit();
|
|
|
return qdf_status;
|
|
|
}
|