diff --git a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h index e9f8de7431e7..77b1337baca5 100644 --- a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h +++ b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -390,6 +391,7 @@ while (0) #define FRAME_MASK_IPV4_DHCP 2 #define FRAME_MASK_IPV4_EAPOL 4 #define FRAME_MASK_IPV6_DHCP 8 +#define FRAME_MASK_IPV4_WAPI 0x40 #ifdef QCA_SUPPORT_PEER_ISOLATION #define dp_get_peer_isolation(_peer) ((_peer)->isolation) diff --git a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.c b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.c index 2ad820e6703a..9c76684a63fa 100644 --- a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.c +++ b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. - * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -2129,7 +2129,8 @@ void dp_rx_deliver_to_stack_no_peer(struct dp_soc *soc, qdf_nbuf_t nbuf) uint32_t pkt_len = 0; uint8_t *rx_tlv_hdr; uint32_t frame_mask = FRAME_MASK_IPV4_ARP | FRAME_MASK_IPV4_DHCP | - FRAME_MASK_IPV4_EAPOL | FRAME_MASK_IPV6_DHCP; + FRAME_MASK_IPV4_EAPOL | FRAME_MASK_IPV6_DHCP | + FRAME_MASK_IPV4_WAPI; peer_id = QDF_NBUF_CB_RX_PEER_ID(nbuf); if (peer_id > soc->max_peers) diff --git a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.h b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.h index 0818acf4aebf..c367e58a7276 100644 --- a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.h +++ b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_rx.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -209,7 +210,9 @@ bool dp_rx_is_special_frame(qdf_nbuf_t nbuf, uint32_t frame_mask) ((frame_mask & FRAME_MASK_IPV4_EAPOL) && qdf_nbuf_is_ipv4_eapol_pkt(nbuf)) || ((frame_mask & FRAME_MASK_IPV6_DHCP) && - qdf_nbuf_is_ipv6_dhcp_pkt(nbuf))) + qdf_nbuf_is_ipv6_dhcp_pkt(nbuf)) || + ((frame_mask & FRAME_MASK_IPV4_WAPI) && + qdf_nbuf_is_ipv4_wapi_pkt(nbuf))) return true; return false; diff --git a/drivers/staging/qca-wifi-host-cmn/umac/scan/dispatcher/src/wlan_scan_utils_api.c b/drivers/staging/qca-wifi-host-cmn/umac/scan/dispatcher/src/wlan_scan_utils_api.c index 2075c773d12e..de03b1eb334c 100644 --- a/drivers/staging/qca-wifi-host-cmn/umac/scan/dispatcher/src/wlan_scan_utils_api.c +++ b/drivers/staging/qca-wifi-host-cmn/umac/scan/dispatcher/src/wlan_scan_utils_api.c @@ -2021,7 +2021,7 @@ static uint32_t util_gen_new_ie(uint8_t *ie, uint32_t ielen, if (extn_elem && extn_elem[TAG_LEN_POS] >= VALID_ELEM_LEAST_LEN) { if (((extn_elem + extn_elem[1] + MIN_IE_LEN) - sub_copy) - < subie_len) + <= subie_len) util_parse_noninheritance_list(extn_elem, &elem_list, &extn_elem_list, &ninh); } @@ -2163,7 +2163,7 @@ static uint32_t util_gen_new_ie(uint8_t *ie, uint32_t ielen, tmp_new = sub_copy; while ((subie_len > 0) && (((tmp_new + tmp_new[1] + MIN_IE_LEN) - sub_copy) <= - (subie_len - 1))) { + subie_len)) { if (!(tmp_new[0] == WLAN_ELEMID_NONTX_BSSID_CAP || tmp_new[0] == WLAN_ELEMID_SSID || tmp_new[0] == WLAN_ELEMID_MULTI_BSSID_IDX ||