diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl index 517820726be1..7a04003bfcb4 100644 --- a/arch/alpha/kernel/syscalls/syscall.tbl +++ b/arch/alpha/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl index d98b34066200..b7eb74edf569 100644 --- a/arch/arm/tools/syscall.tbl +++ b/arch/arm/tools/syscall.tbl @@ -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 diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index febc1aa57714..b3b2019f8d16 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -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 diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h index c885dcfcd605..52879c7aaa54 100644 --- a/arch/arm64/include/asm/unistd32.h +++ b/arch/arm64/include/asm/unistd32.h @@ -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) /* diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl index ec028e67cda4..6915e787a037 100644 --- a/arch/ia64/kernel/syscalls/syscall.tbl +++ b/arch/ia64/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl index ac37a032eb1f..95cc3b9d40ef 100644 --- a/arch/m68k/kernel/syscalls/syscall.tbl +++ b/arch/m68k/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl index 9ea93304751e..0bf9a04e19b5 100644 --- a/arch/microblaze/kernel/syscalls/syscall.tbl +++ b/arch/microblaze/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/mips/kernel/syscalls/syscall_n32.tbl b/arch/mips/kernel/syscalls/syscall_n32.tbl index 2af8bfac917e..6ae6842599ac 100644 --- a/arch/mips/kernel/syscalls/syscall_n32.tbl +++ b/arch/mips/kernel/syscalls/syscall_n32.tbl @@ -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 diff --git a/arch/mips/kernel/syscalls/syscall_n64.tbl b/arch/mips/kernel/syscalls/syscall_n64.tbl index 2074bfcb61ac..6a663f85820c 100644 --- a/arch/mips/kernel/syscalls/syscall_n64.tbl +++ b/arch/mips/kernel/syscalls/syscall_n64.tbl @@ -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 diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl index 920d4c17a672..32347996e8e0 100644 --- a/arch/parisc/kernel/syscalls/syscall.tbl +++ b/arch/parisc/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl b/arch/powerpc/kernel/syscalls/syscall.tbl index 4675cd96f132..f3b2b0c58abb 100644 --- a/arch/powerpc/kernel/syscalls/syscall.tbl +++ b/arch/powerpc/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl index d30228a28524..3c7aa43482b9 100644 --- a/arch/s390/kernel/syscalls/syscall.tbl +++ b/arch/s390/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl index ebdaf971c3d7..5a4b36ba71c4 100644 --- a/arch/sh/kernel/syscalls/syscall.tbl +++ b/arch/sh/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/sparc/kernel/syscalls/syscall.tbl b/arch/sparc/kernel/syscalls/syscall.tbl index 9dc5e4581e33..4822c37f044c 100644 --- a/arch/sparc/kernel/syscalls/syscall.tbl +++ b/arch/sparc/kernel/syscalls/syscall.tbl @@ -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 diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl index 93dc19bc9394..3b161e17479e 100644 --- a/arch/x86/entry/syscalls/syscall_32.tbl +++ b/arch/x86/entry/syscalls/syscall_32.tbl @@ -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 diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl index a0908fff28e8..9ebbe98df765 100644 --- a/arch/x86/entry/syscalls/syscall_64.tbl +++ b/arch/x86/entry/syscalls/syscall_64.tbl @@ -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 diff --git a/arch/xtensa/kernel/syscalls/syscall.tbl b/arch/xtensa/kernel/syscalls/syscall.tbl index 0303a5c0952d..efb08d731a01 100644 --- a/arch/xtensa/kernel/syscalls/syscall.tbl +++ b/arch/xtensa/kernel/syscalls/syscall.tbl @@ -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 diff --git a/drivers/char/virtio_eavb/virtio_eavb.c b/drivers/char/virtio_eavb/virtio_eavb.c index 2654673c5f93..6ebb7104a9ea 100644 --- a/drivers/char/virtio_eavb/virtio_eavb.c +++ b/drivers/char/virtio_eavb/virtio_eavb.c @@ -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); } diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c index 12fa224ff8b3..f8cfb9382594 100644 --- a/drivers/iommu/io-pgtable-arm.c +++ b/drivers/iommu/io-pgtable-arm.c @@ -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, diff --git a/drivers/misc/qseecom.c b/drivers/misc/qseecom.c index 8c338aaa615c..2eeabe55d6ca 100644 --- a/drivers/misc/qseecom.c +++ b/drivers/misc/qseecom.c @@ -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); diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index 1cf76b17463a..c4ad1fd62601 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -3879,7 +3879,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 } @@ -5958,7 +5958,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 } diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index d947f2a848cb..3730ea7f5d35 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -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); diff --git a/drivers/usb/gadget/function/f_cdev.c b/drivers/usb/gadget/function/f_cdev.c index f1044c29027a..1f9751d251de 100644 --- a/drivers/usb/gadget/function/f_cdev.c +++ b/drivers/usb/gadget/function/f_cdev.c @@ -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); diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 619fdf93772e..674a0b04693c 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -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 diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 5467eb4f1701..fd1591c3fbcf 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -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); }