stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Stephen Boyd <swboyd@chromium.org>,
	Maulik Shah <mkshah@codeaurora.org>,
	Douglas Anderson <dianders@chromium.org>,
	Stanimir Varbanov <stanimir.varbanov@linaro.org>,
	Lina Iyer <ilina@codeaurora.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Sasha Levin <sashal@kernel.org>,
	linux-arm-msm@vger.kernel.org
Subject: [PATCH AUTOSEL 5.9 140/147] soc: qcom: rpmh-rsc: Sleep waiting for tcs slots to be free
Date: Mon, 26 Oct 2020 19:48:58 -0400	[thread overview]
Message-ID: <20201026234905.1022767-140-sashal@kernel.org> (raw)
In-Reply-To: <20201026234905.1022767-1-sashal@kernel.org>

From: Stephen Boyd <swboyd@chromium.org>

[ Upstream commit 2bc20f3c8487bd5bc4dd9ad2c06d2ba05fd4e838 ]

The busy loop in rpmh_rsc_send_data() is written with the assumption
that the udelay will be preempted by the tcs_tx_done() irq handler when
the TCS slots are all full. This doesn't hold true when the calling
thread is an irqthread and the tcs_tx_done() irq is also an irqthread.
That's because kernel irqthreads are SCHED_FIFO and thus need to
voluntarily give up priority by calling into the scheduler so that other
threads can run.

I see RCU stalls when I boot with irqthreads on the kernel commandline
because the modem remoteproc driver is trying to send an rpmh async
message from an irqthread that needs to give up the CPU for the rpmh
irqthread to run and clear out tcs slots.

 rcu: INFO: rcu_preempt self-detected stall on CPU
 rcu:     0-....: (1 GPs behind) idle=402/1/0x4000000000000002 softirq=2108/2109 fqs=4920
  (t=21016 jiffies g=2933 q=590)
 Task dump for CPU 0:
 irq/11-smp2p    R  running task        0   148      2 0x00000028
 Call trace:
  dump_backtrace+0x0/0x154
  show_stack+0x20/0x2c
  sched_show_task+0xfc/0x108
  dump_cpu_task+0x44/0x50
  rcu_dump_cpu_stacks+0xa4/0xf8
  rcu_sched_clock_irq+0x7dc/0xaa8
  update_process_times+0x30/0x54
  tick_sched_handle+0x50/0x64
  tick_sched_timer+0x4c/0x8c
  __hrtimer_run_queues+0x21c/0x36c
  hrtimer_interrupt+0xf0/0x22c
  arch_timer_handler_phys+0x40/0x50
  handle_percpu_devid_irq+0x114/0x25c
  __handle_domain_irq+0x84/0xc4
  gic_handle_irq+0xd0/0x178
  el1_irq+0xbc/0x180
  save_return_addr+0x18/0x28
  return_address+0x54/0x88
  preempt_count_sub+0x40/0x88
  _raw_spin_unlock_irqrestore+0x4c/0x6c
  ___ratelimit+0xd0/0x128
  rpmh_rsc_send_data+0x24c/0x378
  __rpmh_write+0x1b0/0x208
  rpmh_write_async+0x90/0xbc
  rpmhpd_send_corner+0x60/0x8c
  rpmhpd_aggregate_corner+0x8c/0x124
  rpmhpd_set_performance_state+0x8c/0xbc
  _genpd_set_performance_state+0xdc/0x1b8
  dev_pm_genpd_set_performance_state+0xb8/0xf8
  q6v5_pds_disable+0x34/0x60 [qcom_q6v5_mss]
  qcom_msa_handover+0x38/0x44 [qcom_q6v5_mss]
  q6v5_handover_interrupt+0x24/0x3c [qcom_q6v5]
  handle_nested_irq+0xd0/0x138
  qcom_smp2p_intr+0x188/0x200
  irq_thread_fn+0x2c/0x70
  irq_thread+0xfc/0x14c
  kthread+0x11c/0x12c
  ret_from_fork+0x10/0x18

This busy loop naturally lends itself to using a wait queue so that each
thread that tries to send a message will sleep waiting on the waitqueue
and only be woken up when a free slot is available. This should make
things more predictable too because the scheduler will be able to sleep
tasks that are waiting on a free tcs instead of the busy loop we
currently have today.

