Commit Graph

3900 Commits

Author SHA1 Message Date
Vignesh Viswanathan
a0921c424e qcacld-3.0: Fix naming conventions for MLME APIs and files
Fixed the naming conventions of APIs and files for MLME component.
Internal MLME component only APIs are in wlan_mlme_main.h/c files
under core.
APIs exposed to other components are in wlan_mlme_api.h/c files
under dispatcher.
APIs exposed to HDD are in wlan_mlme_ucfg_api.h/c files
under dispatcher.
mlme_init/deinit, mlme_psoc_open/close are called from HDD,
so made that as ucfg APIs.

Change-Id: I049008ceaa86ca52acd3ad9a02f903a732117d1f
CRs-Fixed: 2309276
2018-09-05 09:49:58 -07:00
Abhinav Kumar
6f6944851b qcacld-3.0: Update secondary channel params for SAP after SSR
In case of recovery of SAP after SSR, driver is not updating
params for secondary channel as per primary channel (Operation
channel) for SAP.

Update parameters for secondary channel as per primary channel
before SAP start.

Change-Id: I2da2eff62881fe4e65208be778618d0b9c05bf88
CRs-Fixed: 2292645
2018-09-05 08:20:54 -07:00
Mohit Khanna
b8ccd6ea7f qcacld-3.0: Reduce hdd txrx stats log level
Reduce the current stats log level for HDD TXRX stats from info to
debug.

Change-Id: Id50e45a57eb667af4e42f58d5df7b9bef9535517
CRs-Fixed: 2307482
2018-09-05 06:47:07 -07:00
Rajeev Kumar
b2b5e695a9 qcacld-3.0: Add SSR protection wrapper for bus bandwidth compute work
Bus bandwidth compute work handler is missing SSR protection wrapper
although it has HDD validate context check but since HDD validate
context check is not sufficient alone add CDS SSR protection wrapper
around bus bandwidth compute work handler.

Change-Id: I43b3495610b2a9936472ff67a95c7db8dbfa5560
CRs-Fixed: 2307421
2018-09-05 06:47:03 -07:00
Jeff Johnson
b43ed03298 qcacld-3.0: Refine the extscan set significant change logic
Make the following updates to the extscan set significant change
logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.

Change-Id: I916f387cee254c2d8ba57a9182bd927a91eadf0c
CRs-Fixed: 2307374
2018-09-05 06:46:59 -07:00
Liangwei Dong
2f29b37809 qcacld-3.0: Add INI for dbs mode selection
Add dbs_selection_policy to select preferred
2x2 DBS band.
Add vdev_priority_list to set the vdev 2x2
priority list.

Change-Id: I79bba3dbeecba85a04a4ddc1b57ca798998fc7d7
CRs-Fixed: 2304298
2018-09-05 06:46:55 -07:00
hqu
bf1b618ba7 qcacld-3.0: Add process for userspace does not set avoid channel list
In platforms that support dual wifi instances, userspace doesn't
set avoid frequency channel list with command
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY to trigger restart sap
process, but current handling is always to check avoid channel list
which is set by userspace so it will be failed for lte coex case.

Fix is to add process for userspace doesn't set avoid channel list.

Change-Id: Icc3356191411791f4cec9fd89e4490359cf6f1fc
CRs-Fixed: 2294109
2018-09-05 05:08:54 -07:00
Rajeev Kumar
75fc36eda0 qcacld-3.0: Free apf memory when interpreter is enabled
Dynamically allocated apf buffer memory is not freed in error case
when interpreter is enabled and leading to memory leak. Free APF
buffer memory in case APF interpreter is enabled to avoid memory
leak.

Change-Id: I012bf80eb6db7b986f812161b48f96b0965c0542
CRs-Fixed: 2308702
2018-09-05 05:08:41 -07:00
Rajeev Kumar Sirasanagandla
e3b599151d qcacld-3.0: Add support to store vdev object in PE session
Add support to store vdev object in PE session and acquire/release its
reference count during PE create/delete session respectively.

Change-Id: I476798c4c42992dec2a2648319780b206274e8c4
CRs-Fixed: 2306387
2018-09-05 05:08:37 -07:00
Rachit Kankane
ee1735c905 qcacld-3.0: Featurize RMC
Featurize RMC and disable for Genoa

