Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 683ead1f authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 9e1c1066 on remote branch

Change-Id: I4c427986875d7526aab6d0997215ae9d5032a16e
parents 6c3941b9 9e1c1066
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3036,6 +3036,11 @@ bool cds_is_connection_in_progress(uint8_t *session_id,
			}
			if (hdd_ctx->connection_in_progress) {
				cds_debug("AP/GO: connection is in progress");
				if (session_id && reason) {
					*session_id = adapter->sessionId;
					*reason =
					eHDD_SAP_CONNECTION_IN_PROGRESS;
				}
				return true;
			}
		}
+75 −2
Original line number Diff line number Diff line
@@ -186,6 +186,12 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
		uint16_t seq_num_start, seq_num_end;
		enum htt_rx_flush_action action;

		if (qdf_nbuf_len(htt_t2h_msg) < HTT_RX_FLUSH_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}

		peer_id = HTT_RX_FLUSH_PEER_ID_GET(*msg_word);
		tid = HTT_RX_FLUSH_TID_GET(*msg_word);
		seq_num_start =
@@ -228,7 +234,13 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
	{
		uint16_t peer_id;
		uint8_t tid;
		int msg_len = qdf_nbuf_len(htt_t2h_msg);

		if (msg_len < HTT_RX_FRAG_IND_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}
		peer_id = HTT_RX_FRAG_IND_PEER_ID_GET(*msg_word);
		tid = HTT_RX_FRAG_IND_EXT_TID_GET(*msg_word);
		htt_rx_frag_set_last_msdu(pdev, htt_t2h_msg);
@@ -289,6 +301,12 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
		uint16_t peer_id;
		uint8_t vdev_id;

		if (qdf_nbuf_len(htt_t2h_msg) < HTT_RX_PEER_MAP_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}

		peer_id = HTT_RX_PEER_MAP_PEER_ID_GET(*msg_word);
		vdev_id = HTT_RX_PEER_MAP_VDEV_ID_GET(*msg_word);
		peer_mac_addr = htt_t2h_mac_addr_deswizzle(
@@ -312,6 +330,12 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
	{
		uint16_t peer_id;

		if (qdf_nbuf_len(htt_t2h_msg) < HTT_RX_PEER_UNMAP_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}

		peer_id = HTT_RX_PEER_UNMAP_PEER_ID_GET(*msg_word);
		if (peer_id > ol_cfg_max_peer_id(pdev->ctrl_pdev)) {
			qdf_print("%s: HTT_T2H_MSG_TYPE_PEER_UNMAP,"
@@ -330,6 +354,12 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
		enum htt_sec_type sec_type;
		int is_unicast;

		if (qdf_nbuf_len(htt_t2h_msg) < HTT_SEC_IND_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}

		peer_id = HTT_SEC_IND_PEER_ID_GET(*msg_word);
		sec_type = HTT_SEC_IND_SEC_TYPE_GET(*msg_word);
		is_unicast = HTT_SEC_IND_UNICAST_GET(*msg_word);
@@ -417,6 +447,13 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
		uint32_t htt_credit_delta_abs;
		int32_t htt_credit_delta;
		int sign, old_credit;
		int msg_len = qdf_nbuf_len(htt_t2h_msg);

		if (msg_len < HTT_TX_CREDIT_MSG_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}

		htt_credit_delta_abs =
			HTT_TX_CREDIT_DELTA_ABS_GET(*msg_word);
@@ -544,8 +581,16 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
			struct ol_error_info err_info;
			struct ol_txrx_vdev_t *vdev;
			struct ol_txrx_peer_t *peer;
			uint16_t peer_id =
				 HTT_RX_OFLD_PKT_ERR_MIC_ERR_PEER_ID_GET
			uint16_t peer_id;
			int msg_len = qdf_nbuf_len(htt_t2h_msg);

			if (msg_len < HTT_RX_OFLD_PKT_ERR_MIC_ERR_BYTES) {
				qdf_print("invalid nbuff len");
				WARN_ON(1);
				break;
			}

			peer_id = HTT_RX_OFLD_PKT_ERR_MIC_ERR_PEER_ID_GET
				(*(msg_word + 1));

			peer = ol_txrx_peer_find_by_id(pdev->txrx_pdev,
@@ -849,6 +894,13 @@ void htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
		uint16_t peer_id;
		uint8_t tid, pn_ie_cnt, *pn_ie = NULL;
		uint16_t seq_num_start, seq_num_end;
		int msg_len = qdf_nbuf_len(htt_t2h_msg);

		if (msg_len < HTT_RX_PN_IND_BYTES) {
			qdf_print("invalid nbuff len");
			WARN_ON(1);
			break;
		}

		/*First dword */
		peer_id = HTT_RX_PN_IND_PEER_ID_GET(*msg_word);
@@ -861,6 +913,13 @@ void htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
		seq_num_end = HTT_RX_PN_IND_SEQ_NUM_END_GET(*msg_word);
		pn_ie_cnt = HTT_RX_PN_IND_PN_IE_CNT_GET(*msg_word);

		if (msg_len - HTT_RX_PN_IND_BYTES <
		    pn_ie_cnt * sizeof(uint8_t)) {
			qdf_print("invalid pn_ie count");
			WARN_ON(1);
			break;
		}

		msg_word++;
		/*Third dword */
		if (pn_ie_cnt)
@@ -1138,6 +1197,13 @@ void htt_t2h_msg_handler_fast(void *context, qdf_nbuf_t *cmpl_msdus,
			u_int16_t peer_id;
			u_int8_t tid, pn_ie_cnt, *pn_ie = NULL;
			int seq_num_start, seq_num_end;
			int msg_len = qdf_nbuf_len(htt_t2h_msg);

			if (msg_len < HTT_RX_PN_IND_BYTES) {
				qdf_print("invalid nbuff len");
				WARN_ON(1);
				break;
			}

			/*First dword */
			peer_id = HTT_RX_PN_IND_PEER_ID_GET(*msg_word);
@@ -1152,6 +1218,13 @@ void htt_t2h_msg_handler_fast(void *context, qdf_nbuf_t *cmpl_msdus,
			pn_ie_cnt =
				HTT_RX_PN_IND_PN_IE_CNT_GET(*msg_word);

			if (msg_len - HTT_RX_PN_IND_BYTES <
				pn_ie_cnt * sizeof(uint8_t)) {
				qdf_print("invalid pn_ie len");
				WARN_ON(1);
				break;
			}

			msg_word++;
			/*Third dword*/
			if (pn_ie_cnt)
+37 −1
Original line number Diff line number Diff line
@@ -5857,6 +5857,8 @@ ol_txrx_update_tx_status(struct ol_txrx_pdev_t *pdev,

	tx_status->chan_flags = channel_flags;
	tx_status->ant_signal_db = mon_hdr->rssi_comb;
	tx_status->tx_status = mon_hdr->status;
	tx_status->add_rtap_ext = true;
}

/**
@@ -5945,6 +5947,7 @@ ol_txrx_mon_tx_data_cb(void *ppdev, void *nbuf_list, uint8_t vdev_id,
		mon_hdr.sgi = cmpl_desc->sgi;
		mon_hdr.ldpc = cmpl_desc->ldpc;
		mon_hdr.beamformed = cmpl_desc->beamformed;
		mon_hdr.status = status;

		qdf_nbuf_pull_head(
			msdu,
@@ -6158,6 +6161,9 @@ ol_txrx_mon_rx_data_cb(void *ppdev, void *nbuf_list, uint8_t vdev_id,
		ol_htt_mon_note_chan(pdev, chan);
		htt_rx_mon_get_rx_status(pdev->htt_pdev, rx_desc, &rx_status);

		rx_status.tx_status = status;
		rx_status.add_rtap_ext = true;

		/* clear IEEE80211_RADIOTAP_F_FCS flag*/
		rx_status.rtap_flags &= ~(BIT(4));
		rx_status.rtap_flags &= ~(BIT(2));
@@ -6194,6 +6200,36 @@ free_buf:
	drop_count = ol_txrx_drop_nbuf_list(buf_list);
}

/**
 * ol_txrx_pktcapture_status_map() - map Tx status for data packets
 * with packet capture Tx status
 * @status: Tx status
 *
 * Return: pktcapture_tx_status enum
 */
static enum pktcapture_tx_status
ol_txrx_pktcapture_status_map(uint8_t status)
{
	enum pktcapture_tx_status tx_status;

	switch (status) {
	case htt_tx_status_ok:
		tx_status = pktcapture_tx_status_ok;
		break;
	case htt_tx_status_discard:
		tx_status = pktcapture_tx_status_discard;
		break;
	case htt_tx_status_no_ack:
		tx_status = pktcapture_tx_status_no_ack;
		break;
	default:
		tx_status = pktcapture_tx_status_discard;
		break;
	}

	return tx_status;
}

void ol_txrx_mon_data_process(uint8_t vdev_id,
			      qdf_nbuf_t mon_buf_list,
			      enum mon_data_process_type type,
@@ -6233,7 +6269,7 @@ void ol_txrx_mon_data_process(uint8_t vdev_id,
	pkt->monpkt = (void *)mon_buf_list;
	pkt->vdev_id = vdev_id;
	pkt->tid = tid;
	pkt->status = status;
	pkt->status = ol_txrx_pktcapture_status_map(status);
	pkt->pkt_format = pkt_format;
	cds_indicate_monpkt(sched_ctx, pkt);
	return;
+13 −0
Original line number Diff line number Diff line
@@ -212,4 +212,17 @@ struct ol_txrx_fw_stats_desc_t
struct ol_txrx_stats_req_internal *ol_txrx_fw_stats_desc_get_req(struct
	ol_txrx_pdev_t *pdev, uint8_t desc_id);

/**
 * enum pktcapture_tx_status - packet capture tx status
 * @pktcapture_tx_status_ok: successfully sent + acked
 * @pktcapture_tx_status_discard: discard - not sent
 * @pktcapture_tx_status_no_ack: no_ack - sent, but no ack
 *
 * This enum has tx status types for packet capture mode
 */
enum pktcapture_tx_status {
	pktcapture_tx_status_ok,
	pktcapture_tx_status_discard,
	pktcapture_tx_status_no_ack,
};
#endif /* _OL_TXRX__H_ */
+2 −0
Original line number Diff line number Diff line
@@ -363,6 +363,7 @@ enum {
 * @eHDD_REASSOC_IN_PROGRESS: reassociation is in progress
 * @eHDD_EAPOL_IN_PROGRESS: STA/P2P-CLI is in middle of EAPOL/WPS exchange
 * @eHDD_SAP_EAPOL_IN_PROGRESS: SAP/P2P-GO is in middle of EAPOL/WPS exchange
 * @eHDD_SAP_CONNECTION_IN_PROGRESS: SAP/P2P-GO is in middle of connection.
 */
typedef enum {
	eHDD_SCAN_REJECT_DEFAULT = 0,
@@ -370,6 +371,7 @@ typedef enum {
	eHDD_REASSOC_IN_PROGRESS,
	eHDD_EAPOL_IN_PROGRESS,
	eHDD_SAP_EAPOL_IN_PROGRESS,
	eHDD_SAP_CONNECTION_IN_PROGRESS,
} scan_reject_states;

#define MAX_PROBE_REQ_OUIS 16
Loading