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:
Michael Bestas 2023-11-09 14:27:54 +02:00
commit 9272f3a35c
No known key found for this signature in database
GPG Key ID: CC95044519BE6669
27 changed files with 122 additions and 36 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)
/*

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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,

View File

@ -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);

View File

@ -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
}

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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);
}