Change-Id: I66b17622c89dd5736f152c4cd9506ce2706b4604
CRs-Fixed: 2304269
2018-09-05 00:17:52 -07:00
Rachit Kankane
f6834c4b4c qcacld-3.0: Featurize Dynamic Voltage Config
Host provides INI way to control voltage configs, featurizing the
same for Genoa.

Change-Id: Ia58d84eb2e2a67ead189a51d2a0b98230513f8f9
CRs-Fixed: 2304125
2018-09-05 00:17:45 -07:00
Alok Kumar
81e1d73e68 qcacld-3.0: Reset NUD tracking status during hdd_start_adapter
NUD tracking is disabled in hdd_stop_adapter which needs to be
enabled back in hdd_start_adapter.

Enable the NUD tracking by setting NUD tracking status to false.

Change-Id: I606653d553d6282cfdb6e52a9bf5bc1100732375
CRs-Fixed: 2308351
2018-09-04 21:15:06 -07:00
Ashish Kumar Dhanotiya
8d039c8829 qcacld-3.0: Add mtrace logging for scan request
We are transitioning to new logging infrastructure
by using existing mtrace functionality.
Add new logging for complete scan request and response path.

Change-Id: Iab48b0f2a6ab9d0ec14e3110eb628b6d1731df53
CRs-Fixed: 2308237
2018-09-04 21:15:01 -07:00
Dustin Brown
06fed35874 qcacld-3.0: Validate link layer stats adapter
__wlan_hdd_open_ll_stats_debugfs() currently does not ensure the given
adapter is up. This can lead to sending an invalid vdev Id to firmware.
Ensure the given adapter is up before sending the link layer stats
request to firmware.

Change-Id: I1c81f56ec795bc782404293c0f4abd8bbeb6b124
CRs-Fixed: 2306604
2018-09-04 15:27:37 -07:00
Rajeev Kumar
c27efb6fd1 qcacld-3.0: Stop bus bandwidth compute timer during SSR shutdown
Stop bus bandwidth compute timer during SSR shutdown such that
bus bandwidth timer is stopped and bus bandwidth compute work is
flushed cleanly in all the cases.

Change-Id: Ie79ddd1ab13b852fb5d23029c51f05e921f72989
CRs-Fixed: 2307304
2018-09-03 12:59:42 -07:00
Arunk Khandavalli
40943af150 qcacld-3.0: Send the lpass scan interface for station interface
Presently the lpass information is sent during the wlan startup
at that point session for the station interface is not created.

Send the lpass scan interface notifcation for station when the
interface up/down is received.

Change-Id: I50a68acc62a76f9e65e1758cd3b21688c0dd3500
CRs-Fixed: 2048439
2018-09-03 03:29:35 -07:00
Nirav Shah
5c083da176 qcacld-3.0: Remove hardcoded print message for ini parameters
Remove hardcoded print message for ini parameters during
insmod and use hdd_cfg_get_global_config to print ini
parameters.

Change-Id: I3ac077818e99c461866211e220232fa6c0e3e00d
CRs-Fixed: 2278888
2018-09-03 00:22:07 -07:00
Dustin Brown
20f9fc4f4d qcacld-3.0: Use enums for hdd bit flags
Hdd has two sets of bitmap flags which are using #define's. It so
happens that two of the flags use the same bit offset. To address this,
and ensure no such issues arise in the future, convert these into
auto-incrementing enumerations.

Change-Id: I8f0e9d0f3a0a493176227ccf16f25d0a4c5bdc73
CRs-Fixed: 2307446
2018-09-01 19:19:26 -07:00
Amar Singhal
f989879feb qcacld-3.0: Log country while doing ACS
Log the current country while executing ACS logic. Current country
helps in knowing the current channel list.

Change-Id: I05a0982d940da19f178f0432372eead0313e77be
CRs-Fixed: 2296561
2018-09-01 01:42:26 -07:00
Vignesh Viswanathan
7818250f0f qcacld-3.0: Fix camel case names in mlme_ht_capabilities_info structure
Rename camel case names of members of mlme_ht_capabilities_info
structure.

