summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | qcacld-2.0: Prevent null data accessMukul Sharma2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In DFS mode, scan req completed through work item which is async method and may lead to null pointer access during driver unload. So as part of fix null check are put in place to avoid null data access. Change-Id: I1f2255c1ad6e3e881626a32384b9badde1b255fc CRs-Fixed: 894741
| * | | | qcacld-2.0: Fix NULL pointer dereference in csrApiRoam.cNaveen Rawat2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is prima to qcacld-2.0 propagation This patch fixes the NULL pointer dereference for pSession->pCurRoamProfile in file csrApiRoam.c Change-Id: Ic66edf9d3afbbca46b9a324d24d61e12fc6c911e CRs-Fixed: 804875
| * | | | qcacld-2.0: CL1370638 - update fw common interface filesRyan Hsu2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change add the new service flag - WMI_SERVICE_PACKET_FILTER_OFFLOAD. And also su_ndpa_err to wlan_dbg_tx_selfgen_stats. Change-Id: If427ee54e7e27194e4cb7e329d7f830f0fe9b389 CRs-Fixed: 865207
| * | | | qcacld-2.0: Fix a race on disassoc requestMahesh Kumar Kalikot Veetil2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PE generated disassoc request is not serialized in SME queue. This results in corrupting 'lim.limDisassocDeauthCnfReq.pMlmDisassocReq' which is a global context to save disassoc request. Fix this condition by making all disassoc requests not to wait for completion. So both request and cleanup happens without a context switch. Change-Id: Iac2c0afa26fbb977b1315ed7733687bc90751430 CRs-Fixed: 898350
| * | | | qcacld-2.0: Fix race condition in tx desc free count manipulationRajeev Kumar2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Protect TX descriptor free credits count under tx mutex - Add debug log to dump total credit and free credit count if bus suspend fails because of pending tx Change-Id: I383e19b8c56edac487e3e0d8763e1212f03b7934 CRs-Fixed: 898742
| * | | | qcacld: Fix race condition b/w register_interface and wq initializationSrinivas Girigowda2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once we register the notifiers with the kernel our notifier can be called even before work queues are initialized. Fix this race condition by initializing the work queue first and then register the interface. Change-Id: I103447b6e5e0df30bfd14c332aa97c4f33b2a166 CRs-Fixed: 898691
| * | | | qcacld-2.0: Initial Connection with Zero Channel listVarun Reddy Yeturu2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Roam start command should be sent to firmware, despite the number of channels in the roaming channel map is Zero. There might be cases where DFS channel roaming might be disabled and we are connected to a lone AP and that happens to be on a DFS channel. Since DFS channel roaming is not enabled, the channel list of this AP is not populated and channel count would be Zero. But, roaming should still start so that when we move to a different location we could find AP's on other channels. CRs-Fixed: 898262 Change-Id: If8f6c4604289e08bdccb17d24f89b8cc8b2071ac
| * | | | qcacld: Process ipv4 notification for driver interested interfacesChandrasekaran, Manishekar2015-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Process the ipv4 notification only for the driver interested interfaces of STA and P2P-CLI. Change-Id: I713057056e4d6c96b1b5858afb91e35c5e78abcb CRs-Fixed: 898691
| * | | | Release 4.0.10.170AnjaneeDevi Kapparapu2015-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.170 Change-Id: I5cbc41d63a7fc59d7eef8893001e7f9d02ec6431 CRs-Fixed: 688141
| * | | | qcacld: Ignore setting runtime PM suspend delay during load/unloadYue Ma2015-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During load/unload, runtime PM suspend delay should be ignored since there may be race condition between the timer callback and driver load/unload. Also print the delay for debug purpose. Change-Id: I65f1c7544e90ace574c45e42e45728cd889cee23 CRs-fixed: 898047
| * | | | qcacld: Do not assert if there is no credit after HTC ACK in D0WOWYue Ma2015-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In D0WOW, since PCIe link is always up, there is no need to assert if there is no credit available immediately after HTC ACK. FW should be able to send HTC NACK if it cannot post any credit for host driver. Change-Id: I28c0a963d439bd1fb5cb9a45dcc94395e38e3ee5 CRs-fixed: 897498
| * | | | qcacld-2.0: Fix intra-BSS forwardingMahesh Kumar Kalikot Veetil2015-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When INTRA_BSS_FWD_OFFLOAD is enabled, FW will send all Rx packets to IPA uC,which needs to be forwarded to other interfaces. IPA driver will send back non-IP, broadcast and multicast packets to WLAN host driver in exception pipe with fw_desc field set by FW as, - FW_RX_DESC_FORWARD_M bit: Forward the packet to TX - FW_RX_DESC_DISCARD_M bit: Do not send the packet to network stack, which will be set of for intrabss unicast. Change-Id: Ie2826c8c7b578e3684133a2554ed086e721f67ae CRs-Fixed: 895662
| * | | | qcacld-2.0: Fix bug in driver command to enable TDLS channel switchMasti, Narayanraddi2015-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix bug in driver command to enable TDLS Channel switch. Due to missing break statement, enable channel switch command was not taking configured values of offchannel and channel bandwidth. Change-Id: I430d987d5c19529a7bbe43cd2d1c56e8c696d841 CRs-Fixed: 897557
| * | | | qcacld: Clean-up remain on channel enqueue/dequeue mechanismChandrasekaran, Manishekar2015-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean-up enqueue/dequeue of remain on channel mechanism in the driver: (a) Instead of looping through all the elements in the roc queue and processing them back to back, process the roc requests, one at a time during dequeue to avoid drop of any roc request (b) Ensure that the roc completion is indicated at the right instance using 'is_roc_inprogress' flag so that the any new roc request can be immediately processed without being queued (c) Remove redundant prints from roc dequeue function (d) Ensure that 'hdd_remain_on_chan_cancel_in_progress' flag is considered during the clean up of roc context (e) Ensure that any new roc request is not queued while an roc is in progress. This will ensure that the new roc will not get dropped immediately (f) Ensure that the supplicant is notified when an roc is dropped within the driver Change-Id: I93ad8e5bbcecf0389efc26ae8d741826f4cf6018 CRs-Fixed: 895394
| * | | | Release 4.0.10.169AnjaneeDevi Kapparapu2015-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.169 Change-Id: I48d1d57a54389fa5ad452ff6a904da9aa57b13e3 CRs-Fixed: 688141
| * | | | qcacld: Kbuild: Control Runtime PM with config parameterKomal Seelam2015-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Control Runtime PM with kernel config parameter. Change-Id: I91bc8ad91c4334b447c1f2e98afc2805326ae06e CRs-Fixed: 892948
| * | | | Release 4.0.10.168AnjaneeDevi Kapparapu2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.168 Change-Id: I88e6a1e3b494b87599fa2148f25d9a10f94089da CRs-Fixed: 688141
| * | | | qcacld: Add debug counters to track pattern match wake upsRajeev Kumar2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add debug counters to track pattern match wake ups Change-Id: Ibba96352773390375dc691868713cef7f50d47d0 CRs-Fixed: 896615
| * | | | qcacld-2.0: Skip IPV6 router solicitation address in MC listRajeev Kumar2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - IP V6 router solicitation mode support is only needed for network routers - Remove IP V6 router solicitation address from MC/BC list such that FW can drop it in power save mode Change-Id: I6b789a82d56e74dca605ea3ae7a9e84cf87f8e5e CRs-Fixed: 896582
| * | | | Revert "qcacld: Changes to reduce number of TIDS/PEER and num_peer_keys"Yun Park2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0b7920e9790dec06ff75b1f65a96088bb409917f. Change-Id: I4aae11e747c600ba410eb3eea6b46a72ef8915fa CRs-Fixed: 819150
| * | | | Release 4.0.10.167AnjaneeDevi Kapparapu2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.167 Change-Id: I35d1b10960629af045f05ff29dc3617010a928d6 CRs-Fixed: 688141
| * | | | qcacld-2.0: remove unused codeKarthick S2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed unused code from ReinitSDIO. Also removed mmcbusmode and it's related references in the code. Change-Id: Idaa40f31cc830c0e2fa5d6fbda8c78c9f434bdaf CRs-Fixed: 890630
| * | | | qcacld-2.0: Do not delete IBSS peer while deletion in progressNirav Shah2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not delete IBSS peer while deletion in progress in wma_delete_all_ibss_peers. CRs-Fixed: 895207 Change-Id: I07791c0db041e4e1dfa97c5452b8bc660e25d5ba
| * | | | qcacld: hdd: Update MC list to firmware in active modePrashanth Bhatta2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Firmware supports active mode multicast filtering so configure the multicast list as soon as kernel indicates to driver that there is update in the multicast list. This way firmware can filter the multicast address and save power in doing so. Also do not add and delete multicast addresses during suspend and resume respectively as it is not required with this change. Change-Id: I348c1d281caecbad0e513410262115bd5c9a1284 CRs-fixed: 894402
| * | | | qcacld-2.0: CL 1368796 - update fw common interface filesRajeev Kumar2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New Features: host-target API defs Change-Id: I1b59556cec987fc11ecbb648e306374e65b23388 CRs-Fixed: 865207
| * | | | qcacld-2.0: CL 1364839 - update fw common interface filesRajeev Kumar2015-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DBS Change to add mac_id in events to host Change-Id: I9e45f08e210114a95364f7cd80f996881dbf2919 CRs-Fixed: 865207
| * | | | Release 4.0.10.166AnjaneeDevi Kapparapu2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.166 Change-Id: If996a9eaca2417c6aedbe7fe56f888e9a95d02c4 CRs-Fixed: 688141
| * | | | qcacld-2.0: Adding sanity check to prevent access of null txrx pdevHimanshu Agarwal2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While driver initialization, firmware crashes but system ignores it because of being in middle of driver initialization which leads to driver initialization timeout causing txrx pdev structure to remain uninitialized. While cleaning up of driver, WLANTL_Close passes NULL txrx pdev to ol_txrx_pdev_detach as an argument which in turn passes it to other functions which tries to access the contents of NULL txrx pdev causing system crash. This fix adds a sanity check right at the starting of the ol_txrx_pdev_detach function which returns the function back to WLANTL_Close if txrx pdev is NULL. CRs-Fixed: 888679 Change-Id: I320a299e223ecb294a4ea03d40996091480f1a39
| * | | | qcacld 2.0: Removal of tx queue logs from kmsgHimanshu Agarwal2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the time of driver timeout, tx queue logs are printed on terminal which are pretty large and prevents from viewing other important logs. This fix removes the tx queue logs. CRs-Fixed: 880884 Change-Id: I15ed3e9762ac80becc8e34d587874dfb5063e665
| * | | | qcacld-2.0: Modify TDLS/pmc log for link setup/TeardownAgarwal Ashish2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prima to qcacld-2.0 propagation As a part of logging improvement, modify redundant logs, change certain log levels in TDLS link setup/ teardown path to make logs more useful. Some logs in PMC moudle also modified for better readability. Change-Id: Ibb0ee1edb5bbb1aed57bccbc15354031b0362198 CRs-Fixed: 861452
| * | | | qcacld-2.0: Remove redundant logsAgarwal Ashish2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prima to qcacld-2.0 propagation Some logs while Processing netlink messages are excessive. Remove these redundant logs. Change-Id: Ic5104e6fb2d306b488adf2a3919e004e5b57e186 CRs-Fixed: 879049
| * | | | qcacld-2.0: SSR-protect iw_get_encodeext()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_encodeext() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I0b0ad47108489c3079bab5326d0673c9acd727ec CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_encodeext()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_encodeext() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Ic8b33a44dbfc48b21e479c89c7e2bd45ffcd94f1 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_genie()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_genie() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Iebc4c11e0dfc15a2ac4c2d23fa0f37a43ef6d90e CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_genie()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_genie() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I540e8443a2effb85ec929d081bd4dd65eeb7f690 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_encode()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_encode() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I5c45faeddd89fee1d6688e0f73c1e7f87f878be2 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_encode()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_encode() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I1a9b383e12967d3933555ddbad9baac5bffba555 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_retry()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_retry() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Ie8cf36fd2a081c02d03f1849807010278890a1cd CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_retry()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_retry() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I6ae60c02d5dccb00943f97b3dcdb2f245004d830 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_tx_power()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_tx_power() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I20e5c442484399631553d7495d4bb594447ffc15 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_tx_power()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_tx_power() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I38bc16ec130e243cab097f93ed2c6efddf2c63b8 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_frag_threshold()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_frag_threshold() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I0f3363e2c33ac6a3cc81e239d08ff02f7988c9e1 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_frag_threshold()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_frag_threshold() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Ib57ac4273a669b4c9d7ad98a952837bc960f0c02 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_rts_threshold()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_rts_threshold() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Ic2243e9670c2cadb9f80a6f70207001c9dc3ec9a CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_rts_threshold()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_rts_threshold() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I852becbbf3cc5c76dbda6c8eb75f436be33363d1 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_bitrate()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_bitrate() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Ibebe775ed6b847a94eb1cbf9ce0128e45e81e5bd CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_bitrate()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_bitrate() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I50b89e62581d7c6106a6fe71017437f2c048817e CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_mlme()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_mlme() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I2d2e03cf5ccd6ee313ae6b6d72f3c4ba653fdc9e CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_set_priv()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_set_priv() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Ia0703303c62eef2fc60c52a7fa8a8fc17f0fff49 CRs-Fixed: 891029
| * | | | qcacld-2.0: SSR-protect iw_get_range()Jeff Johnson2015-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently iw_get_range() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: Icced093fb5dbbc1a4ea28afc6a58b08e2a858986 CRs-Fixed: 891029