Reviewed-by: Maulik Shah <mkshah@codeaurora.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Maulik Shah <mkshah@codeaurora.org>
Cc: Lina Iyer <ilina@codeaurora.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20200724211711.810009-1-sboyd@kernel.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/soc/qcom/rpmh-internal.h |   4 ++
 drivers/soc/qcom/rpmh-rsc.c      | 115 +++++++++++++++----------------
 2 files changed, 58 insertions(+), 61 deletions(-)

diff --git a/drivers/soc/qcom/rpmh-internal.h b/drivers/soc/qcom/rpmh-internal.h
index ef60e790a750a..344ba687c13be 100644
--- a/drivers/soc/qcom/rpmh-internal.h
+++ b/drivers/soc/qcom/rpmh-internal.h
@@ -8,6 +8,7 @@
 #define __RPM_INTERNAL_H__
 
 #include <linux/bitmap.h>
+#include <linux/wait.h>
 #include <soc/qcom/tcs.h>
 
 #define TCS_TYPE_NR			4
@@ -106,6 +107,8 @@ struct rpmh_ctrlr {
  * @lock:               Synchronize state of the controller.  If RPMH's cache
  *                      lock will also be held, the order is: drv->lock then
  *                      cache_lock.
+ * @tcs_wait:           Wait queue used to wait for @tcs_in_use to free up a
+ *                      slot
  * @client:             Handle to the DRV's client.
  */
 struct rsc_drv {
@@ -118,6 +121,7 @@ struct rsc_drv {
 	struct tcs_group tcs[TCS_TYPE_NR];
 	DECLARE_BITMAP(tcs_in_use, MAX_TCS_NR);
 	spinlock_t lock;
+	wait_queue_head_t tcs_wait;
 	struct rpmh_ctrlr client;
 };
 
diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c
index ae66757825813..a297911afe571 100644
--- a/drivers/soc/qcom/rpmh-rsc.c
+++ b/drivers/soc/qcom/rpmh-rsc.c
@@ -19,6 +19,7 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
+#include <linux/wait.h>
 
 #include <soc/qcom/cmd-db.h>
 #include <soc/qcom/tcs.h>
@@ -453,6 +454,7 @@ static irqreturn_t tcs_tx_done(int irq, void *p)
 		if (!drv->tcs[ACTIVE_TCS].num_tcs)
 			enable_tcs_irq(drv, i, false);
 		spin_unlock(&drv->lock);
+		wake_up(&drv->tcs_wait);
 		if (req)
 			rpmh_tx_done(req, err);
 	}
@@ -571,73 +573,34 @@ static int find_free_tcs(struct tcs_group *tcs)
 }
 
 /**
- * tcs_write() - Store messages into a TCS right now, or return -EBUSY.
+ * claim_tcs_for_req() - Claim a tcs in the given tcs_group; only for active.
  * @drv: The controller.
+ * @tcs: The tcs_group used for ACTIVE_ONLY transfers.
  * @msg: The data to be sent.
  *
- * Grabs a TCS for ACTIVE_ONLY transfers and writes the messages to it.
+ * Claims a tcs in the given tcs_group while making sure that no existing cmd
+ * is in flight that would conflict with the one in @msg.
  *
- * If there are no free TCSes for ACTIVE_ONLY transfers or if a command for
- * the same address is already transferring returns -EBUSY which means the
- * client should retry shortly.
+ * Context: Must be called with the drv->lock held since that protects
+ * tcs_in_use.
  *
- * Return: 0 on success, -EBUSY if client should retry, or an error.
- *         Client should have interrupts enabled for a bit before retrying.
+ * Return: The id of the claimed tcs or -EBUSY if a matching msg is in flight
+ * or the tcs_group is full.
  */