Change-Id: I576ad77c4744c240537d540f1efaab0e7d9cb109
CRs-Fixed: 2293859
2018-08-31 14:49:14 -07:00
Dustin Brown
1faac91278 qcacld-3.0: Clear pending flag in hdd_destroy_acs_timer()
hdd_create_acs_timer() sets VENDOR_ACS_RESPONSE_PENDING, but
hdd_destroy_acs_timer() does not ensure this flag is cleared. This can
lead to a situation where the ACS timer is not initialized, but parts of
the code incorrectly assume that it is. Clear
VENDOR_ACS_RESPONSE_PENDING in hdd_destroy_acs_timer() to prevent
invalid access to the ACS timer.

Change-Id: I7c367b20e279fadc5ee329d94b7475711796b185
CRs-Fixed: 2305719
2018-08-31 13:08:24 -07:00
Alok Kumar
5a75b9d348 qcacld-3.0: Revert "Do not enable the pktlog when interface is up"
By default pktlog needs to be enabled during driver load.
To enable/disable pktlog use INI parameter.

This reverts Change-Id: Ie03a7e0a77bc5f525ad7ae74bb104a6d1bf21eb7

Change-Id: I8f74b4bcebfb8b4a35a29e321b2b6bd5e1920bf7
CRs-Fixed: 2296335
2018-08-31 13:08:20 -07:00
Amar Singhal
0fcce7d7a3 qcacld-3.0: Add INI to enable 11d in world mode
In WORLD mode, there can be urgency to discover the current country
since WORLD mode restricts the channel and TX power availability.Add
INI enable_11d_in_world_mode to automatically enable 11d in WORLD
mode. This INI supersedes the setting in 11d INI variable
Is11dSupportEnabled.

CRs-Fixed: 2289349
Change-Id: I7b289cdb60be5e737f41f9de5a478f32a234e717
2018-08-31 11:17:18 -07:00
Karthik Kantamneni
22dd0f69cb qcacld-3.0: Add MLME CFG items of rates [PART 1]
Add MLME CFG items of rates

Change-Id: I9f52f2ef0eef4698ddc13c55dd56d938a6e4c677
2018-08-31 02:33:14 -07:00
Dustin Brown
5e56f90a68 qcacld-3.0: Free llstats buffer if get fails
__wlan_hdd_open_ll_stats_debugfs() fails to free the llstats buffer in
the event that wlan_hdd_ll_stats_get() fails. Add error handling for
this call which frees the newly allocated buffer.

Change-Id: Ic5cff77a758ff81da82dd1143d77da68d87b9291
CRs-Fixed: 2304715
2018-08-30 08:43:15 -07:00
Ryan Hsu
6e9db0b728 qcacld-3.0: add support to remove the ftm from configuration
Phase 1, after ftm componentization, we could now support to remove
the ftm related components when FTM is disable from the build
configuration.

Size changes: after removing the ftm related binaries, we could save
15KB from module size.

Change-Id: Ib363f1d6204b07947a46f32673c4f8ad6fb3dbd3
CRs-fixed: 2258441
2018-08-29 14:02:49 -07:00
Krunal Soni
6c3859f433 qcacld-3.0: Add iwpriv command to set and get BA aging timeout value
Add new iwpriv command to set BA aging timeout value to hardware.

e.g. "iwpriv wlan0 set_ba_timeout <ac> <duration>" which should set
given duration in msecs for given access class.

"iwpriv wlan0 get_ba_timeout" which should get duration
value for each access class and display.

CRs-Fixed: 2254891
Change-Id: I79f79191c47376e414dceeb73b736a0a9610e3ae
2018-08-28 14:46:24 -07:00
Dundi Raviteja
ffa9bf4798 qcacld-3.0: NULL pointer dereference in assoc completion handler
BSS description is dereferencing in hdd_association_completion_handler
without checking for NULL, which may cause NULL pointer dereference.

To address this, add check for BSS description before dereferencing.

Change-Id: I24f728fb6d66b4c07dfe39f3ac426f3d2153b917
CRs-Fixed: 2299797
2018-08-28 09:14:53 -07:00
Jianmin Zhu
c39613c592 qcacld-3.0: Enhance SAP concurrency check to cover AP channel switch case
SAP(Go) concurrency check is mainly used for two purposes:

1) When new GO/SAP session is coming up and needs to check if
this session's channel can co-exist with existing GO/SAP
sessions. For example, in case of single radio platform, MCC for
SAP/GO+SAP/GO is not supported, in such case this API should
prevent bringing the second connection.

2)There is already existing SAP+GO combination but due to upper
layer notifying LTE-COEX event or sending command to move one of
the connections to different channel. In such cases before moving
existing connection to new channel, check if new channel can
co-exist with the other existing connection. For example, one
SAP1 is on channel-6 and second SAP2 is on channel-36 and lets
say they are doing DBS, and lets say upper layer sends LTE-COEX
to move SAP1 from channel-6 to channel-149. In this case, SAP1
and SAP2 will end up doing MCC which may not be desirable result.

Add vdev_id check while checking for 2nd case. If connection with
given vdev_id exist then it is confirmed that it's a case of
channel switch rather than a new connection case.

Change-Id: I2535b38af353be2abd9c2ff636c06f3c5869969d
CRs-Fixed: 2300451
2018-08-27 23:51:34 -07:00
Dustin Brown
35008baacb qcacld-3.0: Stop bus bandwidth work with timer
The bus bandwidth compute timer is a periodic timer which computes bus
bandwidth usage of associated adapters over a period of time. When the
last adapter disassociates, this timer is stopped. However, the timer
starts a work that is not stopped or flushed at this time. When the
device is under load from external subsystems, this work can get pushed
out past what is safe. When the bus bandwidth timer is stopped, also
stop and flush the bus bandwidth work to ensure safe memory access.

Change-Id: I32c15b42c9756341d1ecf534c05f87738fd24edb
CRs-Fixed: 2300697
2018-08-27 16:43:10 -07:00
Sourav Mohapatra
a5c7a26207 qcacld-3.0: Set recovery_in_progress flag for all the fw down events
Presently, recovery inprogress flag is set only when PLD_RECOVERY
is received but in cases of rejuvenate only PLD_FW_DOWN is received.

Set for the recovery in progress for all the firmware down events
so the unneccessary bug_on's will be avoided.

Change-Id: I654e9e5b02925ac21857369f87af6ca40d8dc815
CRs-Fixed: 2285278
2018-08-27 16:43:06 -07:00
Abhinav Kumar
cc959f1b44 qcacld-3.0: Possible use of un-initialized var while changing interface
Currently, driver calls hdd_alloc_station_adapter to initialize the
completion variables for a particular adapter only if mode of interface
is STA or P2P. In case when driver changes its STA + SAP mode to
STA + STA mode by calling hdd_open_concurrent_interface, driver is not
able to initialize init_completion variable for new STA interface. So
while processing fw commands (for new STA interface) which uses
completion variables, driver leads to the use of uninitialized
variables issue.

Create new function cmn_init_completion to initialize completion
variables for all interfaces while opening the HDD adapter.

Change-Id: Iae8ec1a86dd4084c9f5b39ec0d90e16182212df9
CRs-Fixed: 2288919
2018-08-27 16:43:03 -07:00
Jingxiang Ge
ec11359f6d qcacld-3.0: Fix session can't be closed issue
There is race condition for a small window. The scenario
as below.

1 SAP is starting, and dfs cac begins but without finished.
2 SSR happens, wlan begins to call hdd_reset_all_adapters.
  In hdd_reset_all_adapters, sap_ctx->sessionId is reset to invalid.
3 In hdd_hostapd_sap_event_cb, adapter sessionId is set to
  sap_ctx->sessionId, after this step, adapter sessionId is changed
  from valid sessionId to 0xff.
  In hdd_reset_all_adapters->hdd_vdev_destroy, vdev is released
  but session can't be clean up as invalid sessionId. adapter->event_flags
  can't be clear which cause hdd_vdev_destroy can be called multi times.

Change as below.
1 cancel cac timer at the beginning of hdd_reset_all_adapters and
  before wlansap_set_invalid_session.
2 before send eSAP_START_BSS_EVENT, check if sap_ctx->sessionId
  is valid.

Change-Id: Ifaad62cd008f7769b059f36530455d4e734522e4
CRs-Fixed: 2293072
2018-08-27 08:53:22 -07:00
Nachiket Kukade
989bb351cb qcacld-3.0: Advertise NAN support only if INI is enabled
Under get_supported_features vendor command driver is advertising
NAN capability by checking only the Firmware support. If NAN is
disabled through INI it should not advertize this support.

Add an INI parameter check before advertizing NAN capability.

Change-Id: Ib48044a04500d6619b97d5ca1c3431ee64d7e096
CRs-Fixed: 2288204
2018-08-27 07:00:35 -07:00
Sourav Mohapatra
b1260134ad qcacld-3.0: Rectify deinit sequence leading to NULL ptr dereference
In function hdd_wlan_de_init, the hdd_context is fetched via
cds_get_context. This context is then NULL checked. In the failure case
of this check, the hdd_context is still dereferenced which shall lead to
null pointer dereference.

Add proper jump statement to take care of the proper order of init and
deinit

Change-Id: Ied0ac42371315d0286cdcc71e6e0e10ed2ff5fa1
CRs-Fixed: 2299794
2018-08-27 04:47:41 -07:00
Abhinav Kumar
2c0b342950 Revert "qcacld-3.0: Host sends VDEV_DELETE cmd to fw before stop_bss"
While handling IPA event in case if, __wlan_ipa_wlan_evt() queue
WLAN_AP_DISCONNECT cmd for later processing in work-queue context and
in the meanwhile sme close session deletes vdev then, as part of work
queue context driver process WLAN_AP_DISCONNECT and sends
WMA_IPA_OFFLOAD_ENABLE_DISABLE cmd to firmware for the VDEV which is
already deleted by sme_close_session. This result asserts in firmware.

This reverts commit Ief9318bb476b480fd52f4155a0788a34c1e2ed53

Change-Id: I6128fb489fc40cc7ed01cbdf9c419a6a6b20c6d4
CRs-Fixed: 2295672
2018-08-27 03:09:43 -07:00
Bala Venkatesh
b13a3c24f5 qcacld-3.0: Do not Teardown tdls links if new interface is p2p device
As part of any change interface TDLS links are toredown and tdls
state set to disabled in FW. The assumption here is before adding
new interface disable TDLS mode as TDLS is not supported in
concurrency. Due to recent changes in framework,
Driver may receive the change interface to P2P Device mode
after STA connection then teardown is not expected as
STA + P2P Device modes does not comes under concurrent operation.

Check for current and new interface types before disabling TDLS.

Change-Id: I26cfab077b3f83c64687479fba5c7a7c01491a52
CRs-Fixed: 2301650
2018-08-27 03:09:39 -07:00
Rajeev Kumar Sirasanagandla
4133d86be3 qcacld-3.0: Use CSA to change SAP DFS channel
If STA interface is added after softap is started on DFS channel,
then SAP is stopped and re-started on non-dfs channel which is selected
using driver internal acs. But, internal acs is now obsolete. Therefore,
select non-dfs channel from preffered channel list and use SAP CSA
instead of restart.

Change-Id: I95e50c3ffbce35cf30cc9a06f0f14c9e60eb3e3f
CRs-Fixed: 2301895
2018-08-25 02:11:31 -07:00
Mohit Khanna
7032200a77 qcacld-3.0: Support for DP RX Threads
Add support for DP RX Threads as a part of the FR. Multiple RX threads
can be enabled from the ini. The code is added in a new DP module
outside of the cmn project.

Change-Id: Ief6ee955f13c5e527986307371b8e45677cb9700
CRs-Fixed: 2256446
2018-08-24 18:35:32 -07:00
Abhinav Kumar
1a15ed2800 qcacld-3.0: Add SRD channel check in restart SAP
Currently the driver doesn't have a check to bring
up a SAP on STA SCC channel if its a SRD channel
and does force SCC on it, even if SRD master mode
is not supported.

Fix is to check the SRD ini before SAP bringup
on the STA channel

Change-Id: I17f7df9ed973ecc6669f0d36a8c390c71624019b
CRs-Fixed: 2302737
2018-08-24 15:15:55 -07:00
Bala Venkatesh
be1f59f0d2 qcacld-3.0: Initialize SAP mandatory chan list
Initialize SAP mandatory chan list.

