summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | Release 4.0.10.153AnjaneeDevi Kapparapu2015-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.153 Change-Id: Ifaee9cc1049585fee3a9e3192e94365e3beac531 CRs-Fixed: 688141
| * | | | qcacld: Fix Driver Load Failure in static build driverKomal Seelam2015-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the current design driver never gets unloaded if the driver is inbuilt into the kernel. On SDIO based platforms, the second load is failing as the probed state is not cleared as part of exit. The probed state adds no value to our current design. Hence remove it completely and fix the driver load failure issue. Change-Id: Ie6a0d56a306b6b1da5d8ea36d745b7c23f14b54c CRs-Fixed: 884503
| * | | | qcacld: Enable 4-bit irq mode after resumeKomal Seelam2015-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During suspend, host will set the sdio controller to 1-bit irq mode to detect the sdio wake-irq without clock. After resume, host controllers need to be re-enabled with 4-bit irq mode, else we are observing target can't raise the interrupt to host. Change-Id: I30338c2b62b63ae2418a5a48076992c5d0742533 CRs-Fixed: 883692
| * | | | Release 4.0.10.152AnjaneeDevi Kapparapu2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.152 Change-Id: I24c46caf38cff090c20f9edf9890622ec75c8d03 CRs-Fixed: 688141
| * | | | qcacld: Lower the tracing level of a logMahesh Kumar Kalikot Veetil2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some of the use cases lots of IPv6 Multicast (Neighbor Solicitation) frames are bounced back from AP resulting too many error logs. Lower the tracing level to INFO for this particular log. Change-Id: I13aac38353ba154a194fa1803dc7c17b50fd906e CRs-Fixed: 881542
| * | | | qcacld-2.0: Fix issue in IBSS Nss configuration.Kiran Kumar Lokere2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Populate the per band vdev nss values of IBSS in add bss parameters since the IBSS vdev is created as part of IBSS add bss. Update the INI with per band chain mask and Nss parameters. Change-Id: Ie87f11aaa7166940296af0dcee3d7a32942e3779 CRs-Fixed: 882283
| * | | | qcacld-2.0: Fix the size of netlink buffer for OEM error responseKrishna Kumaar Natarajan2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the size of buffer allocated for sending OEM error response over netlink interface. OEM Error response is not passing error code due to incorrect buffer length. Use correct length of the buffer in skb_put so that error code is included in OEM Error response. Change-Id: I11fe963d647fa7da1470c249ea1bcd6c66c1b446 CRs-Fixed: 883931
| * | | | qcacld-2.0: Fix the size of netlink buffer for memdump responseKrishna Kumaar Natarajan2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the size of buffer allocated for sending memory dump response over netlink interface. Change-Id: I220805ed23ea775fe43403923ebe415489a6fbc8 CRs-Fixed: 880127
| * | | | qcacld-2.0: optimize data path logLeo Chang2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Too many data path log on diag daemon log path Too many log will effect to data path performance Only error and fatal log enabled for data path logging Change-Id: I2a529cec4cea84e0e7333f4b61631fb76e72e26e CRs-fixed: 884097
| * | | | qcacld: Fix Sec AP start fail after channel changeManikandan Mohan2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix Sec AP startup failure after channel change due to DFS Leak channel detection and update. Report Channel change event to hostapd and updated ACS config for new selected channel Change-Id: I0af792ddc5b1518aaec48d8db762f59195ebfd55 CRs-fixed: 883918
| * | | | qcacld: Fix mem leak in acs due MCC DFS restrictionManikandan Mohan2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In AP_AP case, if Pri AP chooses DFS ch then Sec AP is made to follow Pri AP config due to MCC DFS ch restriction. So during ACS procedure Pri AP ACS config is copied to Sec AP ACS config and there is overwrite of ch list pointer without freeing it first. Fix mem leak cause by this case. Change-Id: I5319acaefba7083fa89091e5c3e70078b3a20357 CRs-fixed: 881613
| * | | | qcacld-2.0: Change to allow adding vendor IE from userspaceEdhar, Mahesh Kumar2015-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per the current implementation only selected vendor IE's sent from user space are added as part of additional IE's. Change made include all the vendor IE's sent from userspace apart from those populated in driver. Change-Id: I802222d5903fa11e1880254e2685c3d79e4b2790 CRs-Fixed: 882188
| * | | | Release 4.0.10.151AnjaneeDevi Kapparapu2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.151 Change-Id: I85e6a38ee515043e535fd1ea869046819ea7c5e3 CRs-Fixed: 688141
| * | | | qcacld-2.0: Add INI param to ignore ERP info in non 11b AP beacon.Abhishek Singh2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prima to qcacld-2.0 propagation Add INI param to ignore ERP info in the non 11b AP beacon. With this param set the 11b protection will be enabled only if driver receive an 11b beacon. CRs-Fixed: 853250 Change-Id: I1c7e0e40c609569b322dda3c30fd4a203a2bd987
| * | | | qcacld: Enable to print ERROR/FATAL level log to kmsg by defaultYue Ma2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ERROR/FATAL level log should be printed to kmsg by default for better debug capability. Change-Id: Iaa8950292556095a6ea90b247b1168e13672750f CRs-fixed: 882494
| * | | | qcacld-2.0: Fix buffer overwrite problem in RSSISrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: I2fd466bcbd648a8257682eb51e1d355b5127ead4 CRs-Fixed: 883386
| * | | | qcacld-2.0: Fix buffer overwrite problem in LINKSPEEDSrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: Id976862026e69cb77e625fc710cb383c4927190e CRs-Fixed: 865506
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETSCANHOMEAWAYTIMESrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: Ided39e1b788447093334789018a8571c7be51f11 CRs-Fixed: 865548
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETSCANNPROBESSrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: Id1bf57ac345bc5bbd48fb19e60e54b6c2779d0cd CRs-Fixed: 865551
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETDWELLTIMEAnjaneeDevi Kapparapu2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: Id52e85bd6b271dea4324f4e17d6f2aba0a9ecdbf CRs-Fixed: 865510
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETROAMSCANCONTROLAnjaneeDevi Kapparapu2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: Ib73f73cdead8e5e68e4f9941ff7969ad0d4ec9c5 CRs-Fixed: 865514
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETROAMRESCANRSSIDIFFSrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: I5d86afbc3e0af55d9f0fc6109d5b7011806854de CRs-Fixed: 865517
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETTSMSTATSSrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len Change-Id: I2521ee9d90e0e61fe02f69c566cd4c0a0276c1df CRs-Fixed: 865533
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETWESMODESrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len. Change-Id: I1ce46ee763dbd38a7e6a362d423a8038467ac503 CRs-Fixed: 865527
| * | | | qcacld-2.0: Fix buffer overwrite problem in GETOPPORTUNISTICRSSIDIFFSrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If (len + 1) is greater than priv_data.total_len then copy_to_user results in writing more data than the buffer can hold. Fix this by writing mininum of (len + 1) and priv_data.total_len. Change-Id: Ida2976d814059738edf746d26ac288ed457c36bd CRs-Fixed: 865521
| * | | | cld: IPA uC: return EPERM for IPA RM CONS REQ during load/unloadYun Park2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change to return -EPERM if WLAN unable to grant IPA CONS resource due to loading or unloading in progress Change-Id: Id42b7c1f3994a068c26b0f15bda01a0276a3fe0f CRs-Fixed: 883424
| * | | | qcacld-2.0: Prevent runtime PM from pno matched till pno scan completeSrinivas Girigowda2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per the existing design with RunTime feature disabled, When the host driver receives the PNO matched event, it acquires a wakelock for 30 sec and expects to receive non-wakeable event WMI_NLO_SCAN_COMPLETE_EVENTID from the firmware. With RunTime feature enabled, after receiving the PNO matched event RunTime PM puts the host back in WoW suspend after 500ms (default). Since WMI_NLO_SCAN_COMPLETE_EVENTID is not a wakeable event, this event does not wakeup the host hence PNO scan not completed and PNO is broken. Fix is to prevent the host to runtime suspend from PNO matched till host receives PNO scan complete event. Upon receiving PNO scan complete allow the runtime PM again Change-Id: I9b82171db6f95fd0dfc1780638a2dee65c89dd9f CRs-Fixed: 883286
| * | | | qcacld-2.0: Change to protect concurrent access to shared variableEdhar, Mahesh Kumar2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently ic_curchan global variable is accesed in different context resulting in NULL pointer dereference. Change made to protect concurrent access to shared variable. Change-Id: I1803dce8477368f834f560dd5aab538148cf6c77 CRs-Fixed: 857660
| * | | | qcacld-2.0: Set phymode in SME considering HT and VHT capability.Krishna Kumaar Natarajan2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set phymode to 11ac only when HT Caps and VHT Caps are present. Earlier we were setting phymode in SME based on HT/VHT capability independently. If a rogue AP sends only VHT Capability but not HT capability, our phymode computation was incorrect. Change-Id: Id3db66798a1a1e3ebc42da59a66cea04093e78aa CRs-Fixed: 879830
| * | | | qcacld-2.0: Synchronize get firmware memory dump vendor commandKrishna Kumaar Natarajan2015-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synchronize get firmware memory dump vendor command. Change-Id: I2a4ca7595dff603f03d299911c0d27d10df259dc CRs-Fixed: 880127
| * | | | Release 4.0.10.150AnjaneeDevi Kapparapu2015-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.150 Change-Id: I5cecfa0a9c00c11908bbedebdb21cab205cb2f9c CRs-Fixed: 688141
| * | | | qcacld-2.0: Deadlock in SME due to wrong sequence of mutex useSandeep Puligilla2015-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sme active list lock/mutex is acquired by MC thread and sme scan active list lock is acquired by NL thread and each thread is waiting for the other mutex which created a deadlock in SME.This issue is observed when userspace scanning is triggered while roaming is active. To fix this failure modified code flow to acquire sme active list lock before sme scan active list lock so that deadlock can be avoided in multi threaded environment. Change-Id: I5f66af797519adf3b3138cc2456bed95d5896b7d CRs-Fixed: 881135
| * | | | Release 4.0.10.149AAkash Patel2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.149A Change-Id: I540f587c25611bf4ffe6c95a58da58a39e551ce2 CRs-Fixed: 688141
| * | | | qcacld: free cfgState->buf in failure cases.Ganesh Kondabattini2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of cleaning up pending action frame, if timeout happens for tx cnf event then indicate tx failure status as FAIL and free cfgState->buf to avoid memory leak. Change-Id: I6caaa8efeab769cce8c4cdfcc868101e63fd8e76 CRs-Fixed: 880779
| * | | | Release 4.0.10.149AnjaneeDevi Kapparapu2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.149 Change-Id: I6cfdf0e1d8f956466d0a8e10504fefe0135c920e CRs-Fixed: 688141
| * | | | qcacld-2.0: Send CCK chain mask before wiphy registrationAmar Singhal2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Send CCK chain mask before wiphy registration to WMA. During wiphy registration, there is regulatory callback and the regdomain/CTL info is sent during that time to firmware. Therefore send CCK chain mask to WMA before that. Change-Id: I6fc9c5951ce1b0b37aab42f9a80cf711006f828a CRs-Fixed: 881894
| * | | | qcacld-2.0: CL 1351159 update fw common interface filesSandeep Puligilla2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Addition of WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID and WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID for Dual Band Simultaneous feature Change-Id: I277ca22d09cc0972bd4cb32b07877bdea1bd1744 CRs-Fixed: 865207
| * | | | qcacld-2.0: CL 1350084 update fw common interface filesSandeep Puligilla2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add WMI VDEV_PARAM_RTSCTS_RATE Change-Id: I2b67b80bed002dcae0ce981cc1b4be4cc7013baa CRs-Fixed: 865207
| * | | | qcacld: IPA uC: Fix build error when IPA_UC_OFFLOAD is disabledYun Park2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is to fix a build error when IPA_UC_OFFLOAD is disabled, due to hdd_ipa_setup_sys_pipe and hdd_ipa_teardown_sys_pipe is defined in IPA_UC_OFFLOAD build flag. Change-Id: If64e09c692c2f60a878dabc4a34751ad4110cfb9 CRs-Fixed: 879426
| * | | | qcacld-2.0: Check if unload is in progress during suspendSanjay Devnani2015-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If unload in progress, abort suspend. causes null pointer ref otherwise Change-Id: Ic9042b615bc1c78a25cf2d64ed1a57b88830d501 CRs-Fixed: 878755
| * | | | Release 4.0.10.148AnjaneeDevi Kapparapu2015-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.148 Change-Id: I5d5fee8b6dabcb14ccaf388fa16d3a1a26efc5fe CRs-Fixed: 688141
| * | | | qcacld-2.0: zero the allocated memoryYuanyuan Liu2015-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qcacld-3.0 to qcacld-2.0 propagation. zero the allocated memory irrespective of it is being allocated from kernel or wcnss_prealloc pool. Change-Id: Ic2fdf125fb9d459b3280b11818a846a26b60ff36 CRs-Fixed: 877772
| * | | | qcacld-2.0: debug info for full reorder offloadKarthick S2015-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Log last 1K physical addresses and corresponding virtual addresses of the Rx buffers. Change-Id: I2bb4502fdd92b362199b579ec3cceaa691d4691f CRs-Fixed: 864569
| * | | | qcacld-2.0: Check array bounds for whitelist ssidVarun Reddy Yeturu2015-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix Static Analysis Issue. Check the array bounds of whitelist SSID before copying it to the local buffer. Increment the index only in case of a successful copy. Log the buffer length in error scenario. CRs-Fixed: 873262 Change-Id: I9a21b685bf600a7176902f8a6bd766b9c9e2f782
| * | | | Release 4.0.10.147AnjaneeDevi Kapparapu2015-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release 4.0.10.147 Change-Id: Iccb607a28ccb3e254e6531315a71c53b97de8156 CRs-Fixed: 688141
| * | | | Revert "qcacld-2.0: debug info for full reorder offload"Karthick S2015-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts the commit 592fd6f42edb98d16c2bc5f646e93dcb4a513b84. CRs-Fixed: 864569 Change-Id: If923fc723d0a1ccca212cb7506ad110c64bb3095
| * | | | wlan: adding kernel protection for usage of cpu topology structureMohit Khanna2015-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are using topology_physical_package_id macro from linux kernel to dynamically determine the number of clusters on the APPS processor and attaching tlshimRxthread to the highest core in a multi-cluster system during high throughput scenario. This macro is not exported in kernels earlier than 3.10. Hence adding adding adequate compilation protection. Change-Id: I003e04303dcc4a8e738997cd15bc3ebe62f314c4 CRs-Fixed: 880469
| * | | | qcacld: Fix Null Pointer crash in Bus Layer.Komal Seelam2015-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Crash happened due to race condition between the cleanup after 2sec timeout for service ready event from FW and host sending WMI_INIT_CMID to FW. As Part of Cleanup, driver cleaned up the Endpoint Variables and bus layer context, in other context WMI_INIT_CMID calling bus layer to get the usage count for runtime PM resulted in crash. Fix is to check for the valid service id in host to target communication layer before accessing bus layer. Change-Id: Iaf62846add622ec90b4a57bccf11c69dcc620118 CRs-Fixed: 872466
| * | | | qcacld-2.0: extscan: Process extscan events in WoW modeSrinivas Girigowda2015-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In WoW mode, extscan events are embedded inside a WoW event. The wow event is followed by the payload of the event which generated the wow event. Payload is 4 bytes of length followed by event buffer. The first 4 bytes of event buffer is common tlv header, which is a combination of tag (higher 2 bytes) and length (lower 2 bytes). The tag is used to identify the event which triggered wow event. Once the event is identified, extract the event data and invoke the appropriate event handlers. Change-Id: I42ff7b3e5b73d98d4f168c5ff54176e0ab73d534 CRs-Fixed: 880356
| * | | | qcacld-2.0: Enlarge max value of two sap auth offload configurationskaliu2015-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change max value of gMaxOffloadPeers and gMaxOffloadReorderBuffs. Change-Id: I1dcc49d288dfad5206becdb800a7b2cca8d349bf CRs-Fixed: 879680