From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Yang Shen <shenyang39@huawei.com>,
Zhangfei Gao <zhangfei.gao@linaro.org>,
Jean-Philippe Brucker <jean-philippe@linaro.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.10 114/158] uacce: Handle parent device removal or parent driver module rmmod
Date: Tue, 23 Aug 2022 10:27:26 +0200 [thread overview]
Message-ID: <20220823080050.542883808@linuxfoundation.org> (raw)
In-Reply-To: <20220823080046.056825146@linuxfoundation.org>
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
[ Upstream commit 80fc671bcc0173836e9032b0c698ea74c13b9d7c ]
The uacce driver must deal with a possible removal of the parent device
or parent driver module rmmod at any time.
Although uacce_remove(), called on device removal and on driver unbind,
prevents future use of the uacce fops by removing the cdev, fops that
were called before that point may still be running.
Serialize uacce_fops_open() and uacce_remove() with uacce->mutex.
Serialize other fops against uacce_remove() with q->mutex.
Since we need to protect uacce_fops_poll() which gets called on the fast
path, replace uacce->queues_lock with q->mutex to improve scalability.
The other fops are only used during setup.
uacce_queue_is_valid(), checked under q->mutex or uacce->mutex, denotes
whether uacce_remove() has disabled all queues. If that is the case,
don't go any further since the parent device is being removed and
uacce->ops should not be called anymore.
Reported-by: Yang Shen <shenyang39@huawei.com>
Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Link: https://lore.kernel.org/r/20220701034843.7502-1-zhangfei.gao@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/misc/uacce/uacce.c | 133 ++++++++++++++++++++++++-------------
include/linux/uacce.h | 6 +-
2 files changed, 91 insertions(+), 48 deletions(-)
diff --git a/drivers/misc/uacce/uacce.c b/drivers/misc/uacce/uacce.c
index 56dd98ab5a81..95e56eb2cdd0 100644
--- a/drivers/misc/uacce/uacce.c
+++ b/drivers/misc/uacce/uacce.c
@@ -9,43 +9,38 @@
static struct class *uacce_class;
static dev_t uacce_devt;
-static DEFINE_MUTEX(uacce_mutex);
static DEFINE_XARRAY_ALLOC(uacce_xa);
-static int uacce_start_queue(struct uacce_queue *q)
+/*
+ * If the parent driver or the device disappears, the queue state is invalid and
+ * ops are not usable anymore.
+ */
+static bool uacce_queue_is_valid(struct uacce_queue *q)
{
- int ret = 0;
+ return q->state == UACCE_Q_INIT || q->state == UACCE_Q_STARTED;
+}
- mutex_lock(&uacce_mutex);
+static int uacce_start_queue(struct uacce_queue *q)
+{
+ int ret;
- if (q->state != UACCE_Q_INIT) {
- ret = -EINVAL;
- goto out_with_lock;
- }
+ if (q->state != UACCE_Q_INIT)
+ return -EINVAL;
if (q->uacce->ops->start_queue) {
ret = q->uacce->ops->start_queue(q);
if (ret < 0)
- goto out_with_lock;
+ return ret;
}
q->state = UACCE_Q_STARTED;
-
-out_with_lock:
- mutex_unlock(&uacce_mutex);
-
- return ret;
+ return 0;
}
static int uacce_put_queue(struct uacce_queue *q)
{
struct uacce_device *uacce = q->uacce;
- mutex_lock(&uacce_mutex);
-
- if (q->state == UACCE_Q_ZOMBIE)
- goto out;
-
if ((q->state == UACCE_Q_STARTED) && uacce->ops->stop_queue)
uacce->ops->stop_queue(q);
@@ -54,8 +49,6 @@ static int uacce_put_queue(struct uacce_queue *q)
uacce->ops->put_queue(q);
q->state = UACCE_Q_ZOMBIE;
-out:
- mutex_unlock(&uacce_mutex);
return 0;
}
@@ -65,20 +58,36 @@ static long uacce_fops_unl_ioctl(struct file *filep,
{
struct uacce_queue *q = filep->private_data;
struct uacce_device *uacce = q->uacce;
+ long ret = -ENXIO;
+
+ /*
+ * uacce->ops->ioctl() may take the mmap_lock when copying arg to/from
+ * user. Avoid a circular lock dependency with uacce_fops_mmap(), which
+ * gets called with mmap_lock held, by taking uacce->mutex instead of
+ * q->mutex. Doing this in uacce_fops_mmap() is not possible because
+ * uacce_fops_open() calls iommu_sva_bind_device(), which takes
+ * mmap_lock, while holding uacce->mutex.
+ */
+ mutex_lock(&uacce->mutex);
+ if (!uacce_queue_is_valid(q))
+ goto out_unlock;
switch (cmd) {
case UACCE_CMD_START_Q:
- return uacce_start_queue(q);
-
+ ret = uacce_start_queue(q);
+ break;
case UACCE_CMD_PUT_Q:
- return uacce_put_queue(q);
-
+ ret = uacce_put_queue(q);
+ break;
default:
- if (!uacce->ops->ioctl)
- return -EINVAL;
-
- return uacce->ops->ioctl(q, cmd, arg);
+ if (uacce->ops->ioctl)
+ ret = uacce->ops->ioctl(q, cmd, arg);
+ else
+ ret = -EINVAL;
}
+out_unlock:
+ mutex_unlock(&uacce->mutex);
+ return ret;
}
#ifdef CONFIG_COMPAT
@@ -136,6 +145,13 @@ static int uacce_fops_open(struct inode *inode, struct file *filep)
if (!q)
return -ENOMEM;
+ mutex_lock(&uacce->mutex);
+
+ if (!uacce->parent) {
+ ret = -EINVAL;
+ goto out_with_mem;
+ }
+
ret = uacce_bind_queue(uacce, q);
if (ret)
goto out_with_mem;
@@ -152,10 +168,9 @@ static int uacce_fops_open(struct inode *inode, struct file *filep)
filep->private_data = q;
uacce->inode = inode;
q->state = UACCE_Q_INIT;
-
- mutex_lock(&uacce->queues_lock);
+ mutex_init(&q->mutex);
list_add(&q->list, &uacce->queues);
- mutex_unlock(&uacce->queues_lock);
+ mutex_unlock(&uacce->mutex);
return 0;
@@ -163,18 +178,20 @@ static int uacce_fops_open(struct inode *inode, struct file *filep)
uacce_unbind_queue(q);
out_with_mem:
kfree(q);
+ mutex_unlock(&uacce->mutex);
return ret;
}
static int uacce_fops_release(struct inode *inode, struct file *filep)
{
struct uacce_queue *q = filep->private_data;
+ struct uacce_device *uacce = q->uacce;
- mutex_lock(&q->uacce->queues_lock);
- list_del(&q->list);
- mutex_unlock(&q->uacce->queues_lock);
+ mutex_lock(&uacce->mutex);
uacce_put_queue(q);
uacce_unbind_queue(q);
+ list_del(&q->list);
+ mutex_unlock(&uacce->mutex);
kfree(q);
return 0;
@@ -217,10 +234,9 @@ static int uacce_fops_mmap(struct file *filep, struct vm_area_struct *vma)
vma->vm_private_data = q;
qfr->type = type;
- mutex_lock(&uacce_mutex);
-
- if (q->state != UACCE_Q_INIT && q->state != UACCE_Q_STARTED) {
- ret = -EINVAL;
+ mutex_lock(&q->mutex);
+ if (!uacce_queue_is_valid(q)) {
+ ret = -ENXIO;
goto out_with_lock;
}
@@ -259,12 +275,12 @@ static int uacce_fops_mmap(struct file *filep, struct vm_area_struct *vma)
}
q->qfrs[type] = qfr;
- mutex_unlock(&uacce_mutex);
+ mutex_unlock(&q->mutex);
return ret;
out_with_lock:
- mutex_unlock(&uacce_mutex);
+ mutex_unlock(&q->mutex);
kfree(qfr);
return ret;
}
@@ -273,12 +289,20 @@ static __poll_t uacce_fops_poll(struct file *file, poll_table *wait)
{
struct uacce_queue *q = file->private_data;
struct uacce_device *uacce = q->uacce;
+ __poll_t ret = 0;
+
+ mutex_lock(&q->mutex);
+ if (!uacce_queue_is_valid(q))
+ goto out_unlock;
poll_wait(file, &q->wait, wait);
+
if (uacce->ops->is_q_updated && uacce->ops->is_q_updated(q))
- return EPOLLIN | EPOLLRDNORM;
+ ret = EPOLLIN | EPOLLRDNORM;
- return 0;
+out_unlock:
+ mutex_unlock(&q->mutex);
+ return ret;
}
static const struct file_operations uacce_fops = {
@@ -431,7 +455,7 @@ struct uacce_device *uacce_alloc(struct device *parent,
goto err_with_uacce;
INIT_LIST_HEAD(&uacce->queues);
- mutex_init(&uacce->queues_lock);
+ mutex_init(&uacce->mutex);
device_initialize(&uacce->dev);
uacce->dev.devt = MKDEV(MAJOR(uacce_devt), uacce->dev_id);
uacce->dev.class = uacce_class;
@@ -489,13 +513,23 @@ void uacce_remove(struct uacce_device *uacce)
if (uacce->inode)
unmap_mapping_range(uacce->inode->i_mapping, 0, 0, 1);
+ /*
+ * uacce_fops_open() may be running concurrently, even after we remove
+ * the cdev. Holding uacce->mutex ensures that open() does not obtain a
+ * removed uacce device.
+ */
+ mutex_lock(&uacce->mutex);
/* ensure no open queue remains */
- mutex_lock(&uacce->queues_lock);
list_for_each_entry_safe(q, next_q, &uacce->queues, list) {
+ /*
+ * Taking q->mutex ensures that fops do not use the defunct
+ * uacce->ops after the queue is disabled.
+ */
+ mutex_lock(&q->mutex);
uacce_put_queue(q);
+ mutex_unlock(&q->mutex);
uacce_unbind_queue(q);
}
- mutex_unlock(&uacce->queues_lock);
/* disable sva now since no opened queues */
if (uacce->flags & UACCE_DEV_SVA)
@@ -504,6 +538,13 @@ void uacce_remove(struct uacce_device *uacce)
if (uacce->cdev)
cdev_device_del(uacce->cdev, &uacce->dev);
xa_erase(&uacce_xa, uacce->dev_id);
+ /*
+ * uacce exists as long as there are open fds, but ops will be freed
+ * now. Ensure that bugs cause NULL deref rather than use-after-free.
+ */
+ uacce->ops = NULL;
+ uacce->parent = NULL;
+ mutex_unlock(&uacce->mutex);
put_device(&uacce->dev);
}
EXPORT_SYMBOL_GPL(uacce_remove);
diff --git a/include/linux/uacce.h b/include/linux/uacce.h
index 48e319f40275..9ce88c28b0a8 100644
--- a/include/linux/uacce.h
+++ b/include/linux/uacce.h
@@ -70,6 +70,7 @@ enum uacce_q_state {
* @wait: wait queue head
* @list: index into uacce queues list
* @qfrs: pointer of qfr regions
+ * @mutex: protects queue state
* @state: queue state machine
* @pasid: pasid associated to the mm
* @handle: iommu_sva handle returned by iommu_sva_bind_device()
@@ -80,6 +81,7 @@ struct uacce_queue {
wait_queue_head_t wait;
struct list_head list;
struct uacce_qfile_region *qfrs[UACCE_MAX_REGION];
+ struct mutex mutex;
enum uacce_q_state state;
u32 pasid;
struct iommu_sva *handle;
@@ -97,9 +99,9 @@ struct uacce_queue {
* @dev_id: id of the uacce device
* @cdev: cdev of the uacce
* @dev: dev of the uacce
+ * @mutex: protects uacce operation
* @priv: private pointer of the uacce
* @queues: list of queues
- * @queues_lock: lock for queues list
* @inode: core vfs
*/
struct uacce_device {
@@ -113,9 +115,9 @@ struct uacce_device {
u32 dev_id;
struct cdev *cdev;
struct device dev;
+ struct mutex mutex;
void *priv;
struct list_head queues;
- struct mutex queues_lock;
struct inode *inode;
};
--
2.35.1
next prev parent reply other threads:[~2022-08-23 12:18 UTC|newest]
Thread overview: 159+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-23 8:25 [PATCH 5.10 000/158] 5.10.138-rc1 review Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 001/158] ALSA: info: Fix llseek return value when using callback Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 002/158] ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 003/158] x86/mm: Use proper mask when setting PUD mapping Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 004/158] rds: add missing barrier to release_refill Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 005/158] ata: libata-eh: Add missing command name Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 006/158] mmc: pxamci: Fix another error handling path in pxamci_probe() Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 007/158] mmc: pxamci: Fix an " Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 008/158] mmc: meson-gx: Fix an error handling path in meson_mmc_probe() Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 009/158] btrfs: fix lost error handling when looking up extended ref on log replay Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 010/158] tracing: Have filter accept "common_cpu" to be consistent Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 011/158] ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 012/158] can: ems_usb: fix clangs -Wunaligned-access warning Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 013/158] apparmor: fix quiet_denied for file rules Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 014/158] apparmor: fix absroot causing audited secids to begin with = Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 015/158] apparmor: Fix failed mount permission check error message Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 016/158] apparmor: fix aa_label_asxprint return check Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 017/158] apparmor: fix setting unconfined mode on a loaded profile Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 018/158] apparmor: fix overlapping attachment computation Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 019/158] apparmor: fix reference count leak in aa_pivotroot() Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 020/158] apparmor: Fix memleak in aa_simple_write_to_buffer() Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 021/158] Documentation: ACPI: EINJ: Fix obsolete example Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 022/158] NFSv4.1: Dont decrease the value of seq_nr_highest_sent Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 023/158] NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 024/158] NFSv4: Fix races in the legacy idmapper upcall Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 025/158] NFSv4.1: RECLAIM_COMPLETE must handle EACCES Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 026/158] NFSv4/pnfs: Fix a use-after-free bug in open Greg Kroah-Hartman
2022-08-23 8:25 ` [PATCH 5.10 027/158] bpf: Acquire map uref in .init_seq_private for array map iterator Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 028/158] bpf: Acquire map uref in .init_seq_private for hash " Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 029/158] bpf: Acquire map uref in .init_seq_private for sock local storage " Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 030/158] bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 031/158] bpf: Check the validity of max_rdwr_access for sock local storage map iterator Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 032/158] can: mcp251x: Fix race condition on receive interrupt Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 033/158] net: atlantic: fix aq_vec index out of range error Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 034/158] sunrpc: fix expiry of auth creds Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 035/158] SUNRPC: Reinitialise the backchannel request buffers before reuse Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 036/158] virtio_net: fix memory leak inside XPD_TX with mergeable Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 037/158] devlink: Fix use-after-free after a failed reload Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 038/158] net: bgmac: Fix a BUG triggered by wrong bytes_compl Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 039/158] pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 040/158] pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 041/158] pinctrl: sunxi: Add I/O bias setting for H6 R-PIO Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 042/158] pinctrl: qcom: sm8250: Fix PDC map Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 043/158] um: Add missing apply_returns() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 044/158] ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 045/158] geneve: do not use RT_TOS for IPv6 flowlabel Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 046/158] ipv6: " Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 047/158] plip: avoid rcu debug splat Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 048/158] vsock: Fix memory leak in vsock_connect() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 049/158] vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 050/158] dt-bindings: arm: qcom: fix MSM8916 MTP compatibles Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 051/158] dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 052/158] ceph: use correct index when encoding client supported features Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 053/158] tools/vm/slabinfo: use alphabetic order when two values are equal Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 054/158] ceph: dont leak snap_rwsem in handle_cap_grant Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 055/158] kbuild: dummy-tools: avoid tmpdir leak in dummy gcc Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 056/158] tools build: Switch to new openssl API for test-libcrypto Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 057/158] NTB: ntb_tool: uninitialized heap data in tool_fn_write() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 058/158] nfp: ethtool: fix the display error of `ethtool -m DEVNAME` Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 059/158] xen/xenbus: fix return type in xenbus_file_read() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 060/158] atm: idt77252: fix use-after-free bugs caused by tst_timer Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 061/158] geneve: fix TOS inheriting for ipv4 Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 062/158] perf probe: Fix an error handling path in parse_perf_probe_command() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 063/158] dpaa2-eth: trace the allocated address instead of page struct Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 064/158] nios2: page fault et.al. are *not* restartable syscalls Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 065/158] nios2: dont leave NULLs in sys_call_table[] Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 066/158] nios2: traced syscall does need to check the syscall number Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 067/158] nios2: fix syscall restart checks Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 068/158] nios2: restarts apply only to the first sigframe we build Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 069/158] nios2: add force_successful_syscall_return() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 070/158] iavf: Fix adminq error handling Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 071/158] ASoC: tas2770: Set correct FSYNC polarity Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 072/158] ASoC: tas2770: Allow mono streams Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 073/158] ASoC: tas2770: Drop conflicting set_bias_level power setting Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 074/158] ASoC: tas2770: Fix handling of mute/unmute Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 075/158] netfilter: nf_tables: really skip inactive sets when allocating name Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 076/158] netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT flag Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 077/158] netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 078/158] powerpc/pci: Fix get_phb_number() locking Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 079/158] spi: meson-spicc: add local pow2 clock ops to preserve rate between messages Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 080/158] net: dsa: mv88e6060: prevent crash on an unused port Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 081/158] net: moxa: pass pdev instead of ndev to DMA functions Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 082/158] net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 083/158] net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 084/158] net: genl: fix error path memory leak in policy dumping Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 085/158] net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions() Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 086/158] ice: Ignore EEXIST when setting promisc mode Greg Kroah-Hartman
2022-08-23 8:26 ` [PATCH 5.10 087/158] i2c: imx: Make sure to unregister adapter on remove() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 088/158] regulator: pca9450: Remove restrictions for regulator-name Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 089/158] i40e: Fix to stop tx_timeout recovery if GLOBR fails Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 090/158] fec: Fix timer capture timing in `fec_ptp_enable_pps()` Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 091/158] stmmac: intel: Add a missing clk_disable_unprepare() call in intel_eth_pci_remove() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 092/158] igb: Add lock to avoid data race Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 093/158] kbuild: fix the modules order between drivers and libs Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 094/158] gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 095/158] locking/atomic: Make test_and_*_bit() ordered on failure Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 096/158] ASoC: SOF: intel: move sof_intel_dsp_desc() forward Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 097/158] drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 098/158] audit: log nftables configuration change events once per table Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 099/158] netfilter: nftables: add helper function to set the base sequence number Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 100/158] netfilter: add helper function to set up the nfnetlink header and use it Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 101/158] drm/sun4i: dsi: Prevent underflow when computing packet sizes Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 102/158] PCI: Add ACS quirk for Broadcom BCM5750x NICs Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 103/158] platform/chrome: cros_ec_proto: dont show MKBP version if unsupported Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 104/158] usb: cdns3 fix use-after-free at workaround 2 Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 105/158] usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 106/158] irqchip/tegra: Fix overflow implicit truncation warnings Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 107/158] drm/meson: " Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 108/158] clk: ti: Stop using legacy clkctrl names for omap4 and 5 Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 109/158] usb: host: ohci-ppc-of: Fix refcount leak bug Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 110/158] usb: renesas: " Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 111/158] usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 112/158] vboxguest: Do not use devm for irq Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 113/158] clk: qcom: ipq8074: dont disable gcc_sleep_clk_src Greg Kroah-Hartman
2022-08-23 8:27 ` Greg Kroah-Hartman [this message]
2022-08-23 8:27 ` [PATCH 5.10 115/158] zram: do not lookup algorithm in backends table Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 116/158] clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 117/158] scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 118/158] gadgetfs: ep_io - wait until IRQ finishes Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 119/158] pinctrl: intel: Check against matching data instead of ACPI companion Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 120/158] cxl: Fix a memory leak in an error handling path Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 121/158] PCI/ACPI: Guard ARM64-specific mcfg_quirks Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 122/158] um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 123/158] RDMA/rxe: Limit the number of calls to each tasklet Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 124/158] csky/kprobe: reclaim insn_slot on kprobe unregistration Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 125/158] selftests/kprobe: Do not test for GRP/ without event failures Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 126/158] dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 127/158] md: Notify sysfs sync_completed in md_reap_sync_thread() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 128/158] nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 129/158] drivers:md:fix a potential use-after-free bug Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 130/158] ext4: avoid remove directory when directory is corrupted Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 131/158] ext4: avoid resizing to a partial cluster size Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 132/158] lib/list_debug.c: Detect uninitialized lists Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 133/158] tty: serial: Fix refcount leak bug in ucc_uart.c Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 134/158] vfio: Clear the caps->buf to NULL after free Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 135/158] mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 136/158] modules: Ensure natural alignment for .altinstructions and __bug_table sections Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 137/158] riscv: dts: sifive: Add fu540 topology information Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 138/158] riscv: mmap with PROT_WRITE but no PROT_READ is invalid Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 139/158] RISC-V: Add fast call path of crash_kexec() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 140/158] watchdog: export lockup_detector_reconfigure Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 141/158] powerpc/32: Dont always pass -mcpu=powerpc to the compiler Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 142/158] ALSA: core: Add async signal helpers Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 143/158] ALSA: timer: Use deferred fasync helper Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 144/158] ALSA: control: " Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 145/158] f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 146/158] f2fs: fix to do sanity check on segment type in build_sit_entries() Greg Kroah-Hartman
2022-08-23 8:27 ` [PATCH 5.10 147/158] smb3: check xattr value length earlier Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 148/158] powerpc/64: Init jump labels before parse_early_param() Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 149/158] video: fbdev: i740fb: Check the argument of i740_calc_vclk() Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 150/158] MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0 Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 151/158] netfilter: nftables: fix a warning message in nf_tables_commit_audit_collect() Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 152/158] netfilter: nf_tables: fix audit memory leak in nf_tables_commit Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 153/158] tracing/probes: Have kprobes and uprobes use $COMM too Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 154/158] can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once() Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 155/158] can: j1939: j1939_session_destroy(): fix memory leak of skbs Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 156/158] PCI/ERR: Retain status from error notification Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 157/158] qrtr: Convert qrtr_ports from IDR to XArray Greg Kroah-Hartman
2022-08-23 8:28 ` [PATCH 5.10 158/158] bpf: Fix KASAN use-after-free Read in compute_effective_progs Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220823080050.542883808@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=jean-philippe@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@kernel.org \
--cc=shenyang39@huawei.com \
--cc=stable@vger.kernel.org \
--cc=zhangfei.gao@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox