From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Dmitry Vyukov <dvyukov@google.com>,
Marco Elver <elver@google.com>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 061/132] perf: Fix missing SIGTRAPs
Date: Wed, 2 Nov 2022 03:32:47 +0100 [thread overview]
Message-ID: <20221102022101.212771804@linuxfoundation.org> (raw)
In-Reply-To: <20221102022059.593236470@linuxfoundation.org>
From: Peter Zijlstra <peterz@infradead.org>
[ Upstream commit ca6c21327c6af02b7eec31ce4b9a740a18c6c13f ]
Marco reported:
Due to the implementation of how SIGTRAP are delivered if
perf_event_attr::sigtrap is set, we've noticed 3 issues:
1. Missing SIGTRAP due to a race with event_sched_out() (more
details below).
2. Hardware PMU events being disabled due to returning 1 from
perf_event_overflow(). The only way to re-enable the event is
for user space to first "properly" disable the event and then
re-enable it.
3. The inability to automatically disable an event after a
specified number of overflows via PERF_EVENT_IOC_REFRESH.
The worst of the 3 issues is problem (1), which occurs when a
pending_disable is "consumed" by a racing event_sched_out(), observed
as follows:
CPU0 | CPU1
--------------------------------+---------------------------
__perf_event_overflow() |
perf_event_disable_inatomic() |
pending_disable = CPU0 | ...
| _perf_event_enable()
| event_function_call()
| task_function_call()
| /* sends IPI to CPU0 */
<IPI> | ...
__perf_event_enable() +---------------------------
ctx_resched()
task_ctx_sched_out()
ctx_sched_out()
group_sched_out()
event_sched_out()
pending_disable = -1
</IPI>
<IRQ-work>
perf_pending_event()
perf_pending_event_disable()
/* Fails to send SIGTRAP because no pending_disable! */
</IRQ-work>
In the above case, not only is that particular SIGTRAP missed, but also
all future SIGTRAPs because 'event_limit' is not reset back to 1.
To fix, rework pending delivery of SIGTRAP via IRQ-work by introduction
of a separate 'pending_sigtrap', no longer using 'event_limit' and
'pending_disable' for its delivery.
Additionally; and different to Marco's proposed patch:
- recognise that pending_disable effectively duplicates oncpu for
the case where it is set. As such, change the irq_work handler to
use ->oncpu to target the event and use pending_* as boolean toggles.
- observe that SIGTRAP targets the ctx->task, so the context switch
optimization that carries contexts between tasks is invalid. If
the irq_work were delayed enough to hit after a context switch the
SIGTRAP would be delivered to the wrong task.
- observe that if the event gets scheduled out
(rotation/migration/context-switch/...) the irq-work would be
insufficient to deliver the SIGTRAP when the event gets scheduled
back in (the irq-work might still be pending on the old CPU).
Therefore have event_sched_out() convert the pending sigtrap into a
task_work which will deliver the signal at return_to_user.
Fixes: 97ba62b27867 ("perf: Add support for SIGTRAP on perf events")
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Debugged-by: Dmitry Vyukov <dvyukov@google.com>
Reported-by: Marco Elver <elver@google.com>
Debugged-by: Marco Elver <elver@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Marco Elver <elver@google.com>
Tested-by: Marco Elver <elver@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/linux/perf_event.h | 19 ++++-
kernel/events/core.c | 153 +++++++++++++++++++++++++++---------
kernel/events/ring_buffer.c | 2 +-
3 files changed, 130 insertions(+), 44 deletions(-)
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 6cce33e7e7ac..014eb0a963fc 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -723,11 +723,14 @@ struct perf_event {
struct fasync_struct *fasync;
/* delayed work for NMIs and such */
- int pending_wakeup;
- int pending_kill;
- int pending_disable;
+ unsigned int pending_wakeup;
+ unsigned int pending_kill;
+ unsigned int pending_disable;
+ unsigned int pending_sigtrap;
unsigned long pending_addr; /* SIGTRAP */
- struct irq_work pending;
+ struct irq_work pending_irq;
+ struct callback_head pending_task;
+ unsigned int pending_work;
atomic_t event_limit;
@@ -841,6 +844,14 @@ struct perf_event_context {
#endif
void *task_ctx_data; /* pmu specific data */
struct rcu_head rcu_head;
+
+ /*
+ * Sum (event->pending_sigtrap + event->pending_work)
+ *
+ * The SIGTRAP is targeted at ctx->task, as such it won't do changing
+ * that until the signal is delivered.
+ */
+ local_t nr_pending;
};
/*
diff --git a/kernel/events/core.c b/kernel/events/core.c
index c6c7a4d80573..59654c737168 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -54,6 +54,7 @@
#include <linux/highmem.h>
#include <linux/pgtable.h>
#include <linux/buildid.h>
+#include <linux/task_work.h>
#include "internal.h"
@@ -2352,11 +2353,26 @@ event_sched_out(struct perf_event *event,
event->pmu->del(event, 0);
event->oncpu = -1;
- if (READ_ONCE(event->pending_disable) >= 0) {
- WRITE_ONCE(event->pending_disable, -1);
+ if (event->pending_disable) {
+ event->pending_disable = 0;
perf_cgroup_event_disable(event, ctx);
state = PERF_EVENT_STATE_OFF;
}
+
+ if (event->pending_sigtrap) {
+ bool dec = true;
+
+ event->pending_sigtrap = 0;
+ if (state != PERF_EVENT_STATE_OFF &&
+ !event->pending_work) {
+ event->pending_work = 1;
+ dec = false;
+ task_work_add(current, &event->pending_task, TWA_RESUME);
+ }
+ if (dec)
+ local_dec(&event->ctx->nr_pending);
+ }
+
perf_event_set_state(event, state);
if (!is_software_event(event))
@@ -2508,7 +2524,7 @@ static void __perf_event_disable(struct perf_event *event,
* hold the top-level event's child_mutex, so any descendant that
* goes to exit will block in perf_event_exit_event().
*
- * When called from perf_pending_event it's OK because event->ctx
+ * When called from perf_pending_irq it's OK because event->ctx
* is the current context on this CPU and preemption is disabled,
* hence we can't get into perf_event_task_sched_out for this context.
*/
@@ -2547,9 +2563,8 @@ EXPORT_SYMBOL_GPL(perf_event_disable);
void perf_event_disable_inatomic(struct perf_event *event)
{
- WRITE_ONCE(event->pending_disable, smp_processor_id());
- /* can fail, see perf_pending_event_disable() */
- irq_work_queue(&event->pending);
+ event->pending_disable = 1;
+ irq_work_queue(&event->pending_irq);
}
#define MAX_INTERRUPTS (~0ULL)
@@ -3506,11 +3521,23 @@ static void perf_event_context_sched_out(struct task_struct *task, int ctxn,
raw_spin_lock_nested(&next_ctx->lock, SINGLE_DEPTH_NESTING);
if (context_equiv(ctx, next_ctx)) {
+ perf_pmu_disable(pmu);
+
+ /* PMIs are disabled; ctx->nr_pending is stable. */
+ if (local_read(&ctx->nr_pending) ||
+ local_read(&next_ctx->nr_pending)) {
+ /*
+ * Must not swap out ctx when there's pending
+ * events that rely on the ctx->task relation.
+ */
+ raw_spin_unlock(&next_ctx->lock);
+ rcu_read_unlock();
+ goto inside_switch;
+ }
+
WRITE_ONCE(ctx->task, next);
WRITE_ONCE(next_ctx->task, task);
- perf_pmu_disable(pmu);
-
if (cpuctx->sched_cb_usage && pmu->sched_task)
pmu->sched_task(ctx, false);
@@ -3551,6 +3578,7 @@ static void perf_event_context_sched_out(struct task_struct *task, int ctxn,
raw_spin_lock(&ctx->lock);
perf_pmu_disable(pmu);
+inside_switch:
if (cpuctx->sched_cb_usage && pmu->sched_task)
pmu->sched_task(ctx, false);
task_ctx_sched_out(cpuctx, ctx, EVENT_ALL);
@@ -5030,7 +5058,7 @@ static void perf_addr_filters_splice(struct perf_event *event,
static void _free_event(struct perf_event *event)
{
- irq_work_sync(&event->pending);
+ irq_work_sync(&event->pending_irq);
unaccount_event(event);
@@ -6524,7 +6552,8 @@ static void perf_sigtrap(struct perf_event *event)
return;
/*
- * perf_pending_event() can race with the task exiting.
+ * Both perf_pending_task() and perf_pending_irq() can race with the
+ * task exiting.
*/
if (current->flags & PF_EXITING)
return;
@@ -6533,23 +6562,33 @@ static void perf_sigtrap(struct perf_event *event)
event->attr.type, event->attr.sig_data);
}
-static void perf_pending_event_disable(struct perf_event *event)
+/*
+ * Deliver the pending work in-event-context or follow the context.
+ */
+static void __perf_pending_irq(struct perf_event *event)
{
- int cpu = READ_ONCE(event->pending_disable);
+ int cpu = READ_ONCE(event->oncpu);
+ /*
+ * If the event isn't running; we done. event_sched_out() will have
+ * taken care of things.
+ */
if (cpu < 0)
return;
+ /*
+ * Yay, we hit home and are in the context of the event.
+ */
if (cpu == smp_processor_id()) {
- WRITE_ONCE(event->pending_disable, -1);
-
- if (event->attr.sigtrap) {
+ if (event->pending_sigtrap) {
+ event->pending_sigtrap = 0;
perf_sigtrap(event);
- atomic_set_release(&event->event_limit, 1); /* rearm event */
- return;
+ local_dec(&event->ctx->nr_pending);
+ }
+ if (event->pending_disable) {
+ event->pending_disable = 0;
+ perf_event_disable_local(event);
}
-
- perf_event_disable_local(event);
return;
}
@@ -6569,36 +6608,63 @@ static void perf_pending_event_disable(struct perf_event *event)
* irq_work_queue(); // FAILS
*
* irq_work_run()
- * perf_pending_event()
+ * perf_pending_irq()
*
* But the event runs on CPU-B and wants disabling there.
*/
- irq_work_queue_on(&event->pending, cpu);
+ irq_work_queue_on(&event->pending_irq, cpu);
}
-static void perf_pending_event(struct irq_work *entry)
+static void perf_pending_irq(struct irq_work *entry)
{
- struct perf_event *event = container_of(entry, struct perf_event, pending);
+ struct perf_event *event = container_of(entry, struct perf_event, pending_irq);
int rctx;
- rctx = perf_swevent_get_recursion_context();
/*
* If we 'fail' here, that's OK, it means recursion is already disabled
* and we won't recurse 'further'.
*/
+ rctx = perf_swevent_get_recursion_context();
- perf_pending_event_disable(event);
-
+ /*
+ * The wakeup isn't bound to the context of the event -- it can happen
+ * irrespective of where the event is.
+ */
if (event->pending_wakeup) {
event->pending_wakeup = 0;
perf_event_wakeup(event);
}
+ __perf_pending_irq(event);
+
if (rctx >= 0)
perf_swevent_put_recursion_context(rctx);
}
-/*
+static void perf_pending_task(struct callback_head *head)
+{
+ struct perf_event *event = container_of(head, struct perf_event, pending_task);
+ int rctx;
+
+ /*
+ * If we 'fail' here, that's OK, it means recursion is already disabled
+ * and we won't recurse 'further'.
+ */
+ preempt_disable_notrace();
+ rctx = perf_swevent_get_recursion_context();
+
+ if (event->pending_work) {
+ event->pending_work = 0;
+ perf_sigtrap(event);
+ local_dec(&event->ctx->nr_pending);
+ }
+
+ if (rctx >= 0)
+ perf_swevent_put_recursion_context(rctx);
+ preempt_enable_notrace();
+}
+
+/*
* We assume there is only KVM supporting the callbacks.
* Later on, we might change it to a list if there is
* another virtualization implementation supporting the callbacks.
@@ -9229,8 +9295,8 @@ int perf_event_account_interrupt(struct perf_event *event)
*/
static int __perf_event_overflow(struct perf_event *event,
- int throttle, struct perf_sample_data *data,
- struct pt_regs *regs)
+ int throttle, struct perf_sample_data *data,
+ struct pt_regs *regs)
{
int events = atomic_read(&event->event_limit);
int ret = 0;
@@ -9253,24 +9319,36 @@ static int __perf_event_overflow(struct perf_event *event,
if (events && atomic_dec_and_test(&event->event_limit)) {
ret = 1;
event->pending_kill = POLL_HUP;
- event->pending_addr = data->addr;
-
perf_event_disable_inatomic(event);
}
+ if (event->attr.sigtrap) {
+ /*
+ * Should not be able to return to user space without processing
+ * pending_sigtrap (kernel events can overflow multiple times).
+ */
+ WARN_ON_ONCE(event->pending_sigtrap && event->attr.exclude_kernel);
+ if (!event->pending_sigtrap) {
+ event->pending_sigtrap = 1;
+ local_inc(&event->ctx->nr_pending);
+ }
+ event->pending_addr = data->addr;
+ irq_work_queue(&event->pending_irq);
+ }
+
READ_ONCE(event->overflow_handler)(event, data, regs);
if (*perf_event_fasync(event) && event->pending_kill) {
event->pending_wakeup = 1;
- irq_work_queue(&event->pending);
+ irq_work_queue(&event->pending_irq);
}
return ret;
}
int perf_event_overflow(struct perf_event *event,
- struct perf_sample_data *data,
- struct pt_regs *regs)
+ struct perf_sample_data *data,
+ struct pt_regs *regs)
{
return __perf_event_overflow(event, 1, data, regs);
}
@@ -11576,8 +11654,8 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
init_waitqueue_head(&event->waitq);
- event->pending_disable = -1;
- init_irq_work(&event->pending, perf_pending_event);
+ init_irq_work(&event->pending_irq, perf_pending_irq);
+ init_task_work(&event->pending_task, perf_pending_task);
mutex_init(&event->mmap_mutex);
raw_spin_lock_init(&event->addr_filters.lock);
@@ -11599,9 +11677,6 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
if (parent_event)
event->event_caps = parent_event->event_caps;
- if (event->attr.sigtrap)
- atomic_set(&event->event_limit, 1);
-
if (task) {
event->attach_state = PERF_ATTACH_TASK;
/*
diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c
index fb35b926024c..f40da32f5e75 100644
--- a/kernel/events/ring_buffer.c
+++ b/kernel/events/ring_buffer.c
@@ -22,7 +22,7 @@ static void perf_output_wakeup(struct perf_output_handle *handle)
atomic_set(&handle->rb->poll, EPOLLIN);
handle->event->pending_wakeup = 1;
- irq_work_queue(&handle->event->pending);
+ irq_work_queue(&handle->event->pending_irq);
}
/*
--
2.35.1
next prev parent reply other threads:[~2022-11-02 3:04 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-02 2:31 [PATCH 5.15 000/132] 5.15.77-rc1 review Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 001/132] NFSv4: Fix free of uninitialized nfs4_label on referral lookup Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 002/132] NFSv4: Add an fattr allocation to _nfs4_discover_trunking() Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 003/132] can: j1939: transport: j1939_session_skb_drop_old(): spin_unlock_irqrestore() before kfree_skb() Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 004/132] can: kvaser_usb: Fix possible completions during init_completion Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 005/132] ALSA: Use del_timer_sync() before freeing timer Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 006/132] ALSA: usb-audio: Add quirks for M-Audio Fast Track C400/600 Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 007/132] ALSA: au88x0: use explicitly signed char Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 008/132] ALSA: rme9652: " Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 009/132] USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 010/132] usb: gadget: uvc: fix sg handling in error case Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 011/132] usb: gadget: uvc: fix sg handling during video encode Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 012/132] usb: dwc3: gadget: Stop processing more requests on IMI Greg Kroah-Hartman
2022-11-02 2:31 ` [PATCH 5.15 013/132] usb: dwc3: gadget: Dont set IMI for no_interrupt Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 014/132] usb: bdc: change state when port disconnected Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 015/132] usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 016/132] mtd: rawnand: marvell: Use correct logic for nand-keep-config Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 017/132] xhci: Add quirk to reset host back to default state at shutdown Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 018/132] xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 019/132] xhci: Remove device endpoints from bandwidth list when freeing the device Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 020/132] tools: iio: iio_utils: fix digit calculation Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 021/132] iio: light: tsl2583: Fix module unloading Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 022/132] iio: temperature: ltc2983: allocate iio channels once Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 023/132] iio: adxl372: Fix unsafe buffer attributes Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 024/132] fbdev: smscufx: Fix several use-after-free bugs Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 025/132] cpufreq: intel_pstate: Read all MSRs on the target CPU Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 026/132] cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 027/132] fs/binfmt_elf: Fix memory leak in load_elf_binary() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 028/132] exec: Copy oldsighand->action under spin-lock Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 029/132] mac802154: Fix LQI recording Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 030/132] scsi: qla2xxx: Use transport-defined speed mask for supported_speeds Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 031/132] drm/amdgpu: disallow gfxoff until GC IP blocks complete s2idle resume Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 032/132] drm/msm/dsi: fix memory corruption with too many bridges Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 033/132] drm/msm/hdmi: " Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 034/132] drm/msm/dp: fix IRQ lifetime Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 035/132] coresight: cti: Fix hang in cti_disable_hw() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 036/132] mmc: sdhci_am654: select, not depends REGMAP_MMIO Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 037/132] mmc: core: Fix kernel panic when remove non-standard SDIO card Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 038/132] mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 039/132] mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 040/132] counter: microchip-tcb-capture: Handle Signal1 read and Synapse Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 041/132] kernfs: fix use-after-free in __kernfs_remove Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 042/132] pinctrl: Ingenic: JZ4755 bug fixes Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 043/132] ARC: mm: fix leakage of memory allocated for PTE Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 044/132] perf auxtrace: Fix address filter symbol name match for modules Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 045/132] s390/futex: add missing EX_TABLE entry to __futex_atomic_op() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 046/132] s390/pci: add missing EX_TABLE entries to __pcistg_mio_inuser()/__pcilg_mio_inuser() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 047/132] Revert "scsi: lpfc: Resolve some cleanup issues following SLI path refactoring" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 048/132] Revert "scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4()" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 049/132] Revert "scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup()" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 050/132] Revert "scsi: lpfc: SLI path split: Refactor SCSI paths" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 051/132] Revert "scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 052/132] Revert "scsi: lpfc: SLI path split: Refactor lpfc_iocbq" Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 053/132] mmc: block: Remove error check of hw_reset on reset Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 054/132] ethtool: eeprom: fix null-deref on genl_info in dump Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 055/132] net: ieee802154: fix error return code in dgram_bind() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 056/132] media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 057/132] media: atomisp: prevent integer overflow in sh_css_set_black_frame() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 058/132] drm/msm: Fix return type of mdp4_lvds_connector_mode_valid Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 059/132] KVM: selftests: Fix number of pages for memory slot in memslot_modification_stress_test Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 060/132] ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile Greg Kroah-Hartman
2022-11-02 2:32 ` Greg Kroah-Hartman [this message]
2022-11-02 2:32 ` [PATCH 5.15 062/132] sched/core: Fix comparison in sched_group_cookie_match() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 063/132] arc: iounmap() arg is volatile Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 064/132] mtd: rawnand: intel: Add missing of_node_put() in ebu_nand_probe() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 065/132] ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatile Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 066/132] ALSA: ac97: fix possible memory leak in snd_ac97_dev_register() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 067/132] perf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 068/132] tipc: fix a null-ptr-deref in tipc_topsrv_accept Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 069/132] net: netsec: fix error handling in netsec_register_mdio() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 070/132] net: hinic: fix incorrect assignment issue in hinic_set_interrupt_cfg() Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 071/132] net: hinic: fix memory leak when reading function table Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 072/132] net: hinic: fix the issue of CMDQ memory leaks Greg Kroah-Hartman
2022-11-02 2:32 ` [PATCH 5.15 073/132] net: hinic: fix the issue of double release MBOX callback of VF Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 074/132] net: macb: Specify PHY PM management done by MAC Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 075/132] nfc: virtual_ncidev: Fix memory leak in virtual_nci_send() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 076/132] x86/unwind/orc: Fix unreliable stack dump with gcov Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 077/132] amd-xgbe: fix the SFP compliance codes check for DAC cables Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 078/132] amd-xgbe: add the bit rate quirk for Molex cables Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 079/132] drm/i915/dp: Reset frl trained flag before restarting FRL training Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 080/132] atlantic: fix deadlock at aq_nic_stop Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 081/132] kcm: annotate data-races around kcm->rx_psock Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 082/132] kcm: annotate data-races around kcm->rx_wait Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 083/132] net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 084/132] net: lantiq_etop: dont free skb when returning NETDEV_TX_BUSY Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 085/132] tcp: minor optimization in tcp_add_backlog() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 086/132] tcp: fix a signed-integer-overflow bug " Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 087/132] tcp: fix indefinite deferral of RTO with SACK reneging Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 088/132] net-memcg: avoid stalls when under memory pressure Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 089/132] drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 090/132] can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 091/132] can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() " Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 092/132] PM: hibernate: Allow hybrid sleep to work with s2idle Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 093/132] media: vivid: s_fbuf: add more sanity checks Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 094/132] media: vivid: dev->bitmap_cap wasnt freed in all cases Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 095/132] media: v4l2-dv-timings: add sanity checks for blanking values Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 096/132] media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check interlaced Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 097/132] media: vivid: set num_in/outputs to 0 if not supported Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 098/132] perf vendor events power10: Fix hv-24x7 metric events Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 099/132] ipv6: ensure sane device mtu in tunnels Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 100/132] i40e: Fix ethtool rx-flow-hash setting for X722 Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 101/132] i40e: Fix VF hang when reset is triggered on another VF Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 102/132] i40e: Fix flow-type by setting GL_HASH_INSET registers Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 103/132] net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 104/132] PM: domains: Fix handling of unavailable/disabled idle states Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 105/132] perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 106/132] net: fec: limit register access on i.MX6UL Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 107/132] net: ethernet: ave: Fix MAC to be in charge of PHY PM Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 108/132] ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 109/132] ALSA: aoa: Fix I2S device accounting Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 110/132] openvswitch: switch from WARN to pr_warn Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 111/132] net: ehea: fix possible memory leak in ehea_register_port() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 112/132] net: bcmsysport: Indicate MAC is in charge of PHY PM Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 113/132] nh: fix scope used to find saddr when adding non gw nh Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 114/132] net: broadcom: bcm4908enet: remove redundant variable bytes Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 115/132] net: broadcom: bcm4908_enet: update TX stats after actual transmission Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 116/132] netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir failed Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 117/132] net/mlx5e: Do not increment ESN when updating IPsec ESN state Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 118/132] net/mlx5e: Extend SKB room check to include PTP-SQ Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 119/132] net/mlx5: Fix possible use-after-free in async command interface Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 120/132] net/mlx5: Print more info on pci error handlers Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 121/132] net/mlx5: Update fw fatal reporter state on PCI handlers successful recover Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 122/132] net/mlx5: Fix crash during sync firmware reset Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 123/132] net: do not sense pfmemalloc status in skb_append_pagefrags() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 124/132] kcm: do not sense pfmemalloc status in kcm_sendpage() Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 125/132] net: enetc: survive memory pressure without crashing Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 126/132] arm64: Add AMPERE1 to the Spectre-BHB affected list Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 127/132] scsi: sd: Revert "scsi: sd: Remove a local variable" Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 128/132] can: rcar_canfd: fix channel specific IRQ handling for RZ/G2L Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 129/132] can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global FIFO receive Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 130/132] serial: core: move RS485 configuration tasks from drivers into core Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 131/132] serial: Deassert Transmit Enable on probe in driver-specific way Greg Kroah-Hartman
2022-11-02 2:33 ` [PATCH 5.15 132/132] tcp/udp: Fix memory leak in ipv6_renew_options() Greg Kroah-Hartman
2022-11-02 9:29 ` [PATCH 5.15 000/132] 5.15.77-rc1 review Bagas Sanjaya
2022-11-02 18:24 ` Florian Fainelli
2022-11-02 20:47 ` Guenter Roeck
2022-11-02 21:02 ` Ron Economos
2022-11-02 21:11 ` Allen Pais
2022-11-03 6:59 ` Naresh Kamboju
2022-11-03 12:19 ` Sudip Mukherjee
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=20221102022101.212771804@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=patches@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).