diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-01-28 00:21:48 -0700 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2017-01-28 00:21:48 -0700 |
| commit | 54518a369bf4a288fb6126e069581940164c428d (patch) | |
| tree | fd026b5bddb7e4b3b4caff82c1f7d74e7ba3a18c | |
| parent | 868e208ffc324b31ec0f82520f464cced1520bea (diff) | |
| parent | ca82dee574df5dbef02a95f719eca05a4105f66c (diff) | |
Promotion of wlan-cmn.driver.lnx.1.0-00122.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
688141 Ife64d3aafef584448eb04ec126ae8884a1fc91f5 Release 5.1.0.27
1091052 Ic05a829eadbf974598370c494a5cff10201ec600 qcacmn: Fix header include bug
1079697 I8e1faf6099f8fbc869c8af42b7511a13e66e6bed qcacmn: Remove redundant qdf_mem_zero calls
688141 I62c833b78418192d1212a232a78ae23ce9778b15 Release 5.1.0.26Z
1114094 I52768029d3ccf007b7d9999e796de3366ac0ae35 qcacmn: Set PER based roam value for config
1105081 I265f15476f1a23a268f159a44b6a3e4243fb9068 qcacmn: Add support to randomize probe req SA and Seq nu
Change-Id: I330c2c2166225a8a742a0574e8e7c098441df935
CRs-Fixed: 688141, 1091052, 1114094, 1079697, 1105081
| -rw-r--r-- | VERSION.txt | 2 | ||||
| -rw-r--r-- | hif/src/ar9888def.h | 4 | ||||
| -rw-r--r-- | hif/src/ce/ce_main.c | 3 | ||||
| -rw-r--r-- | hif/src/hif_main.c | 2 | ||||
| -rw-r--r-- | hif/src/sdio/hif_sdio_dev.c | 1 | ||||
| -rw-r--r-- | hif/src/sdio/if_sdio.c | 1 | ||||
| -rw-r--r-- | hif/src/sdio/native_sdio/src/hif.c | 1 | ||||
| -rw-r--r-- | hif/src/sdio/native_sdio/src/hif_scatter.c | 5 | ||||
| -rw-r--r-- | htc/htc.c | 4 | ||||
| -rw-r--r-- | qdf/inc/qdf_util.h | 19 | ||||
| -rw-r--r-- | wmi/inc/wmi_unified_param.h | 23 | ||||
| -rw-r--r-- | wmi/src/wmi_unified_tlv.c | 33 |
12 files changed, 73 insertions, 25 deletions
diff --git a/VERSION.txt b/VERSION.txt index 22d9ead90f1e..c5b29b96eaea 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,2 +1,2 @@ -Current Component wlan-cmn.driver.lnx.1.0 version 5.1.0.26Y +Current Component wlan-cmn.driver.lnx.1.0 version 5.1.0.27 Matches Component wlan-cld3.driver.lnx.1.1 version 5.1.0.22D diff --git a/hif/src/ar9888def.h b/hif/src/ar9888def.h index 9e291cc407c3..1ebe643d746e 100644 --- a/hif/src/ar9888def.h +++ b/hif/src/ar9888def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -26,7 +26,7 @@ */ #ifndef _AR9888DEF_H_ -#define AR9888__AR9888DEF_H_ +#define _AR9888DEF_H_ /* Base Addresses */ #define AR9888_RTC_SOC_BASE_ADDRESS 0x00004000 diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index 6f9cce4080d1..836ada93c8cd 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -617,7 +617,6 @@ struct CE_handle *ce_init(struct hif_softc *scn, return NULL; } malloc_CE_state = true; - qdf_mem_zero(CE_state, sizeof(*CE_state)); scn->ce_id_to_state[CE_id] = CE_state; qdf_spinlock_create(&CE_state->ce_index_lock); @@ -677,7 +676,6 @@ struct CE_handle *ce_init(struct hif_softc *scn, */ malloc_src_ring = true; } - qdf_mem_zero(ptr, CE_nbytes); src_ring = CE_state->src_ring = (struct CE_ring_state *)ptr; @@ -825,7 +823,6 @@ struct CE_handle *ce_init(struct hif_softc *scn, } return NULL; } - qdf_mem_zero(ptr, CE_nbytes); dest_ring = CE_state->dest_ring = (struct CE_ring_state *)ptr; diff --git a/hif/src/hif_main.c b/hif/src/hif_main.c index 2b6470d1003e..b00c25aac852 100644 --- a/hif/src/hif_main.c +++ b/hif/src/hif_main.c @@ -403,8 +403,6 @@ struct hif_opaque_softc *hif_open(qdf_device_t qdf_ctx, uint32_t mode, return GET_HIF_OPAQUE_HDL(scn); } - qdf_mem_zero(scn, bus_context_size); - scn->qdf_dev = qdf_ctx; scn->hif_con_param = mode; qdf_atomic_init(&scn->active_tasklet_cnt); diff --git a/hif/src/sdio/hif_sdio_dev.c b/hif/src/sdio/hif_sdio_dev.c index 0d31414407ec..b427148be85b 100644 --- a/hif/src/sdio/hif_sdio_dev.c +++ b/hif/src/sdio/hif_sdio_dev.c @@ -231,7 +231,6 @@ struct hif_sdio_device *hif_dev_create(struct hif_sdio_dev *hif_device, return NULL; } - qdf_mem_zero(pdev, sizeof(struct hif_sdio_device)); qdf_spinlock_create(&pdev->Lock); qdf_spinlock_create(&pdev->TxLock); qdf_spinlock_create(&pdev->RxLock); diff --git a/hif/src/sdio/if_sdio.c b/hif/src/sdio/if_sdio.c index 7118f239d4a8..289e130e5e12 100644 --- a/hif/src/sdio/if_sdio.c +++ b/hif/src/sdio/if_sdio.c @@ -93,7 +93,6 @@ static A_STATUS hif_sdio_probe(void *context, void *hif_handle) ret = -ENOMEM; goto err_alloc; } - qdf_mem_zero(scn, sizeof(*scn)); scn->hif_handle = hif_handle; hif_configure_device(hif_handle, HIF_DEVICE_GET_OS_DEVICE, diff --git a/hif/src/sdio/native_sdio/src/hif.c b/hif/src/sdio/native_sdio/src/hif.c index bfe728827030..f3a247f33334 100644 --- a/hif/src/sdio/native_sdio/src/hif.c +++ b/hif/src/sdio/native_sdio/src/hif.c @@ -2550,7 +2550,6 @@ static struct hif_sdio_dev *add_hif_device(struct sdio_func *func) hifdevice = (struct hif_sdio_dev *) qdf_mem_malloc(sizeof( struct hif_sdio_dev)); AR_DEBUG_ASSERT(hifdevice != NULL); - qdf_mem_zero(hifdevice, sizeof(*hifdevice)); #if HIF_USE_DMA_BOUNCE_BUFFER hifdevice->dma_buffer = qdf_mem_malloc(HIF_DMA_BUFFER_SIZE); AR_DEBUG_ASSERT(hifdevice->dma_buffer != NULL); diff --git a/hif/src/sdio/native_sdio/src/hif_scatter.c b/hif/src/sdio/native_sdio/src/hif_scatter.c index 9f81eb46834f..71d042ff0d21 100644 --- a/hif/src/sdio/native_sdio/src/hif_scatter.c +++ b/hif/src/sdio/native_sdio/src/hif_scatter.c @@ -377,8 +377,6 @@ QDF_STATUS setup_hif_scatter_support(struct hif_sdio_dev *device, struct HIF_SCATTER_REQ_PRIV)); if (NULL == req_priv) goto end; - qdf_mem_zero(req_priv, sizeof( - struct HIF_SCATTER_REQ_PRIV)); /* save the device instance */ req_priv->device = device; /* allocate the scatter request */ @@ -392,9 +390,6 @@ QDF_STATUS setup_hif_scatter_support(struct hif_sdio_dev *device, qdf_mem_free(req_priv); goto end; } - /* just zero the main part of the scatter request */ - qdf_mem_zero(req_priv->hif_scatter_req, - sizeof(struct _HIF_SCATTER_REQ)); /* back pointer to the private struct */ req_priv->hif_scatter_req->hif_private[0] = req_priv; /* allocate a bus request for this scatter request */ diff --git a/htc/htc.c b/htc/htc.c index 7a2d74a24d1d..61104aaefd6a 100644 --- a/htc/htc.c +++ b/htc/htc.c @@ -79,7 +79,6 @@ static HTC_PACKET *build_htc_tx_ctrl_packet(qdf_device_t osdev) if (NULL == pPacket) { break; } - qdf_mem_zero(pPacket, sizeof(HTC_PACKET)); netbuf = qdf_nbuf_alloc(osdev, HTC_CONTROL_BUFFER_SIZE, 20, 4, true); if (NULL == netbuf) { @@ -261,8 +260,6 @@ HTC_HANDLE htc_create(void *ol_sc, HTC_INIT_INFO *pInfo, qdf_device_t osdev, return NULL; } - qdf_mem_zero(target, sizeof(HTC_TARGET)); - htc_runtime_pm_init(target); qdf_spinlock_create(&target->HTCLock); qdf_spinlock_create(&target->HTCRxLock); @@ -285,7 +282,6 @@ HTC_HANDLE htc_create(void *ol_sc, HTC_INIT_INFO *pInfo, qdf_device_t osdev, HTC_PACKET *pPacket = (HTC_PACKET *) qdf_mem_malloc(sizeof(HTC_PACKET)); if (pPacket != NULL) { - qdf_mem_zero(pPacket, sizeof(HTC_PACKET)); free_htc_packet_container(target, pPacket); } } diff --git a/qdf/inc/qdf_util.h b/qdf/inc/qdf_util.h index e6b4a708598a..5356ba89b2cb 100644 --- a/qdf/inc/qdf_util.h +++ b/qdf/inc/qdf_util.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -481,4 +481,21 @@ unsigned long qdf_rounddown_pow_of_two(unsigned long n) return __qdf_rounddown_pow_of_two(n); } +/** + * qdf_is_group_addr() - checks whether addr is multi cast + * @mac_addr: address to be checked for multicast + * + * Check if the input mac addr is multicast addr + * + * Return: true if multicast addr else false + */ +static inline +bool qdf_is_group_addr(uint8_t *mac_addr) +{ + if (mac_addr[0] & 0x01) + return true; + else + return false; +} + #endif /*_QDF_UTIL_H*/ diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 3102fc5687e5..ee7a5ba1582c 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -998,6 +998,11 @@ struct ap_ps_params { * @bssid_list: Lisst of bssid to scan * @ie_data: IE data buffer pointer * @passive_flag: Is this passive scan + * @enable_scan_randomization: enable scan randomization feature + * @mac_addr: MAC address used with randomization + * @mac_addr_mask: MAC address mask used with randomization, bits that + * are 0 in the mask should be randomized, bits that are 1 should + * be taken from the @mac_addr */ struct scan_start_params { uint32_t scan_id; @@ -1040,6 +1045,10 @@ struct scan_start_params { uint8_t *ie_data; int passive_flag; #endif + /* mac address randomization attributes */ + bool enable_scan_randomization; + uint8_t mac_addr[QDF_MAC_ADDR_SIZE]; + uint8_t mac_addr_mask[QDF_MAC_ADDR_SIZE]; }; /** @@ -1610,9 +1619,14 @@ struct rssi_monitor_param { /** * struct scan_mac_oui - oui paramters * @oui: oui parameters + * @vdev_id: session id + * @enb_probe_req_sno_randomization: set to true for enabling + * seq number randomization of probe req frames */ struct scan_mac_oui { uint8_t oui[WMI_WIFI_SCANNING_MAC_OUI_LENGTH]; + uint32_t vdev_id; + bool enb_probe_req_sno_randomization; }; #define WMI_PASSPOINT_REALM_LEN 256 @@ -2029,6 +2043,11 @@ struct pno_nw_type { * @pnoscan_adaptive_dwell_mode: adaptive dwelltime mode for pno scan * @channel_prediction_full_scan: periodic timer upon which a full scan needs * to be triggered. + * @enable_pno_scan_randomization: enable pno scan randomization feature + * @mac_addr: MAC address used with randomization + * @mac_addr_mask: MAC address mask used with randomization, bits that + * are 0 in the mask should be randomized, bits that are 1 should + * be taken from the @mac_addr */ struct pno_scan_req_params { uint8_t enable; @@ -2055,6 +2074,10 @@ struct pno_scan_req_params { enum wmi_dwelltime_adaptive_mode pnoscan_adaptive_dwell_mode; uint32_t channel_prediction_full_scan; #endif + /* mac address randomization attributes */ + bool enable_pno_scan_randomization; + uint8_t mac_addr[QDF_MAC_ADDR_SIZE]; + uint8_t mac_addr_mask[QDF_MAC_ADDR_SIZE]; }; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 5803901d6b86..d8c6f699f335 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -1496,6 +1496,18 @@ QDF_STATUS send_scan_start_cmd_tlv(wmi_unified_t wmi_handle, cmd->num_ssids = params->num_ssids; cmd->ie_len = params->ie_len; cmd->n_probes = params->n_probes; + + /* mac randomization attributes */ + if (params->enable_scan_randomization) { + cmd->scan_ctrl_flags |= WMI_SCAN_ADD_SPOOFED_MAC_IN_PROBE_REQ | + WMI_SCAN_RANDOM_SEQ_NO_IN_PROBE_REQ; + WMI_CHAR_ARRAY_TO_MAC_ADDR(params->mac_addr, &cmd->mac_addr); + WMI_CHAR_ARRAY_TO_MAC_ADDR(params->mac_addr_mask, + &cmd->mac_mask); + } + + WMI_LOGI("scan_ctrl_flags = %x", cmd->scan_ctrl_flags); + buf_ptr += sizeof(*cmd); tmp_ptr = (uint32_t *) (buf_ptr + WMI_TLV_HDR_SIZE); for (i = 0; i < params->num_chan; ++i) @@ -4107,6 +4119,13 @@ QDF_STATUS send_scan_probe_setoui_cmd_tlv(wmi_unified_t wmi_handle, WMI_LOGD("%s: wmi:oui received from hdd %08x", __func__, cmd->prob_req_oui); + cmd->vdev_id = psetoui->vdev_id; + cmd->flags = WMI_SCAN_PROBE_OUI_SPOOFED_MAC_IN_PROBE_REQ; + if (psetoui->enb_probe_req_sno_randomization) + cmd->flags |= WMI_SCAN_PROBE_OUI_RANDOM_SEQ_NO_IN_PROBE_REQ; + + WMI_LOGI(FL("vdev_id = %d, flags = %x"), cmd->vdev_id, cmd->flags); + if (wmi_unified_cmd_send(wmi_handle, wmi_buf, len, WMI_SCAN_PROB_REQ_OUI_CMDID)) { WMI_LOGE("%s: failed to send command", __func__); @@ -6074,6 +6093,16 @@ QDF_STATUS send_pno_start_cmd_tlv(wmi_unified_t wmi_handle, /** TODO: Discrete firmware doesn't have command/option to configure * App IE which comes from wpa_supplicant as of part PNO start request. */ + + /* mac randomization attributes */ + if (pno->enable_pno_scan_randomization) { + cmd->flags |= WMI_NLO_CONFIG_SPOOFED_MAC_IN_PROBE_REQ | + WMI_NLO_CONFIG_RANDOM_SEQ_NO_IN_PROBE_REQ; + WMI_CHAR_ARRAY_TO_MAC_ADDR(pno->mac_addr, &cmd->mac_addr); + WMI_CHAR_ARRAY_TO_MAC_ADDR(pno->mac_addr_mask, &cmd->mac_mask); + } + WMI_LOGI("pno flags = %x", cmd->flags); + ret = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID); if (ret) { @@ -10895,10 +10924,6 @@ QDF_STATUS send_per_roam_config_cmd_tlv(wmi_unified_t wmi_handle, /* fill in per roam config values */ wmi_per_config->vdev_id = req_buf->vdev_id; - if (req_buf->per_config.enable) { - /* Enable for both Tx and Rx*/ - req_buf->per_config.enable = 3; - } wmi_per_config->enable = req_buf->per_config.enable; wmi_per_config->high_rate_thresh = |