-static int tcs_write(struct rsc_drv *drv, const struct tcs_request *msg)
+static int claim_tcs_for_req(struct rsc_drv *drv, struct tcs_group *tcs,
+			     const struct tcs_request *msg)
 {
-	struct tcs_group *tcs;
-	int tcs_id;
-	unsigned long flags;
 	int ret;
 
-	tcs = get_tcs_for_msg(drv, msg);
-	if (IS_ERR(tcs))
-		return PTR_ERR(tcs);
-
-	spin_lock_irqsave(&drv->lock, flags);
 	/*
 	 * The h/w does not like if we send a request to the same address,
 	 * when one is already in-flight or being processed.
 	 */
 	ret = check_for_req_inflight(drv, tcs, msg);
 	if (ret)
-		goto unlock;
-
-	ret = find_free_tcs(tcs);
-	if (ret < 0)
-		goto unlock;
-	tcs_id = ret;
-
-	tcs->req[tcs_id - tcs->offset] = msg;
-	set_bit(tcs_id, drv->tcs_in_use);
-	if (msg->state == RPMH_ACTIVE_ONLY_STATE && tcs->type != ACTIVE_TCS) {
-		/*
-		 * Clear previously programmed WAKE commands in selected
-		 * repurposed TCS to avoid triggering them. tcs->slots will be
-		 * cleaned from rpmh_flush() by invoking rpmh_rsc_invalidate()
-		 */
-		write_tcs_reg_sync(drv, RSC_DRV_CMD_ENABLE, tcs_id, 0);
-		write_tcs_reg_sync(drv, RSC_DRV_CMD_WAIT_FOR_CMPL, tcs_id, 0);
-		enable_tcs_irq(drv, tcs_id, true);
-	}
-	spin_unlock_irqrestore(&drv->lock, flags);
-
-	/*
-	 * These two can be done after the lock is released because:
-	 * - We marked "tcs_in_use" under lock.
-	 * - Once "tcs_in_use" has been marked nobody else could be writing
-	 *   to these registers until the interrupt goes off.
-	 * - The interrupt can't go off until we trigger w/ the last line
-	 *   of __tcs_set_trigger() below.
-	 */
-	__tcs_buffer_write(drv, tcs_id, 0, msg);
-	__tcs_set_trigger(drv, tcs_id, true);
+		return ret;
 
-	return 0;
-unlock:
-	spin_unlock_irqrestore(&drv->lock, flags);
-	return ret;
+	return find_free_tcs(tcs);
 }
 
 /**
@@ -664,18 +627,47 @@ static int tcs_write(struct rsc_drv *drv, const struct tcs_request *msg)
  */
 int rpmh_rsc_send_data(struct rsc_drv *drv, const struct tcs_request *msg)
 {
-	int ret;
+	struct tcs_group *tcs;
+	int tcs_id;
+	unsigned long flags;
 
-	do {
-		ret = tcs_write(drv, msg);
-		if (ret == -EBUSY) {
-			pr_info_ratelimited("TCS Busy, retrying RPMH message send: addr=%#x\n",
-					    msg->cmds[0].addr);
-			udelay(10);
-		}
-	} while (ret == -EBUSY);
+	tcs = get_tcs_for_msg(drv, msg);
+	if (IS_ERR(tcs))
+		return PTR_ERR(tcs);
 
-	return ret;
+	spin_lock_irqsave(&drv->lock, flags);
+
+	/* Wait forever for a free tcs. It better be there eventually! */
+	wait_event_lock_irq(drv->tcs_wait,
+			    (tcs_id = claim_tcs_for_req(drv, tcs, msg)) >= 0,
+			    drv->lock);
+
+	tcs->req[tcs_id - tcs->offset] = msg;
+	set_bit(tcs_id, drv->tcs_in_use);
+	if (msg->state == RPMH_ACTIVE_ONLY_STATE && tcs->type != ACTIVE_TCS) {
+		/*
+		 * Clear previously programmed WAKE commands in selected
+		 * repurposed TCS to avoid triggering them. tcs->slots will be
+		 * cleaned from rpmh_flush() by invoking rpmh_rsc_invalidate()
+		 */
+		write_tcs_reg_sync(drv, RSC_DRV_CMD_ENABLE, tcs_id, 0);
+		write_tcs_reg_sync(drv, RSC_DRV_CMD_WAIT_FOR_CMPL, tcs_id, 0);
+		enable_tcs_irq(drv, tcs_id, true);
+	}
+	spin_unlock_irqrestore(&drv->lock, flags);
+
+	/*
+	 * These two can be done after the lock is released because:
+	 * - We marked "tcs_in_use" under lock.
+	 * - Once "tcs_in_use" has been marked nobody else could be writing
+	 *   to these registers until the interrupt goes off.
+	 * - The interrupt can't go off until we trigger w/ the last line
+	 *   of __tcs_set_trigger() below.
+	 */
+	__tcs_buffer_write(drv, tcs_id, 0, msg);
+	__tcs_set_trigger(drv, tcs_id, true);
+
+	return 0;
 }
 
 /**
@@ -983,6 +975,7 @@ static int rpmh_rsc_probe(struct platform_device *pdev)
 		return ret;
 
 	spin_lock_init(&drv->lock);
+	init_waitqueue_head(&drv->tcs_wait);
 	bitmap_zero(drv->tcs_in_use, MAX_TCS_NR);
 
 	irq = platform_get_irq(pdev, drv->id);
-- 
2.25.1


  parent reply	other threads:[~2020-10-27  0:31 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-26 23:46 [PATCH AUTOSEL 5.9 001/147] powerpc/vmemmap: Fix memory leak with vmemmap list allocation failures Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 002/147] powerpc/powernv/smp: Fix spurious DBG() warning Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 003/147] RDMA/core: Change how failing destroy is handled during uobj abort Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 004/147] f2fs: allocate proper size memory for zstd decompress Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 005/147] powerpc/watchpoint/ptrace: Fix SETHWDEBUG when CONFIG_HAVE_HW_BREAKPOINT=N Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 006/147] mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 007/147] powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 008/147] sparc64: remove mm_cpumask clearing to fix kthread_use_mm race Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 009/147] f2fs: add trace exit in exception path Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 010/147] f2fs: do sanity check on zoned block device path Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 011/147] f2fs: fix uninit-value in f2fs_lookup Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 012/147] f2fs: fix to check segment boundary during SIT page readahead Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 013/147] s390/startup: avoid save_area_sync overflow Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 014/147] f2fs: compress: fix to disallow enabling compress on non-empty file Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 015/147] s390/ap/zcrypt: revisit ap and zcrypt error handling Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 016/147] um: change sigio_spinlock to a mutex Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 017/147] f2fs: handle errors of f2fs_get_meta_page_nofail Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 018/147] afs: Don't assert on unpurgeable server records Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 019/147] MIPS: ftrace: Remove redundant #ifdef CONFIG_DYNAMIC_FTRACE Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 020/147] powerpc/64s: handle ISA v3.1 local copy-paste context switches Sasha Levin
2020-10-26 23:46 ` [PATCH AUTOSEL 5.9 021/147] ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 022/147] NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 023/147] xfs: Set xfs_buf type flag when growing summary/bitmap files Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 024/147] xfs: Set xfs_buf's b_ops member when zeroing bitmap/summary files Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 025/147] xfs: log new intent items created as part of finishing recovered intent items Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 026/147] power: supply: bq27xxx: report "not charging" on all types Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 027/147] xfs: change the order in which child and parent defer ops are finished Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 028/147] xfs: fix realtime bitmap/summary file truncation when growing rt volume Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 029/147] io_uring: don't set COMP_LOCKED if won't put Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 030/147] ath10k: fix retry packets update in station dump Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 031/147] x86/kaslr: Initialize mem_limit to the real maximum address Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 032/147] drm/ast: Separate DRM driver from PCI code Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 033/147] drm/amdgpu: restore ras flags when user resets eeprom(v2) Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 034/147] video: fbdev: pvr2fb: initialize variables Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 035/147] ath10k: start recovery process when payload length exceeds max htc length for sdio Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 036/147] ath10k: fix VHT NSS calculation when STBC is enabled Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 037/147] drm/scheduler: Scheduler priority fixes (v2) Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 038/147] drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working correctly Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 039/147] ASoC: SOF: fix a runtime pm issue in SOF when HDMI codec doesn't work Sasha Levin
2020-11-05 13:48   ` Build error with 5.9.5 in sound/soc/sof/intel/hda-codec.c (was: [PATCH AUTOSEL 5.9 039/147] ASoC: SOF: fix a runtime pm issue in SOF when HDMI codec doesn't work) Thorsten Leemhuis
2020-11-05 15:40     ` Greg KH
2020-11-05 21:18       ` Greg KH
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 040/147] selftests/x86/fsgsbase: Reap a forgotten child Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 041/147] drm/bridge_connector: Set default status connected for eDP connectors Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 042/147] media: videodev2.h: RGB BT2020 and HSV are always full range Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 043/147] ASoC: AMD: Clean kernel log from deferred probe error messages Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 044/147] misc: fastrpc: fix common struct sg_table related issues Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 045/147] staging: wfx: fix potential use before init Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 046/147] media: platform: Improve queue set up flow for bug fixing Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 047/147] usb: typec: tcpm: During PR_SWAP, source caps should be sent only after tSwapSourceStart Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 048/147] media: tw5864: check status of tw5864_frameinterval_get Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 049/147] drm/vkms: avoid warning in vkms_get_vblank_timestamp Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 050/147] media: imx274: fix frame interval handling Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 051/147] mmc: via-sdmmc: Fix data race bug Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 052/147] drm/bridge/synopsys: dsi: add support for non-continuous HS clock Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 053/147] brcmfmac: increase F2 watermark for BCM4329 Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 054/147] sfc: add and use efx_tx_send_pending in tx.c Sasha Levin
2020-10-27 13:24   ` Edward Cree
2020-11-01 23:52     ` Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 055/147] arm64: topology: Stop using MPIDR for topology information Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 056/147] printk: reduce LOG_BUF_SHIFT range for H8300 Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 057/147] ia64: kprobes: Use generic kretprobe trampoline handler Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 058/147] selftests/powerpc: Make using_hash_mmu() work on Cell & PowerMac Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 059/147] kgdb: Make "kgdbcon" work properly with "kgdb_earlycon" Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 060/147] bpf: Permit map_ptr arithmetic with opcode add and offset 0 Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 061/147] drm: exynos: fix common struct sg_table related issues Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 062/147] xen: gntdev: " Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 063/147] drm: lima: " Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 064/147] drm: panfrost: " Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 065/147] media: uvcvideo: Fix dereference of out-of-bound list iterator Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 066/147] nfc: s3fwrn5: Add missing CRYPTO_HASH dependency Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 067/147] selftests/bpf: Define string const as global for test_sysctl_prog.c Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 068/147] selinux: access policycaps with READ_ONCE/WRITE_ONCE Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 069/147] samples/bpf: Fix possible deadlock in xdpsock Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 070/147] drm/amd/display: Check clock table return Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 071/147] riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 072/147] cpufreq: sti-cpufreq: add stih418 support Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 073/147] USB: adutux: fix debugging Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 074/147] uio: free uio id after uio file node is freed Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 075/147] coresight: Make sysfs functional on topologies with per core sink Sasha Levin
2020-11-02  6:59   ` Linu Cherian
2020-11-02 17:29     ` Mathieu Poirier
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 076/147] drm/amdgpu: No sysfs, not an error condition Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 077/147] mac80211: add missing queue/hash initialization to 802.3 xmit Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 078/147] usb: xhci: omit duplicate actions when suspending a runtime suspended host Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 079/147] SUNRPC: Mitigate cond_resched() in xprt_transmit() Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 080/147] cpuidle: tegra: Correctly handle result of arm_cpuidle_simple_enter() Sasha Levin
2020-10-26 23:47 ` [PATCH AUTOSEL 5.9 081/147] arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 082/147] can: flexcan: disable clocks during stop mode Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 083/147] habanalabs: remove security from ARB_MST_QUIET register Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 084/147] xfs: don't free rt blocks when we're doing a REMAP bunmapi call Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 085/147] xfs: avoid LR buffer overrun due to crafted h_len Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 086/147] ACPI: Add out of bounds and numa_off protections to pxm_to_node() Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 087/147] genirq: Add stub for set_handle_irq() when !GENERIC_IRQ_MULTI_HANDLER Sasha Levin
2020-10-27  8:51   ` Marc Zyngier
2020-11-01 23:52     ` Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 088/147] octeontx2-af: fix LD CUSTOM LTYPE aliasing Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 089/147] dm: change max_io_len() to use blk_max_size_offset() Sasha Levin
2020-10-27 12:19   ` Mike Snitzer
2020-11-02  0:30     ` Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 090/147] brcmfmac: Fix warning message after dongle setup failed Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 091/147] ath11k: Use GFP_ATOMIC instead of GFP_KERNEL in ath11k_dp_htt_get_ppdu_desc Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 092/147] ath11k: fix warning caused by lockdep_assert_held Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 093/147] ath11k: change to disable softirqs for ath11k_regd_update to solve deadlock Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 094/147] drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 095/147] usb: dwc3: core: do not queue work if dr_mode is not USB_DR_MODE_OTG Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 096/147] bus: mhi: core: Abort suspends due to outgoing pending packets Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 097/147] bus/fsl_mc: Do not rely on caller to provide non NULL mc_io Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 098/147] ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3 Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 099/147] power: supply: test_power: add missing newlines when printing parameters by sysfs Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 100/147] drm/amd/display: HDMI remote sink need mode validation for Linux Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 101/147] drm/amd/display: Avoid set zero in the requested clk Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 102/147] ARC: [dts] fix the errors detected by dtbs_check Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 103/147] block: Consider only dispatched requests for inflight statistic Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 104/147] btrfs: fix replace of seed device Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 105/147] md/bitmap: md_bitmap_get_counter returns wrong blocks Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 106/147] f2fs: fix to set SBI_NEED_FSCK flag for inconsistent inode Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 107/147] bnxt_en: Log unknown link speed appropriately Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 108/147] binfmt_elf: take the mmap lock around find_extend_vma() Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 109/147] rpmsg: glink: Use complete_all for open states Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 110/147] PCI/ACPI: Add Ampere Altra SOC MCFG quirk Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 111/147] clk: ti: clockdomain: fix static checker warning Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 112/147] nfsd: rename delegation related tracepoints to make them less confusing Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 113/147] nfsd4: remove check_conflicting_opens warning Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 114/147] phy: marvell: comphy: Convert internal SMCC firmware return codes to errno Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 115/147] net: 9p: initialize sun_server.sun_path to have addr's value only when addr is valid Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 116/147] ceph: encode inodes' parent/d_name in cap reconnect message Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 117/147] drivers: watchdog: rdc321x_wdt: Fix race condition bugs Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 118/147] jbd2: avoid transaction reuse after reformatting Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 119/147] ext4: Detect already used quota file early Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 120/147] PCI: dwc: Add link up check in dw_child_pcie_ops.map_bus() Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 121/147] KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 122/147] scsi: core: Clean up allocation and freeing of sgtables Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 123/147] gfs2: call truncate_inode_pages_final for address space glocks Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 124/147] gfs2: Fix NULL pointer dereference in gfs2_rgrp_dump Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 125/147] gfs2: use-after-free in sysfs deregistration Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 126/147] gfs2: add validation checks for size of superblock Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 127/147] Handle STATUS_IO_TIMEOUT gracefully Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 128/147] cifs: handle -EINTR in cifs_setattr Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 129/147] arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 130/147] ARM: dts: omap4: Fix sgx clock rate for 4430 Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 131/147] soc: imx: gpcv2: Use dev_err_probe() to simplify error handling Sasha Levin
2020-10-26 23:59   ` Fabio Estevam
2020-11-02  0:31     ` Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 132/147] memory: emif: Remove bogus debugfs " Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 133/147] ARM: dts: s5pv210: Enable audio on Aries boards Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 134/147] ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema warnings Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 135/147] ARM: dts: s5pv210: move fixed clocks under root node Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 136/147] ARM: dts: s5pv210: move PMU node out of clock controller Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 137/147] ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 138/147] ARM: dts: s5pv210: add RTC 32 KHz clock in Aries family Sasha Levin
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 139/147] ARM: dts: s5pv210: align SPI GPIO node name with dtschema in Aries Sasha Levin
2020-10-26 23:48 ` Sasha Levin [this message]
2020-10-26 23:48 ` [PATCH AUTOSEL 5.9 141/147] soc: ti: k3: ringacc: add am65x sr2.0 support Sasha Levin

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=20201026234905.1022767-140-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=dianders@chromium.org \
    --cc=ilina@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkshah@codeaurora.org \
    --cc=stable@vger.kernel.org \
    --cc=stanimir.varbanov@linaro.org \
    --cc=swboyd@chromium.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).