Invalid memory access can happen if a client closes its channels
with transfers pending because the mhi transfer request structure
gets freed in UCI when channel is closed, but MHI driver accesses the
request structure in the transfer completion callback.
To avoid the invalid memory access, following changes are done:
* Allocate mhi transfer request structures for a client in the
first UCI client open call
* Do not free mhi transfer request structs when client calls release,
to allow for subsequent re-use
* Maintain an in-use list to track active transfers
* If a client exits with transfers pending, move the request structs
corresponding to pending transfers to free list and mark them as
stale.
* Stale transfers, if completed later, are ignored.
Change-Id: I170e06321de9c67b0a1d107b775d75b2ed97febb
Signed-off-by: Siva Kumar Akkireddi <sivaa@codeaurora.org>
Signed-off-by: Gauri Joshi <gaurjosh@codeaurora.org>
Add sched_sync_hint_enable not to enable/disable sync.
Change-Id: Id6bdff3d4b9ea1051d7b55ca4cfd1d802c92fa64
Signed-off-by: Biao Long <blong@codeaurora.org>
WLAN host driver has a new memory requirement for regulatory structure
allocation of order 5. Increase 128 kB slot by one.
Change-Id: If95291c96df0b7588b54f8e19b287d846896b479
Signed-off-by: Mahesh Kumar Kalikot Veetil <mkalikot@codeaurora.org>
Migrate isolate of a pageblock is being checked only at the pageblock
boundary pages thus the isolation of freepages should happen on that
pageblock which otherwise can still cause the isolation of freepages on
an isolated pageblock.
Consider the below case:
Pa Pb
check the pageblock
isolation
zone_lock
Isolate the SWAP_CLUSTER_MAX pages
Zone_unlock
zone_lock
Set Migrate isolate on the
same page block that Pa is
operating on.
zone_unlock
zone_lock
Continue the isolate on the same
page block that was set Migrate
isolate by Pb which is an error.
Change-Id: I1504b031f434fb65ebb11e1472b73e9d34e388b8
Fixes: ff56a97530 ("mem-offline: disallow page migration to isolated page blocks")
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
Currently, qcom_icc_bcm_init always assumes the bcm is not initialized.
There is a possibility that same bcm can belong to multiple providers
and re-initing the bcm adds the same bcm multiple times to the nodes
which are under the control of the bcm.
Hence add condition to check for bcm inited.
Change-Id: I3961963a6ef1a7b76d7ab708f648146fe1a30c99
Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
Define a vdd_levels enum and vdd_corner[] mapping table which can
be used by clock controller drivers to configure the vdd_class
associated with their clocks.
Change-Id: I7b1ad5f51c414694bc9d5101afc411b1d63bad42
Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
To avoid any suspend during probe, we increment the device
usage counter before calling ufshcd_async_scan and decrement
before returning from ufshcd_async_scan function.
For the scenarios where ufs device initialisation fails
or if the ufs device is not present, we are decrementing
device usage counter before calling ufshcd_hba_exit.
Hence there is a possiblity that after we disable the clocks
as part of ufshcd_hba_exit call, runtime suspend may get
triggered. As part of runtime suspend, we are accessing
the register causing noc error due to unclocked access.
To fix this, we are removing pm_runtime_put_sync
from ufshcd_add_lus() and adding it in common place
at the end of ufshcd_async_scan so that we hold auto
suspend until async scan completes in both success and
failure case.
Call Stack:
panic+0x17c
panic+0x0
arm64_serror_panic+0x74
do_serror+0x15c
el1_error+0xbc
el1_irq+0xb0
crypto_qti_resume+0x68
ufshcd_crypto_qti_resume+0x18
ufshcd_crypto_resume+0x3c
ufshcd_suspend+0x5b0
ufshcd_runtime_suspend+0x44
ufshcd_pltfrm_runtime_suspend+0x14
pm_generic_runtime_suspend+0x44
__rpm_callback+0x98
rpm_suspend+0x2a4
rpm_idle+0x158
schedule+0x8c
schedule_preempt_disabled+0x24
__mutex_lock+0x358
__mutex_lock_slowpath+0x14
mutex_lock+0x34
clk_unprepare+0x58
__ufshcd_setup_clocks+0x140
ufshcd_hba_exit+0x170
ufshcd_async_scan$d36fba0b664edbd124b5d17d005db4c5+0x118
async_run_entry_fn$8847b5d726ee295ba72a029a76bec2f5+0x60
process_one_work+0x2cc
worker_thread$f31e2447a3fdcb60f4b193f95acd647c+0x278
kthread$bf1537fa370ac32bde5f056194ddafc6+0x16c
ret_from_fork+0x10.
Change-Id: I059de2b0eba642bf1a35c27e8e12d31c6f30a836
Signed-off-by: Nitin Rawat <nitirawa@codeaurora.org>
This change Enhances IPC logs to add SE instance to know which
GPII is attached to which SE device, this helps in debug. Also,
removed unnecessary read of iommu-dma property.
Change-Id: I6a5a9312d80abab2addc0c63642429a787f9065c
Signed-off-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
Enable CONFIG_ARM_SMMU_SELFTEST for debug config. The actual
interrupt self test runs only when arm_smmu.selftest is set to 1.
Change-Id: I040ba9d5d98ff2e9dbbc579e8a0f5062d9bedfd4
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
configfs_composite_unbind sets the gadget data
to null. Therefore, add check in disconnect
function to make sure that cdev is not NULL.
Prints a WARN message if the driver tries to
redundantly disconnect a gadget.
Change-Id: Iad25f7a1e785ed336d34259c147efdcfc0840fae
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Git-commit: da17b0d6e3031d54deb05c08c7bf1616da43f7a6
Git-Repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Pratham Pratap <prathampratap@codeaurora.org>
Add support for sm8150-llcc driver. The driver
is written by taking reference from sm8150-llcc
driver in msm-4.14 kernel at commit id
"f6969550b4".
Change-Id: Iaa7711f56066fc1c8e098beaf19185522bb5581d
Signed-off-by: Vivek Kumar <vivekuma@codeaurora.org>