summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com>2023-03-12 18:41:39 -0700
committerSecurityBot <android-nexus-securitybot@system.gserviceaccount.com>2023-03-12 18:41:39 -0700
commit59911cd587ebce115850e3210e559e27739d5924 (patch)
treed6fe8f11f9fef4f9b7a2383affadeed9e453b1f6
parent99d6381fb6d139529e69b079baf4ba1ffe556cb1 (diff)
parentf099d4fa5c9c83f8146c7d1507754f4d72dd72da (diff)
downloadbcm4389-59911cd587ebce115850e3210e559e27739d5924.tar.gz
SBMerger: 478053055 Change-Id: If5f2ee6176e4f2291bdbf1cba5d3c83eccc8d1ed Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r--Kbuild9
-rw-r--r--dhd_debug.c4
-rw-r--r--wl_cfg80211.c6
-rw-r--r--wl_cfgscan.c19
4 files changed, 26 insertions, 12 deletions
diff --git a/Kbuild b/Kbuild
index 500903f..1c08c93 100644
--- a/Kbuild
+++ b/Kbuild
@@ -384,9 +384,9 @@ DHDCFLAGS += -DWL_P2P_RAND
#Custom Mapping of DSCP to User Priority
DHDCFLAGS += -DWL_CUSTOM_MAPPING_OF_DSCP
# Enable below define for production
-# ifneq ($(CONFIG_SOC_GOOGLE),)
-# DHDCFLAGS += -DMACADDR_PROVISION_ENFORCED
-# endif
+ifneq ($(CONFIG_SOC_GOOGLE),)
+DHDCFLAGS += -DMACADDR_PROVISION_ENFORCED
+endif
ifneq ($(CONFIG_BCMDHD_PCIE),)
DHDCFLAGS += -DDHD_WAKE_STATUS
endif
@@ -947,6 +947,9 @@ else ifneq ($(CONFIG_ARCH_HISI),)
# Allow wl event forwarding as network packet
DHDCFLAGS += -DWL_EVENT_ENAB
+ # Enable memdump for logset beyond range only internal builds
+ DHDCFLAGS += -DDHD_LOGSET_BEYOND_MEMDUMP
+
ifneq ($(CONFIG_BCMDHD_PCIE),)
# LB RXP Flow control to avoid OOM
DHDCFLAGS += -DLB_RXP_STOP_THR=200 -DLB_RXP_STRT_THR=199
diff --git a/dhd_debug.c b/dhd_debug.c
index a7f4933..72e9689 100644
--- a/dhd_debug.c
+++ b/dhd_debug.c
@@ -1129,6 +1129,7 @@ dhd_dbg_msgtrace_log_parser(dhd_pub_t *dhdp, void *event_data,
if (logset >= event_log_max_sets) {
DHD_ERROR(("%s logset: %d max: %d out of range queried: %d\n",
__FUNCTION__, logset, event_log_max_sets, event_log_max_sets_queried));
+#ifdef DHD_LOGSET_BEYOND_MEMDUMP
#ifdef DHD_FW_COREDUMP
if (event_log_max_sets_queried && !dhd_memdump_is_scheduled(dhdp)) {
DHD_ERROR(("%s: collect socram for DUMP_TYPE_LOGSET_BEYOND_RANGE\n",
@@ -1137,6 +1138,9 @@ dhd_dbg_msgtrace_log_parser(dhd_pub_t *dhdp, void *event_data,
dhd_bus_mem_dump(dhdp);
}
#endif /* DHD_FW_COREDUMP */
+#else
+ goto exit;
+#endif /* DHD_LOGSET_BEYOND_MEMDUMP */
}
block = ltoh16(*((uint16 *)(data + 2)));
diff --git a/wl_cfg80211.c b/wl_cfg80211.c
index c64d536..c26e437 100644
--- a/wl_cfg80211.c
+++ b/wl_cfg80211.c
@@ -6584,11 +6584,15 @@ wl_handle_assoc_hints(struct bcm_cfg80211 *cfg, struct net_device *dev,
WL_DBG(("fw_ap_select:%d skip_hints:%d\n", fw_ap_select, skip_hints));
#endif /* WL_SKIP_CONNECT_HINTS */
+ if (IS_P2P_GC(dev->ieee80211_ptr)) {
+ skip_hints = false;
+ }
+
/* Use bssid_hint if hints are allowed and if its unicast addr */
if (!skip_hints && sme->bssid_hint && !ETHER_ISBCAST(sme->bssid_hint)) {
WL_INFORM_MEM(("bssid_hint "MACDBG" \n", MAC2STRDBG(sme->bssid_hint)));
info->targeted_join = true;
- if (cfg->join_iovar_ver) {
+ if (cfg->join_iovar_ver && IS_STA_IFACE(ndev_to_wdev(dev))) {
/* Firmware supports bssid_hint feature */
info->bssid_hint = true;
}
diff --git a/wl_cfgscan.c b/wl_cfgscan.c
index d665851..ec57136 100644
--- a/wl_cfgscan.c
+++ b/wl_cfgscan.c
@@ -6519,7 +6519,8 @@ bool wl_check_active_2g_chan(struct bcm_cfg80211 *cfg, drv_acs_params_t *paramet
#ifdef WL_CELLULAR_CHAN_AVOID
if (wl_cellavoid_mandatory_isset(cfg->cellavoid_info, NL80211_IFTYPE_AP) &&
!wl_cellavoid_is_safe(cfg->cellavoid_info, sta_chanspec)) {
- WL_INFORM_MEM(("Not allow unsafe channel and mandatory chspec:0x%x\n",
+ WL_INFORM_MEM((
+ "Not allow unsafe channel and mandatory chspec:0x%x\n",
sta_chanspec));
goto exit;
}
@@ -7045,11 +7046,14 @@ wl_acs_check_scc(struct bcm_cfg80211 *cfg, drv_acs_params_t *parameter,
*/
if (scc == FALSE && CHSPEC_IS2G(sta_chanspec)) {
#ifdef WL_CELLULAR_CHAN_AVOID
- scc = wl_cellavoid_operation_allowed(cfg->cellavoid_info,
- sta_chanspec, NL80211_IFTYPE_AP);
- if (scc == FALSE) {
- WL_INFORM_MEM(("Not allow unsafe channel and mandatory chspec:0x%x\n",
- sta_chanspec));
+ if (!wl_is_chanspec_restricted(cfg, sta_chanspec)) {
+ scc = wl_cellavoid_operation_allowed(cfg->cellavoid_info,
+ sta_chanspec, NL80211_IFTYPE_AP);
+ if (scc == FALSE) {
+ WL_INFORM_MEM((
+ "Not allow unsafe channel and mandatory chspec:0x%x\n",
+ sta_chanspec));
+ }
}
#endif /* WL_CELLULAR_CHAN_AVOID */
}
@@ -7129,8 +7133,7 @@ wl_handle_acs_concurrency_cases(struct bcm_cfg80211 *cfg, drv_acs_params_t *para
bool scc_case = false;
u32 sta_band = CHSPEC_TO_WLC_BAND(chspec);
if (sta_band == WLC_BAND_2G) {
- if (wl_is_chanspec_restricted(cfg, chspec) ||
- (parameter->freq_bands & (WLC_BAND_5G | WLC_BAND_6G))) {
+ if (parameter->freq_bands & (WLC_BAND_5G | WLC_BAND_6G)) {
/* Remove the 2g band from incoming ACS bands */
parameter->freq_bands &= ~WLC_BAND_2G;
} else if (wl_acs_check_scc(cfg, parameter, chspec, qty, pList)) {