Merge tag 'LA.UM.9.14.r1-23100-LAHAINA.QSSI14.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
"LA.UM.9.14.r1-23100-LAHAINA.QSSI14.0" * tag 'LA.UM.9.14.r1-23100-LAHAINA.QSSI14.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4: Revert "ALSA: compress: Allow pause and resume during draining" ALSA: compress: Allow pause and resume during draining msm: kgsl: Prevent wrap around during user address mapping msm: kgsl: Limit the syncpoint count for AUX commands msm: kgsl: Prevent wrap around during user address mapping Configured process_madvise with upstream syscall number iommu: Fix missing return check of arm_lpae_init_pte usb: gadget: cdev: Don't use spinlock with sleeping functions securemsm-kernel: Fix multiple listener registration on same fd msm: kgsl: Limit the syncpoint count for AUX commands net: qrtr: use new update_marker api char: virtio_eavb: use new update_marker api usb: kpi: update_marker api for USB suspend resume Change-Id: Id82b63ff555fbc7101b41a10c1ffbef3762627bd
This commit is contained in:
commit
9272f3a35c
@ -475,4 +475,8 @@
|
||||
543 common fspick sys_fspick
|
||||
544 common pidfd_open sys_pidfd_open
|
||||
# 545 reserved for clone3
|
||||
546 common process_madvise sys_process_madvise
|
||||
# 546 reserved for close_range
|
||||
# 547 reserved for openat2
|
||||
# 548 reserved for pidfd_getfd
|
||||
# 549 reserved for faccessat2
|
||||
550 common process_madvise sys_process_madvise
|
||||
|
@ -449,4 +449,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
435 common clone3 sys_clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -38,7 +38,7 @@
|
||||
#define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5)
|
||||
#define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800)
|
||||
|
||||
#define __NR_compat_syscalls 437
|
||||
#define __NR_compat_syscalls 441
|
||||
#endif
|
||||
|
||||
#define __ARCH_WANT_SYS_CLONE
|
||||
|
@ -879,7 +879,7 @@ __SYSCALL(__NR_fspick, sys_fspick)
|
||||
__SYSCALL(__NR_pidfd_open, sys_pidfd_open)
|
||||
#define __NR_clone3 435
|
||||
__SYSCALL(__NR_clone3, sys_clone3)
|
||||
#define __NR_process_madvise 436
|
||||
#define __NR_process_madvise 440
|
||||
__SYSCALL(__NR_process_madvise, sys_process_madvise)
|
||||
|
||||
/*
|
||||
|
@ -356,4 +356,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
# 435 reserved for clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -435,4 +435,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
# 435 reserved for clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -441,4 +441,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
435 common clone3 sys_clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -374,4 +374,8 @@
|
||||
433 n32 fspick sys_fspick
|
||||
434 n32 pidfd_open sys_pidfd_open
|
||||
435 n32 clone3 __sys_clone3
|
||||
436 n32 process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 n32 process_madvise sys_process_madvise
|
||||
|
@ -350,4 +350,8 @@
|
||||
433 n64 fspick sys_fspick
|
||||
434 n64 pidfd_open sys_pidfd_open
|
||||
435 n64 clone3 __sys_clone3
|
||||
436 n64 process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 n64 process_madvise sys_process_madvise
|
||||
|
@ -433,4 +433,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
435 common clone3 sys_clone3_wrapper
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -517,4 +517,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
435 nospu clone3 ppc_clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -438,4 +438,8 @@
|
||||
433 common fspick sys_fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open sys_pidfd_open
|
||||
435 common clone3 sys_clone3 sys_clone3
|
||||
443 common process_madvise sys_process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise sys_process_madvise
|
||||
|
@ -438,4 +438,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
# 435 reserved for clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -481,4 +481,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
# 435 reserved for clone3
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -440,4 +440,8 @@
|
||||
433 i386 fspick sys_fspick __ia32_sys_fspick
|
||||
434 i386 pidfd_open sys_pidfd_open __ia32_sys_pidfd_open
|
||||
435 i386 clone3 sys_clone3 __ia32_sys_clone3
|
||||
436 i386 process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 i386 process_madvise sys_process_madvise
|
||||
|
@ -357,7 +357,11 @@
|
||||
433 common fspick __x64_sys_fspick
|
||||
434 common pidfd_open __x64_sys_pidfd_open
|
||||
435 common clone3 __x64_sys_clone3/ptregs
|
||||
436 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
||||
#
|
||||
# x32-specific system call numbers start at 512 to avoid cache impact
|
||||
|
@ -406,4 +406,8 @@
|
||||
433 common fspick sys_fspick
|
||||
434 common pidfd_open sys_pidfd_open
|
||||
435 common clone3 sys_clone3
|
||||
443 common process_madvise sys_process_madvise
|
||||
# 436 reserved for close_range
|
||||
# 437 reserved for openat2
|
||||
# 438 reserved for pidfd_getfd
|
||||
# 439 reserved for faccessat2
|
||||
440 common process_madvise sys_process_madvise
|
||||
|
@ -60,7 +60,7 @@ do { \
|
||||
do { \
|
||||
static int times; \
|
||||
if (times < 1) { \
|
||||
place_marker(log); \
|
||||
update_marker(log); \
|
||||
times++; \
|
||||
} \
|
||||
} while (0)
|
||||
@ -1586,7 +1586,7 @@ static int virtio_eavb_probe(struct virtio_device *vdev)
|
||||
priv->debugfs_root, NULL,
|
||||
&fops_debugfs_timeout);
|
||||
#endif
|
||||
place_marker("M - DRIVER EAVB FE Ready");
|
||||
update_marker("M - DRIVER EAVB FE Ready");
|
||||
return 0;
|
||||
|
||||
alloc_rxbufs_fail:
|
||||
@ -1649,7 +1649,7 @@ static struct virtio_driver virtio_eavb_driver = {
|
||||
|
||||
static int __init virtio_eavb_init(void)
|
||||
{
|
||||
place_marker("M - DRIVER EAVB FE Init");
|
||||
update_marker("M - DRIVER EAVB FE Init");
|
||||
return register_virtio_driver(&virtio_eavb_driver);
|
||||
}
|
||||
|
||||
|
@ -2038,6 +2038,10 @@ long kgsl_ioctl_gpu_aux_command(struct kgsl_device_private *dev_priv,
|
||||
(KGSL_GPU_AUX_COMMAND_TIMELINE)))
|
||||
return -EINVAL;
|
||||
|
||||
if ((param->flags & KGSL_GPU_AUX_COMMAND_SYNC) &&
|
||||
(param->numsyncs > KGSL_MAX_SYNCPOINTS))
|
||||
return -EINVAL;
|
||||
|
||||
context = kgsl_context_get_owner(dev_priv, param->context_id);
|
||||
if (!context)
|
||||
return -EINVAL;
|
||||
|
@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2011-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
@ -2157,14 +2158,18 @@ static uint64_t kgsl_iommu_find_svm_region(struct kgsl_pagetable *pagetable,
|
||||
static bool iommu_addr_in_svm_ranges(struct kgsl_iommu_pt *pt,
|
||||
u64 gpuaddr, u64 size)
|
||||
{
|
||||
u64 end = gpuaddr + size;
|
||||
|
||||
/* Make sure size is not zero and we don't wrap around */
|
||||
if (end <= gpuaddr)
|
||||
return false;
|
||||
|
||||
if ((gpuaddr >= pt->compat_va_start && gpuaddr < pt->compat_va_end) &&
|
||||
((gpuaddr + size) > pt->compat_va_start &&
|
||||
(gpuaddr + size) <= pt->compat_va_end))
|
||||
(end > pt->compat_va_start && end <= pt->compat_va_end))
|
||||
return true;
|
||||
|
||||
if ((gpuaddr >= pt->svm_start && gpuaddr < pt->svm_end) &&
|
||||
((gpuaddr + size) > pt->svm_start &&
|
||||
(gpuaddr + size) <= pt->svm_end))
|
||||
(end > pt->svm_start && end <= pt->svm_end))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
@ -683,9 +683,11 @@ static int arm_lpae_map_sg(struct io_pgtable_ops *ops, unsigned long iova,
|
||||
arm_lpae_iopte *ptep = ms.pgtable +
|
||||
ARM_LPAE_LVL_IDX(iova, MAP_STATE_LVL,
|
||||
data);
|
||||
arm_lpae_init_pte(
|
||||
ret = arm_lpae_init_pte(
|
||||
data, iova, phys, prot, MAP_STATE_LVL,
|
||||
ptep, ms.prev_pgtable, false);
|
||||
if (ret)
|
||||
goto out_err;
|
||||
ms.num_pte++;
|
||||
} else {
|
||||
ret = __arm_lpae_map(data, iova, phys, pgsize,
|
||||
|
@ -378,7 +378,7 @@ struct qseecom_client_handle {
|
||||
|
||||
struct qseecom_listener_handle {
|
||||
u32 id;
|
||||
bool unregister_pending;
|
||||
bool register_pending;
|
||||
bool release_called;
|
||||
};
|
||||
|
||||
@ -1550,6 +1550,11 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data,
|
||||
struct qseecom_registered_listener_list *new_entry;
|
||||
struct qseecom_registered_listener_list *ptr_svc;
|
||||
|
||||
if (data->listener.register_pending) {
|
||||
pr_err("Already a listner registration is in process on this FD\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = copy_from_user(&rcvd_lstnr, argp, sizeof(rcvd_lstnr));
|
||||
if (ret) {
|
||||
pr_err("copy_from_user failed\n");
|
||||
@ -1559,6 +1564,13 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data,
|
||||
rcvd_lstnr.sb_size))
|
||||
return -EFAULT;
|
||||
|
||||
ptr_svc = __qseecom_find_svc(data->listener.id);
|
||||
if (ptr_svc) {
|
||||
pr_err("Already a listener registered on this data: lid=%d\n",
|
||||
data->listener.id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ptr_svc = __qseecom_find_svc(rcvd_lstnr.listener_id);
|
||||
if (ptr_svc) {
|
||||
if (!ptr_svc->unregister_pending) {
|
||||
@ -1602,13 +1614,16 @@ static int qseecom_register_listener(struct qseecom_dev_handle *data,
|
||||
new_entry->svc.listener_id = rcvd_lstnr.listener_id;
|
||||
new_entry->sb_length = rcvd_lstnr.sb_size;
|
||||
new_entry->user_virt_sb_base = rcvd_lstnr.virt_sb_base;
|
||||
data->listener.register_pending = true;
|
||||
if (__qseecom_set_sb_memory(new_entry, data, &rcvd_lstnr)) {
|
||||
pr_err("qseecom_set_sb_memory failed for listener %d, size %d\n",
|
||||
rcvd_lstnr.listener_id, rcvd_lstnr.sb_size);
|
||||
__qseecom_free_tzbuf(&new_entry->sglistinfo_shm);
|
||||
kzfree(new_entry);
|
||||
data->listener.register_pending = false;
|
||||
return -ENOMEM;
|
||||
}
|
||||
data->listener.register_pending = false;
|
||||
|
||||
init_waitqueue_head(&new_entry->rcv_req_wq);
|
||||
init_waitqueue_head(&new_entry->listener_block_app_wq);
|
||||
|
@ -3880,7 +3880,7 @@ static irqreturn_t msm_dwc3_pwr_irq(int irq, void *data)
|
||||
if (mdwc->drd_state == DRD_STATE_PERIPHERAL_SUSPEND) {
|
||||
dev_info(mdwc->dev, "USB Resume start\n");
|
||||
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
|
||||
place_marker("M - USB device resume started");
|
||||
update_marker("M - USB device resume started");
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -6004,7 +6004,7 @@ static int dwc3_msm_pm_resume(struct device *dev)
|
||||
mdwc->drd_state == DRD_STATE_PERIPHERAL_SUSPEND) {
|
||||
dev_info(mdwc->dev, "USB Resume start\n");
|
||||
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
|
||||
place_marker("M - USB device resume started");
|
||||
update_marker("M - USB device resume started");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -893,7 +893,7 @@ static int set_config(struct usb_composite_dev *cdev,
|
||||
goto done;
|
||||
|
||||
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
|
||||
place_marker("M - USB Device is enumerated");
|
||||
update_marker("M - USB device is enumerated");
|
||||
#endif
|
||||
usb_gadget_set_state(gadget, USB_STATE_CONFIGURED);
|
||||
cdev->config = c;
|
||||
@ -2436,7 +2436,7 @@ void composite_resume(struct usb_gadget *gadget)
|
||||
*/
|
||||
INFO(cdev, "USB Resume end\n");
|
||||
#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
|
||||
place_marker("M - USB Device is resumed");
|
||||
update_marker("M - USB device is resumed");
|
||||
#endif
|
||||
if (cdev->driver->resume)
|
||||
cdev->driver->resume(cdev);
|
||||
|
@ -1639,13 +1639,13 @@ static long f_cdev_ioctl(struct file *fp, unsigned int cmd,
|
||||
break;
|
||||
case TIOCMGET:
|
||||
pr_debug("TIOCMGET on port(%s)%pK\n", port->name, port);
|
||||
spin_lock_irqsave(&port->port_lock, flags);
|
||||
ret = f_cdev_tiocmget(port);
|
||||
if (ret >= 0) {
|
||||
ret = put_user(ret, (uint32_t *)arg);
|
||||
spin_lock_irqsave(&port->port_lock, flags);
|
||||
port->cbits_updated = false;
|
||||
spin_unlock_irqrestore(&port->port_lock, flags);
|
||||
}
|
||||
spin_unlock_irqrestore(&port->port_lock, flags);
|
||||
break;
|
||||
default:
|
||||
pr_err("Received cmd:%d not supported\n", cmd);
|
||||
|
@ -850,11 +850,11 @@ __SYSCALL(__NR_pidfd_open, sys_pidfd_open)
|
||||
#define __NR_clone3 435
|
||||
__SYSCALL(__NR_clone3, sys_clone3)
|
||||
#endif
|
||||
#define __NR_process_madvise 436
|
||||
#define __NR_process_madvise 440
|
||||
__SYSCALL(__NR_process_madvise, sys_process_madvise)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls 437
|
||||
#define __NR_syscalls 441
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
|
@ -268,7 +268,7 @@ static void qrtr_log_tx_msg(struct qrtr_node *node, struct qrtr_hdr_v1 *hdr,
|
||||
type, hdr->src_node_id);
|
||||
if (le32_to_cpu(hdr->dst_node_id) == 0 ||
|
||||
le32_to_cpu(hdr->dst_node_id) == 3) {
|
||||
place_marker("M - Modem QMI Readiness TX");
|
||||
update_marker("M - Modem QMI Readiness TX");
|
||||
pr_err("qrtr: Modem QMI Readiness TX cmd:0x%x node[0x%x]\n",
|
||||
type, hdr->src_node_id);
|
||||
}
|
||||
@ -340,7 +340,7 @@ static void qrtr_log_rx_msg(struct qrtr_node *node, struct sk_buff *skb)
|
||||
"RX CTRL: cmd:0x%x node[0x%x]\n",
|
||||
cb->type, cb->src_node);
|
||||
if (cb->src_node == 0 || cb->src_node == 3) {
|
||||
place_marker("M - Modem QMI Readiness RX");
|
||||
update_marker("M - Modem QMI Readiness RX");
|
||||
pr_err("qrtr: Modem QMI Readiness RX cmd:0x%x node[0x%x]\n",
|
||||
cb->type, cb->src_node);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user