CRs-Fixed: 2301749
Change-Id: I126d67da1bfe8426cd3a7b031e97aba907e6155a
2018-08-23 13:50:14 -07:00
Kai Liu
aa88d2f9c2 qcacld-3.0: Define macro WLAN_SYSFS for feature sysfs interface
Disable this feature for MOBILE_ROUTER product, since some MOBILE_ROUTER
platform will attach two wlan cards with separate wlan driver,
during second driver loading process, it will report a warning of
"cannot create duplicate filename" as node with same name has been
created after first driver was loaded.

Change-Id: I9e06439b3a6dacdf4eb5ae87898338ab1eeb8b16
CRs-Fixed: 2295391
2018-08-22 07:46:43 -07:00
Kiran Kumar Lokere
e37c8559a1 qcacld-3.0: Update dfs region enum names
Update dfs region enum names to fix the compilation
due to name change.

Change-Id: If3ed7c5d2eb9ce855f62df98301196395e7febf9
CRs-Fixed: 2300595
2018-08-22 06:08:45 -07:00
Dustin Brown
3111677bb2 qcacld-3.0: Reduce SNR monitoring log
Reduce an SNR monitoring log in HDD to prevent spamming dmesg.

Change-Id: If2779ef469894f1c7982cda7e7b48ddc1c0e5b7c
CRs-Fixed: 2297425
2018-08-21 14:16:27 -07:00
Jeff Johnson
9743eb7f49 qcacld-3.0: Refine the extscan stop BSSID hotlist logic
Make the following updates to the extscan stop BSSID hotlist logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.

Change-Id: I01e29a96fded829c734532b021aeea1960bba641
CRs-Fixed: 2294273
2018-08-20 22:32:28 -07:00
Jeff Johnson
bacb4804c4 qcacld-3.0: Fix mac_handle test in hdd_set_dwell_time()
Recently change "qcacld-3.0: Use mac_handle_t in wlan_hdd_ioctl"
updated the nomenclature used in HDD. During the implementation of
this change a NULL check of mac_handle in hdd_set_dwell_time() had a
"!" removed, incorrectly changing the logic. Restore the correct logic
for NULL-checking mac_handle.

Change-Id: I2bb8393d5adb3156795b3b722d839812419e4995
CRs-Fixed: 2299812
2018-08-20 22:32:23 -07:00
Vignesh Viswanathan
c6812821f7 qcacld-3.0: Add support for wildcard OUI in Action OUI framework
Add support for wildcard OUI 0xFFFFFF in action OUI framework.
When the OUI FFFFFF is defined for some action OUI ini and bit 0
of info_presence bit is set to 0 then the check for vendor OUI
in vendor specific IEs and the vendor IE data checks are skipped
and other checks like MAC, Capabilities are done during connection.

Change-Id: I6e996c5d79f4f7bd91e11134b1b8ba69a1ff0253
CRs-Fixed: 2293167
2018-08-20 15:15:11 -07:00
Will Huang
7049baea18 qcacld-3.0: Fix ACS delayed worker running after adapter stopped
While ACS delayed worker scheduled and is running the function
wlan_hdd_cfg80211_start_acs(), ACS_PENDING has already been cleared by
wlan_hdd_cfg80211_start_pending_acs() before it, so the later coming
stop sap event can't cancel the running delayed worker and free the
sap context which need access by delayed worker.

Fix by clear ACS_PENDING after wlan_hdd_cfg80211_start_acs(), and move
cancel ACS delayed worker before cancel any scan, it can cancel ACS
scan invoke by delayed worker and avoid race condition.

CRs-Fixed: 2289364
Change-Id: Ibd771fc199a0778ac1d8f1f04ba22b49014437de
2018-08-20 10:16:41 -07:00
Vignesh Viswanathan
21c58cb8c3 qcacld-3.0: Add MLME CFG items and APIs
Add the basic infra for MLME CFG items and the APIs to be used from
other components.

Change-Id: I39654de8f7266089d574b85437a19e8d21f91249
CRs-Fixed: 2293825
2018-08-20 05:29:46 -07:00
Dustin Brown
a7bb6ae8f1 qcacld-3.0: Reduce excessive HDD logs
Several HDD logs have been identified as being excessive. Reduce the
logging level of these logs to avoid spamming dmesg.

Change-Id: I49e0f91c5d66051f9e6ffd991d86505a11faa346
CRs-Fixed: 2298385
2018-08-17 17:44:49 -07:00