Commit graph

889,574 commits

Author SHA1 Message Date
Yang Yingliang
449c723240 devinet: fix memleak in inetdev_init()
[ Upstream commit 1b49cd71b52403822731dc9f283185d1da355f97 ]

When devinet_sysctl_register() failed, the memory allocated
in neigh_parms_alloc() should be freed.

Fixes: 20e61da7ff ("ipv4: fail early when creating netdev named all or default")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-10 20:24:54 +02:00
Todd Kjos
2ce29d3f63 ANDROID: GKI: Update ABI after scsi/ufs changes
Leaf changes summary: 2 artifacts changed (2 filtered out)
Changed leaf types summary: 2 (2 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct ufs_dev_info at ufs.h:530:1' changed:
  type size changed from 192 to 320 (in bits)
  5 data member insertions:
    'u32 ufs_dev_info::d_ext_ufs_feature_sup', at offset 192 (in bits) at ufs.h:566:1
    'u8 ufs_dev_info::b_wb_buffer_type', at offset 224 (in bits) at ufs.h:567:1
    'u32 ufs_dev_info::d_wb_alloc_units', at offset 256 (in bits) at ufs.h:568:1
    'bool ufs_dev_info::keep_vcc_on', at offset 288 (in bits) at ufs.h:569:1
    'u8 ufs_dev_info::b_presrv_uspc_en', at offset 296 (in bits) at ufs.h:570:1
  25 impacted interfaces:
    function int ufshcd_alloc_host(device*, ufs_hba**)
    function int ufshcd_crypto_cap_find(ufs_hba*, blk_crypto_mode_num, unsigned int)
    function void ufshcd_crypto_disable_spec(ufs_hba*)
    function void ufshcd_crypto_enable_spec(ufs_hba*)
    function void ufshcd_dealloc_host(ufs_hba*)
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_init(ufs_hba*, void*, unsigned int)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function int ufshcd_query_attr(ufs_hba*, query_opcode, attr_idn, u8, u8, u32*)
    function int ufshcd_query_descriptor_retry(ufs_hba*, query_opcode, desc_idn, u8, u8, u8*, int*)
    function int ufshcd_query_flag(ufs_hba*, query_opcode, flag_idn, bool*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_runtime_idle(ufs_hba*)
    function int ufshcd_runtime_resume(ufs_hba*)
    function int ufshcd_runtime_suspend(ufs_hba*)
    function int ufshcd_shutdown(ufs_hba*)
    function int ufshcd_system_resume(ufs_hba*)
    function int ufshcd_system_suspend(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

'struct ufs_hba at ufshcd.h:590:1' changed:
  type size changed from 30400 to 30592 (in bits)
  2 data member insertions:
    'bool ufs_hba::wb_buf_flush_enabled', at offset 30272 (in bits) at ufshcd.h:835:1
    'bool ufs_hba::wb_enabled', at offset 30280 (in bits) at ufshcd.h:836:1
  there are data member changes:
    type 'struct ufs_dev_info' of 'ufs_hba::dev_info' changed, as reported earlier
    'bool ufs_hba::auto_bkops_enabled' offset changed from 16384 to 16512 (in bits) (by +128 bits)
    'ufs_vreg_info ufs_hba::vreg_info' offset changed from 16448 to 16576 (in bits) (by +128 bits)
    'list_head ufs_hba::clk_list_head' offset changed from 16704 to 16832 (in bits) (by +128 bits)
    'bool ufs_hba::wlun_dev_clr_ua' offset changed from 16832 to 16960 (in bits) (by +128 bits)
    'int ufs_hba::req_abort_count' offset changed from 16864 to 16992 (in bits) (by +128 bits)
    'u32 ufs_hba::lanes_per_direction' offset changed from 16896 to 17024 (in bits) (by +128 bits)
    'ufs_pa_layer_attr ufs_hba::pwr_info' offset changed from 16928 to 17056 (in bits) (by +128 bits)
    'ufs_pwr_mode_info ufs_hba::max_pwr_info' offset changed from 17152 to 17280 (in bits) (by +128 bits)
    'ufs_clk_gating ufs_hba::clk_gating' offset changed from 17408 to 17536 (in bits) (by +128 bits)
    'u32 ufs_hba::caps' offset changed from 19712 to 19840 (in bits) (by +128 bits)
    'devfreq* ufs_hba::devfreq' offset changed from 19776 to 19904 (in bits) (by +128 bits)
    'ufs_clk_scaling ufs_hba::clk_scaling' offset changed from 19840 to 19968 (in bits) (by +128 bits)
    'bool ufs_hba::is_sys_suspended' offset changed from 21504 to 21632 (in bits) (by +128 bits)
    'bkops_status ufs_hba::urgent_bkops_lvl' offset changed from 21536 to 21664 (in bits) (by +128 bits)
    'bool ufs_hba::is_urgent_bkops_lvl_checked' offset changed from 21568 to 21696 (in bits) (by +128 bits)
    'rw_semaphore ufs_hba::clk_scaling_lock' offset changed from 21632 to 21760 (in bits) (by +128 bits)
    'ufs_desc_size ufs_hba::desc_size' offset changed from 21952 to 22080 (in bits) (by +128 bits)
    'atomic_t ufs_hba::scsi_block_reqs_cnt' offset changed from 22176 to 22304 (in bits) (by +128 bits)
    'device ufs_hba::bsg_dev' offset changed from 22208 to 22336 (in bits) (by +128 bits)
    'request_queue* ufs_hba::bsg_queue' offset changed from 29312 to 29440 (in bits) (by +128 bits)
    'ufs_crypto_capabilities ufs_hba::crypto_capabilities' offset changed from 29376 to 29504 (in bits) (by +128 bits)
    'ufs_crypto_cap_entry* ufs_hba::crypto_cap_array' offset changed from 29440 to 29568 (in bits) (by +128 bits)
    'u32 ufs_hba::crypto_cfg_register' offset changed from 29504 to 29632 (in bits) (by +128 bits)
    'keyslot_manager* ufs_hba::ksm' offset changed from 29568 to 29696 (in bits) (by +128 bits)
    'void* ufs_hba::crypto_DO_NOT_USE[8]' offset changed from 29632 to 29760 (in bits) (by +128 bits)
    'u64 ufs_hba::android_kabi_reserved1' offset changed from 30144 to 30336 (in bits) (by +192 bits)
    'u64 ufs_hba::android_kabi_reserved2' offset changed from 30208 to 30400 (in bits) (by +192 bits)
    'u64 ufs_hba::android_kabi_reserved3' offset changed from 30272 to 30464 (in bits) (by +192 bits)
    'u64 ufs_hba::android_kabi_reserved4' offset changed from 30336 to 30528 (in bits) (by +192 bits)
  25 impacted interfaces:
    function int ufshcd_alloc_host(device*, ufs_hba**)
    function int ufshcd_crypto_cap_find(ufs_hba*, blk_crypto_mode_num, unsigned int)
    function void ufshcd_crypto_disable_spec(ufs_hba*)
    function void ufshcd_crypto_enable_spec(ufs_hba*)
    function void ufshcd_dealloc_host(ufs_hba*)
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_init(ufs_hba*, void*, unsigned int)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function int ufshcd_query_attr(ufs_hba*, query_opcode, attr_idn, u8, u8, u32*)
    function int ufshcd_query_descriptor_retry(ufs_hba*, query_opcode, desc_idn, u8, u8, u8*, int*)
    function int ufshcd_query_flag(ufs_hba*, query_opcode, flag_idn, bool*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_runtime_idle(ufs_hba*)
    function int ufshcd_runtime_resume(ufs_hba*)
    function int ufshcd_runtime_suspend(ufs_hba*)
    function int ufshcd_shutdown(ufs_hba*)
    function int ufshcd_system_resume(ufs_hba*)
    function int ufshcd_system_suspend(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

Bug: 157166850
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: If087098e255497cea1730e5442376646b3efd80b
2020-06-10 16:40:01 +00:00
Guru Das Srinagesh
2887f9287d soc: qti_battery_debug: Move qbg_context to device bin file
Replace the "qbg_context" debugfs blob with a binary file associated
with the battery_debug device that provides the same functionality as
the existing debugfs blob for getting QBG context.

Usage:
  # cd /sys/devices/platform/soc/soc:qcom,pmic_glink_log/\
    soc:qcom,pmic_glink_log:qcom,battery_debug
  # echo 1 > qbg_context
  # cat qbg_context > file.bin

Change-Id: I59cfea2880362a95d8c87c02b4d823bfdca4e1e2
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2020-06-10 09:04:45 -07:00
Prasad Sodagudi
8f8cf9f187 genirq/cpuhotplug: Reduce logging level for couple of prints
During the cpu hot plug stress testing, couple of messages
continuous flooding on to the console is causing timers
migration delay. Delayed time migrations from hot plugging
core is causing device instability with watchdog. So reduce
log level for couple of prints in cpu hot plug flow.

Change-Id: I14f034765b063fb2a83a2a9489c664eb2504a770
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
2020-06-10 08:26:17 -07:00
AnilKumar Chimata
42915e55d6 smcinvoke: Move error message to debug
Most of the times mink returns response type as inbound
request needed, which is nothing but call back object
requests. While decoding the response type it should
provide as info or debug message instead of error message.

Change-Id: I7eac9f6ae779b4c3d952fac38880cf4a658428c5
Signed-off-by: AnilKumar Chimata <anilc@codeaurora.org>
2020-06-10 20:45:38 +05:30
Asutosh Das
4c5477a217 FROMLIST: Documentation:sysfs-ufs: Add WriteBooster documentation
Adds sysfs documentation for WriteBooster entries.

Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>

Bug: 157166850
Change-Id: Ia55d51ccfd86dc4549d5b04717f9f1bb0c089754
Link: https://lore.kernel.org/patchwork/patch/1254059/
Signed-off-by: Can Guo <cang@codeaurora.org>
2020-06-10 07:52:59 -07:00
Asutosh Das
a083287ef5 FROMGIT: scsi: ufs-qcom: Configure write booster type
Enable WriteBooster for Qualcomm platform.

Bug: 157166850
(cherry picked from commit 04ee8a01abf8aa89d1bcdacffefc9a8879336a2c
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 5.8/scsi-queue)
Link: https://lore.kernel.org/r/cd4cf745ea0b3a59c2075036e17316b97494fe65.1587591527.git.asutoshd@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

Change-Id: I1f23ccc0772e33a7a501a1b316d35c3fad96aefb
Signed-off-by: Can Guo <cang@codeaurora.org>
2020-06-10 07:52:34 -07:00
Asutosh Das
44059abd5d FROMGIT: scsi: ufs: sysfs: Add sysfs entries for write booster
Adds unit, device, geometry descriptor sysfs entries.  Adds flags sysfs
entries for write booster.

Bug: 157166850
(cherry picked from commit c14e7adf3a6a8d0ce4d16f839f9737ad3481e239
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 5.8/scsi-queue)
Link: https://lore.kernel.org/r/98987ef17844292bd42c57613990a3a26c6de2b8.1587591527.git.asutoshd@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

Change-Id: Ia84b066bcfb0ebafe8f6e76129248ef4366c9054
Signed-off-by: Can Guo <cang@codeaurora.org>
2020-06-10 07:52:20 -07:00
Asutosh Das
01850059ed BACKPORT: FROMGIT: scsi: ufs: Add write booster feature support
The write performance of TLC NAND is considerably lower than SLC NAND.
Using SLC NAND as a WriteBooster Buffer enables the write request to be
processed with lower latency and improves the overall write performance.

Adds support for shared-buffer mode WriteBooster.

WriteBooster enable: SW enables it when clocks are scaled up, thus it's
enabled only in high load conditions.

WriteBooster disable: SW will disable the feature, when clocks are scaled
down. Thus writes would go as normal writes.

To keep the endurance of the WriteBooster Buffer at a maximum, this
load-based toggling is adopted.

Bug: 157166850
(cherry picked from commit 3d17b9b5ab11556b2fea07d4f24154095a685ad2
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 5.8/scsi-queue)
Link:https://lore.kernel.org/r/2871444d9083b0e9323ef6d8ff1b544b7784adc9.1587591527.git.asutoshd@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

Change-Id: I91612bc379520aa756eae5120ef214d34d5ed0c4
Signed-off-by: Can Guo <cang@codeaurora.org>
2020-06-10 07:51:45 -07:00
Tao,Zhang
89ac6c47b8 coresight: byte-cnter: Add ETR status check in bypass notifier
It is possible that notify call is called after etr is disabled or
after mode switch from usb to etr. Add etr status check to avoid
exception.

Change-Id: I65e81e5ec01ebb3747936cdd81f886632c5419f1
Signed-off-by: Tao,Zhang <taozha@codeaurora.org>
2020-06-10 06:26:29 -07:00
Prakash Gupta
07972090b8 dma-mapping-fast: reduce TLBI during map
Fastmap rely on minimizing tlbi to improve map performance.
At present only one marker is used to indicate if stale TLB might be used.
Instead use a clean bitmap for mapping to further reduce the TLB
invalidations.

Change-Id: I5a8dffde31f8804811357a83893b6ce0d863e8a9
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
2020-06-10 05:44:50 -07:00
Jagadeesh Kona
bbdaff53d6 clk: qcom: gcc: Make gcc_ddrss_gpu_axi_clk as always ON
If GPU CX GDSC was left enabled before HLOS bootup, GDSC fails
to disable after HLOS boots up as some transactions are observed
between GPU and GEMNOC. To avoid this GPU CX GDSC disable failure,
mark gcc_ddrss_gpu_axi_clk as always on as per the HW suggestion.

Change-Id: I5c839a3446996ff27933fa738b3f13d8218cd503
Signed-off-by: Jagadeesh Kona <jkona@codeaurora.org>
2020-06-10 17:43:35 +05:30
Ajit Vaishya
cd6eefe445 arm64: enable internal regdb for lahaina
Enable internal wireless regulatory database.
This is needed for platforms without CRDA.

Change-Id: Ib3f526a8434f16b6d65a8ebb4e4603b6edbbdc03
CRs-Fixed: 2564350
Signed-off-by: Ajit Vaishya <avaishya@codeaurora.org>
2020-06-10 15:06:55 +05:30
Tao,Zhang
b20c61948d coresight: Forbid enabling sink while reading sink
Forbid enabling sink in the process of reading sink. Otherwise,
sink flag "activated" will be set to true, and the source has a
chance to be added to "cs_active_paths" twice. Then, system will
crash if sink is continued to be read due to two same source in
"cs_active_paths".

Change-Id: I3317ea435e9d84258e3fcbf854a6078afcd4a08e
Signed-off-by: Tao,Zhang <taozha@codeaurora.org>
2020-06-10 02:18:56 -07:00
Liangcai Fan
f74f3040c5 ANDROID: ABI/Whitelist: update symbols of unisoc whitelist
Update symbols of unisoc whitelist.

change list:
  - add symbols of sprd_camera.ko & sprd_cpp.ko
  - restore symbols of xhci*.ko
  - remove symbols of erofs
  - add cpu_pm_unregister_notifier

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

2 Added functions:

  [A] 'function int of_irq_to_resource(device_node*, int, resource*)'
  [A] 'function unsigned int regulator_get_linear_step(regulator*)'

Bug: 157437165
Change-Id: Ie25468066f209054dd7981de11fcdd49c33add74
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-06-10 14:40:19 +08:00
Sami Tolvanen
42dd9451e6 ANDROID: scs: fix recursive spinlock in scs_check_usage
Use cmpxchg instead of a spinlock in scs_check_usage() to avoid
deadlocks.

Bug: 157781894
Change-Id: I1701ccaf25fdbd34ce4798c6f93e220b1565fb34
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Git-commit: e467b8c7db
Git-repo: https://android.googlesource.com/kernel/common
[jshriram@codeaurora.org: cherry-pick]
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2020-06-09 23:39:55 -07:00
Jack Pham
5d938924f9 usb: xhci: Don't check for USB_STATE_NOTATTACHED in xhci_stop_endpoint
This API can be called by the QMI sound driver precisely when a
device is disconnected in order to issue a stop endpoint command
to properly halt the transfer ring. With this check the function
silently bails, so the XHCI controller hardware may continue to
be accessing the buffers on the transfer ring; meanwhile the
QMI sound driver proceeds to unmap the buffers from DMA
resulting in an SMMU fault. Remove the check to allow the
endpoint to be properly stopped.

Change-Id: I80315c31d9b1685ac4375c1da051a8e22cab07ca
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2020-06-09 23:30:41 -07:00
Siddharth Gupta
0b81a3b3ff qcom: whitelist: Remove symbol from whitelist
QSEECOM is compiled as a module and its symbols should not be present on
the whitelist.

Change-Id: Id5d194fea82410611e4167dcdfd9b841529c6abd
Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
2020-06-09 22:33:37 -07:00
Linyu Yuan
baa686c901 arm64: defconfig: enable USB redriver on Lahaina QRD
Enable USB redriver NB7VPQ904M on Lahaina QRD.

Change-Id: I2dbeebc78fbf069ff626c90a64396cc393118d99
Signed-off-by: Linyu Yuan <linyyuan@codeaurora.org>
2020-06-09 20:48:13 -07:00
Guru Das Srinagesh
394335503c usb: typec: ucsi: Modify IPC log string
Remove redundant function name information from the log string, and add
a word to help in readability.

Change-Id: I464b7c8e60771ea06744ef910c525c6dd664492e
Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org>
2020-06-09 20:41:42 -07:00
Asutosh Das
7e584e6331 scsi: ufs: Enable WriteBooster
The write performance of TLC NAND is considerably lower than SLC NAND.
Using SLC NAND as a WriteBooster Buffer enables the write request to be
processed with lower latency and improves the overall write
performance.

Adds support for shared-buffer mode WriteBooster.

WriteBooster enable:
SW enables it when clocks are scaled up, thus it's
enabled only in high load conditions.

WriteBooster disable:
SW will disable the feature, when clocks are scaled
down. Thus writes would go as normal writes.

To keep the endurance of the WriteBooster Buffer at a maximum, this
load-based toggling is adopted.

Change-Id: I55a348f17e2d29b46ed9b29960254937c146f147
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
2020-06-09 20:40:19 -07:00
Neeraj Upadhyay
7184df9a80 defconfig: msm: Add config fragment for DEBUG_FS disablement
Add a config fragment for disabling DEBUG_FS.

Change-Id: I877c74955e467002976c3bac6c946183c8be7043
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
2020-06-09 20:09:28 -07:00
Pavankumar Kondeti
ca7e6941c1 sched/tracing: Fix format specifiers in sched_compute_energy
The energy values passed to sched_compute_energy trace event
are of unsigned long type. So use %lu format specifier instead
of %llu.

Change-Id: I1e82b34559d76d5cfb023598a8ce62917281a9af
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2020-06-10 08:10:51 +05:30
Can Guo
8611eb0c52 scsi: ufs: Move ufshcd_vops_dbg_register_dump out of ufshcd_print_host_regs
If ufshcd_print_host_regs() is called from IRQ context, some registers like
test bus and UFS PHY will not be printed by ufshcd_vops_dbg_register_dump()
due to sleep is not allowed. Move ufshcd_vops_dbg_register_dump out of
ufshcd_print_host_regs and explicitly call ufshcd_vops_dbg_register_dump
where we need to.

Change-Id: Icde9a71fc578c43af04a5329b04353d87217ce4f
Signed-off-by: Can Guo <cang@codeaurora.org>
2020-06-10 10:23:25 +08:00
Siddharth Gupta
d2006e6901 uapi: qg: Fix UAPI header to enable UAPI_HEADER_TEST
UAPI_HEADER_TEST ensures that all the uapi headers can be built as
standalone files which facilitates their use in the wider world. Fix
headers to use common kernel definitions.

Change-Id: I405dcabcede923eb18d8be4e1738b11b2e3761f4
Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
2020-06-09 18:55:14 -07:00
Stanley Chu
ec794a6623 BACKPORT: FROMGIT: scsi: ufs: Remove unnecessary memset for dev_info
The whole UFS host instance has been zero-initialized by scsi_host_alloc(),
thus UFS driver does not need to clear "dev_info" member specifically in
ufshcd_device_params_init().

Simply remove the unnecessary code.

Link: https://lore.kernel.org/r/20200522083212.4008-2-stanley.chu@mediatek.com
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

Bug: 158450168
(cherry picked from commit 3a66ae512b09971410abf9f1d546944c07b852ec
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 5.8/scsi-queue)
Change-Id: Idb4776fb166018e1d61892a8d58b5c135738c1c7
[can: Resolved minor conflicts]
Signed-off-by: Can Guo <cang@codeaurora.org>
2020-06-09 18:24:18 -07:00
Amir Vajid
d0142cbf68 devfreq: memlat: fix potential deadlock during CPU hotplug
The cpu_grp->mons_lock is acquired in the memlat hotplug notifier
callbacks to prevent races within the driver. The cpus_read_lock is
inherently acquired as well since it is in the middle of a hotplug
event. In parallel, stop_hwmon() could unregister from the hotplug
notifier (i.e. when last memlat mon in system is removed). However,
unregistering the hotplug notifier also requires the cpus_read_lock
and is done with the cpu_grp->mons_lock held as well which would lead
to a deadlock if a hotplug is currently in progress with the memlat
notifier callback waiting for the cpu_grp->mons_lock.

To fix this, release the cpu_grp->mons_lock in stop_hwmon() before
unregistering with the hotplug notifier. Also, make sure the memlat
hotplug notifier callbacks check cpu_grp->num_active_mons before
restarting events since that work won't be necessary if there are no
active memlat mons in the system.

Change-Id: I401639a6e28a472a64a96456d2c06f57b35dbc0d
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
2020-06-09 16:46:50 -07:00
qctecmdr
063759141a Merge "aarch64: ABI: Update the QCOM whitelist" 2020-06-09 14:37:35 -07:00
qctecmdr
f5090438b6 Merge "interconnect: qcom: Add check to return status of clk_bulk_prepare_enable" 2020-06-09 14:25:01 -07:00
qctecmdr
f6564e6eb6 Merge "input: qcom-hv-haptics: update drive waveform data format" 2020-06-09 14:25:01 -07:00
qctecmdr
ff0bdab35c Merge "taskstats: add support for system stats" 2020-06-09 14:25:01 -07:00
qctecmdr
af1c8b84de Merge "interconnect: qcom: Fix the link error on 32bit architecture" 2020-06-09 14:25:00 -07:00
Elliot Berman
8167da7ded build.config: Add build.config files for Lahaina
Add basic build.config files for using Google's kernel/build project on
lahaina.

Change-Id: I81b8d6af3f632b653ab692944da37d9023ab489c
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2020-06-09 14:25:37 -06:00
Isaac J. Manjarres
dad12176d7 ANDROID: staging: ion: Fix potential memory corruption
ion_dma_buf_unmap() interprets the priv pointer in the
attachment structure as a pointer to an ion_dma_buf_attachment
structure, and modifies the "mapped" field of that structure.

In cases where the heap specifies its own dma-buf ops, this
is not correct, as the priv pointer in the attachment structure
may point to a structure that is not an ion_dma_buf_attachment
structure, and thus, the current implementation of
ion_dma_buf_unmap() will modify the unknown structure--potentially
putting it in an inconsistent state--prior to calling the heap's
dma-buf unmap operation.

Thus, modify the structure pointed to by the priv field in the
attachment structure only if the heap doesn't provide its own
implementation of the unmap operation, as that guarantees that
the priv field points to an ion_dma_buf_attachment structure.

Bug: 157163668
Change-Id: If79a90ae1ca54762bbead6e23518b21076efd44b
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
(cherry picked from commit 01b0584902c56d12569423ef8cdb37d3a132a629)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-06-09 11:44:37 -07:00
Hyesoo Yu
48675044f9 ANDROID: staging: ion: optimize cache operation for non-cached buffer
The non-cached ion buffer is flushed when allocated.
And then, that is is always mapped as non-cached after allocation.
In the absence of caching, cache maintenance operations
become unnecessary. However dma_buf_ops tries to maintain
cache coherency for non-cached buffer on begin[end]_cpu_access
and map[unmap]_dma_buf functions.

It creates unnecessary overhead, so let's remove it.

Bug: 151775080

Signed-off-by: Hyesoo Yu <hyesoo.yu@samsung.com>
Change-Id: I168117c7002aec7930c84168d15816a09750b7d8
Signed-off-by: Hridya Valsaraju <hridya@google.com>
(cherry picked from commit 2c3b4cba8ab38d7eb9f474c78f9b4c70867bf71d)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-06-09 11:44:37 -07:00
Orjan Eide
8d814964bc ANDROID: staging: ion: Skip sync if not mapped
Only sync the sg-list of an Ion dma-buf attachment when the attachment
is actually mapped on the device.

dma-bufs may be synced at any time. It can be reached from user space
via DMA_BUF_IOCTL_SYNC, so there are no guarantees from callers on when
syncs may be attempted, and dma_buf_end_cpu_access() and
dma_buf_begin_cpu_access() may not be paired.

Since the sg_list's dma_address isn't set up until the buffer is used
on the device, and dma_map_sg() is called on it, the dma_address will be
NULL if sync is attempted on the dma-buf before it's mapped on a device.

Before v5.0 (commit 55897af630 ("dma-direct: merge swiotlb_dma_ops
into the dma_direct code")) this was a problem as the dma-api (at least
the swiotlb_dma_ops on arm64) would use the potentially invalid
dma_address. How that failed depended on how the device handled physical
address 0. If 0 was a valid address to physical ram, that page would get
flushed a lot, while the actual pages in the buffer would not get synced
correctly. While if 0 is an invalid address it cause a fault trigger a
crash.

In v5.0 this was incidentally fixed by commit 55897af630 ("dma-direct:
merge swiotlb_dma_ops into the dma_direct code"), as this moved the
dma-api to use the page pointer in the sg_list, and (for Ion buffers at
least) this will always be valid if the sg_list exists at all.

But, this issue is re-introduced in v5.3 with
commit 449fa54d68 ("dma-direct: correct the physical addr in
dma_direct_sync_sg_for_cpu/device") moves the dma-api back to the old
behaviour and picks the dma_address that may be invalid.

dma-buf core doesn't ensure that the buffer is mapped on the device, and
thus have a valid sg_list, before calling the exporter's
begin_cpu_access.

Bug: 155685387

Change-Id: Ie4da5a875957c831ce5b1345b5794357b844c84c
Signed-off-by: Orjan Eide <orjan.eide@arm.com>
Signed-off-by: Anders Pedersen <anders.pedersen@arm.corp-partner.google.com>
(cherry picked from commit 644ae915cd5df31179144c5b949539520a14f39a)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-06-09 11:44:36 -07:00
Hyesoo Yu
d4d1765952 ANDROID: staging: ion: use dma_[un]map_sg_attrs
The [un]map_dma_buf receives dma_buf_attachment by
parameter. The caller could set the dma_map_attrs
on dma_buf_attachment such as DMA_ATTR_SKIP_CPU_SYNC,
and expects that attributes are applied.
The dma_[un]map_sg is changed into dma_[un]map_sg_attrs
to send the attributes.

Bug: 151775080

Signed-off-by: Hyesoo Yu <hyesoo.yu@samsung.com>
Change-Id: Id5ca12ff120bfeac53a84ffad91e7a219e2180cd
(cherry picked from commit 16ce0bda52c9948d52e5676359b6cade2662580f)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-06-09 11:44:36 -07:00
George Shen
dc227ed603 msm: cvp: Allow re-send DSP HFI queue after SSR
Add new DSP state, DSP_INACTIVE, to indicate when CPU driver
shutdown DSP during SSR. The state helps CPU driver differentiate
DSP state between initial CVP boot up vs CVP restarted.

Change-Id: I0fd03efcecfceb38716b254a6725fb67bb969806
Signed-off-by: George Shen <sqiao@codeaurora.org>
2020-06-09 10:46:49 -07:00
Chris Lew
34c09bf47f net: qrtr: Use radix_tree_iter_delete
Use radix_tree_iter_delete instead of radix_tree_delete to properly
remove slots in a radix tree without any dangling references.

Change-Id: Ie72272d467b962538e7fe29b14c5d845308a9c51
Signed-off-by: Chris Lew <clew@codeaurora.org>
2020-06-09 10:41:40 -07:00
Deepak Kumar Singh
c59f36db81 net: qrtr: avoid calling node lookup from rx worker
Acquiring node in rx worker thread results in deadlock when node
release function is called from rx thread which in turn will wait
for rx thread to finish.

No need to acquire node in rx worker thread as node is guaranteed
to be present till the rx thread finishes.

CRs-Fixed: 2579396
Change-Id: I34903b672961e879596b58e28be5e333db5e10d8
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>
2020-06-09 10:41:40 -07:00
Chris Lew
b4277022c8 net: qrtr: Use lock while looking up tx flow
Flow structs are freed under the qrtr_tx_lock. Make sure all accesses
to the flow radix tree are protected by the qrtr_tx_lock.

Change-Id: I1574a09079e80ca9df255eaf9a8b3e5368b26305
Signed-off-by: Chris Lew <clew@codeaurora.org>
2020-06-09 10:41:40 -07:00
Pankaj Gupta
f4ca017d8d msm: kgsl: Add support for gpu busy multiplier
Adding support to increase/decrease gpu performance based on mod_percent.
This can be configured by user using new sysfs entry added in devfreq.
User needs to set mod_percent as multiplier percent which is used to
update measured GPU busy value before dcvs algorithm is run.
Example -
mod_percent = 120 (update gpu_busy to 120%)
mod_percent = 80 (update gpu_busy to 80%).

Change-Id: Ic6310b3a7751d5ccadd23332df76ddbcab450493
Signed-off-by: Pankaj Gupta <gpankaj@codeaurora.org>
2020-06-09 22:56:02 +05:30
Chiawei Wang
7bbd50f11d ANDROID: arch: arm64: vdso: export the symbols for time()
__cvdso_time() can be found in vDSO implementation,
but the symbols for time() are not exported.

Export the symbols and run bionic-benchmarks.

BEFORE:
bionic-benchmarks32 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     83.6 ns         83.5 ns      8385964

bionic-benchmarks64 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     63.5 ns         63.4 ns     11037509

AFTER:
bionic-benchmarks32 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     8.57 ns         8.56 ns     81887312

bionic-benchmarks64 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     7.52 ns         7.51 ns     93253809

Signed-off-by: Chiawei Wang <chiaweiwang@google.com>
Bug: 154668398
Bug: 157925983
Test: run bionic-benchmarks --bionic_xml vdso.xml
(cherry picked from fc30ad8ca60eccbce5245103fb4a2b070aa294de)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Change-Id: Ibd9835254c065801ba2f0976dffbf70d7bf0c85c
2020-06-09 08:45:15 -07:00
Paul Lawrence
227f8ea88e ANDROID: dm-bow: Add block_size option
Also consolidated changes to limits, including no longer changing
underlying device.

Bug: 153512828
Test: device boots, checkpoints can be committed or rolled back with and
without this parameter, parameter is accepted
Change-Id: I6fcb9bc21353a16ae0bf8998ffa22094eb1cbf3a
Signed-off-by: Paul Lawrence <paullawrence@google.com>
(cherry picked from commit 7df64f62169ca56286ba49bca3116e9786fd1616)
2020-06-09 15:26:13 +00:00
Raghavendra Rao Ananta
4dde087f1c aarch64: ABI: Update the QCOM whitelist
Update yet another batch of QCOM whitelist file with additional
symbols and regenerate the snapshot accordingly.

Change-Id: I0997a786fd50180744f1eb8fc9b0a817c589eb5e
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
2020-06-09 06:37:53 -07:00
Greg Kroah-Hartman
1ca17a46be ANDROID: GKI: remove squashfs-needed symbols from exported abi
squashfs is not recommended to be used by anyone anymore, so remove the
exported symbols that is needed by that.  Anyone using this filesystem
is on their own...

Bug: 157965270
Cc: zhaoyouyi <zhaoyouyi@allwinnertech.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id015f68e379d4d998e1d12e25878068624292000
2020-06-09 13:21:00 +02:00
Pavankumar Kondeti
c9ed39dd5e sched/tracing: Print task status in sched_migrate_task
A task can migrate either while it is waking or while it
is running via load balancer. Print the task status
i.e running or not in sched_migrate_task. This helps in
counting the different types of migrations without relying
on other trace events.

Change-Id: Ib473f9ccdc78003bb1f5d2dc24354f2db7a684f5
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2020-06-09 16:31:17 +05:30
Greg Kroah-Hartman
c7f82f0e1d ANDROID: GKI: remove erofs symbols from exported abi
Now that the filesystem is built in, remove the exported symbols as
something we have to keep stable.

Bug: 157965270
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I4cab046330c24f3deaf38ca9fa9babcaa7228815
2020-06-09 12:50:42 +02:00
Greg Kroah-Hartman
1971b1cf95 ANDROID: GKI: enable CONFIG_EROFS_FS=y
Some vendors are using erofs, so instead of having to support this as a
module, build it into the kernel for everyone to use.

Bug: 157965270
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8f8e953c13991dea50031fb4ff01ee99fbf09b88
2020-06-09 12:14:47 +02:00
Sami Tolvanen
e467b8c7db ANDROID: scs: fix recursive spinlock in scs_check_usage
Use cmpxchg instead of a spinlock in scs_check_usage() to avoid
deadlocks.

Bug: 157781894
Change-Id: I1701ccaf25fdbd34ce4798c6f93e220b1565fb34
(cherry picked from commit e929fb3f34326c669bff7863da32c90730fa7d72)
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
2020-06-09 08:28:50 +00:00