public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Boris Burkov <boris@bur.io>, Filipe Manana <fdmanana@suse.com>,
	David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>,
	clm@fb.com, josef@toxicpanda.com, linux-btrfs@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 024/153] btrfs: make btrfs_discard_workfn() block_group ref explicit
Date: Mon,  5 May 2025 19:11:11 -0400	[thread overview]
Message-ID: <20250505231320.2695319-24-sashal@kernel.org> (raw)
In-Reply-To: <20250505231320.2695319-1-sashal@kernel.org>

From: Boris Burkov <boris@bur.io>

[ Upstream commit 895c6721d310c036dcfebb5ab845822229fa35eb ]

Currently, the async discard machinery owns a ref to the block_group
when the block_group is queued on a discard list. However, to handle
races with discard cancellation and the discard workfn, we have a
specific logic to detect that the block_group is *currently* running in
the workfn, to protect the workfn's usage amidst cancellation.

As far as I can tell, this doesn't have any overt bugs (though
finish_discard_pass() and remove_from_discard_list() racing can have a
surprising outcome for the caller of remove_from_discard_list() in that
it is again added at the end).

But it is needlessly complicated to rely on locking and the nullity of
discard_ctl->block_group. Simplify this significantly by just taking a
refcount while we are in the workfn and unconditionally drop it in both
the remove and workfn paths, regardless of if they race.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/btrfs/discard.c | 34 ++++++++++++++++------------------
 1 file changed, 16 insertions(+), 18 deletions(-)

diff --git a/fs/btrfs/discard.c b/fs/btrfs/discard.c
index bd9dde374e5d8..3ddd0c24a94ea 100644
--- a/fs/btrfs/discard.c
+++ b/fs/btrfs/discard.c
@@ -151,13 +151,7 @@ static bool remove_from_discard_list(struct btrfs_discard_ctl *discard_ctl,
 	block_group->discard_eligible_time = 0;
 	queued = !list_empty(&block_group->discard_list);
 	list_del_init(&block_group->discard_list);
-	/*
-	 * If the block group is currently running in the discard workfn, we
-	 * don't want to deref it, since it's still being used by the workfn.
-	 * The workfn will notice this case and deref the block group when it is
-	 * finished.
-	 */
-	if (queued && !running)
+	if (queued)
 		btrfs_put_block_group(block_group);
 
 	spin_unlock(&discard_ctl->lock);
@@ -243,9 +237,10 @@ static struct btrfs_block_group *peek_discard_list(
 			block_group->discard_cursor = block_group->start;
 			block_group->discard_state = BTRFS_DISCARD_EXTENTS;
 		}
-		discard_ctl->block_group = block_group;
 	}
 	if (block_group) {
+		btrfs_get_block_group(block_group);
+		discard_ctl->block_group = block_group;
 		*discard_state = block_group->discard_state;
 		*discard_index = block_group->discard_index;
 	}
@@ -469,9 +464,20 @@ static void btrfs_discard_workfn(struct work_struct *work)
 
 	block_group = peek_discard_list(discard_ctl, &discard_state,
 					&discard_index, now);
-	if (!block_group || !btrfs_run_discard_work(discard_ctl))
+	if (!block_group)
 		return;
+	if (!btrfs_run_discard_work(discard_ctl)) {
+		spin_lock(&discard_ctl->lock);
+		btrfs_put_block_group(block_group);
+		discard_ctl->block_group = NULL;
+		spin_unlock(&discard_ctl->lock);
+		return;
+	}
 	if (now < block_group->discard_eligible_time) {
+		spin_lock(&discard_ctl->lock);
+		btrfs_put_block_group(block_group);
+		discard_ctl->block_group = NULL;
+		spin_unlock(&discard_ctl->lock);
 		btrfs_discard_schedule_work(discard_ctl, false);
 		return;
 	}
@@ -523,15 +529,7 @@ static void btrfs_discard_workfn(struct work_struct *work)
 	spin_lock(&discard_ctl->lock);
 	discard_ctl->prev_discard = trimmed;
 	discard_ctl->prev_discard_time = now;
-	/*
-	 * If the block group was removed from the discard list while it was
-	 * running in this workfn, then we didn't deref it, since this function
-	 * still owned that reference. But we set the discard_ctl->block_group
-	 * back to NULL, so we can use that condition to know that now we need
-	 * to deref the block_group.
-	 */
-	if (discard_ctl->block_group == NULL)
-		btrfs_put_block_group(block_group);
+	btrfs_put_block_group(block_group);
 	discard_ctl->block_group = NULL;
 	__btrfs_discard_schedule_work(discard_ctl, now, false);
 	spin_unlock(&discard_ctl->lock);
-- 
2.39.5


  parent reply	other threads:[~2025-05-05 23:14 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-05 23:10 [PATCH AUTOSEL 5.15 001/153] kconfig: merge_config: use an empty file as initfile Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 002/153] NFSv4: Check for delegation validity in nfs_start_delegation_return_locked() Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 003/153] tracing: Mark binary printing functions with __printf() attribute Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 004/153] mailbox: use error ret code of of_parse_phandle_with_args() Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 005/153] fbdev: fsl-diu-fb: add missing device_remove_file() Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 006/153] fbcon: Use correct erase colour for clearing in fbcon Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 007/153] fbdev: core: tileblit: Implement missing margin clearing for tileblit Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 008/153] NFSv4: Treat ENETUNREACH errors as fatal for state recovery Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 009/153] SUNRPC: rpc_clnt_set_transport() must not change the autobind setting Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 010/153] SUNRPC: rpcbind should never reset the port to the value '0' Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 011/153] thermal/drivers/qoriq: Power down TMU on system suspend Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 012/153] exit: fix the usage of delay_group_leader->exit_code in do_notify_parent() and pidfs_exit() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 013/153] dql: Fix dql->limit value when reset Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 014/153] lockdep: Fix wait context check on softirq for PREEMPT_RT Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 015/153] PCI: dwc: ep: Ensure proper iteration over outbound map windows Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 016/153] tools/build: Don't pass test log files to linker Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 017/153] pNFS/flexfiles: Report ENETDOWN as a connection error Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 018/153] PCI: vmd: Disable MSI remapping bypass under Xen Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 019/153] libnvdimm/labels: Fix divide error in nd_label_data_init() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 020/153] mmc: host: Wait for Vdd to settle on card power off Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 021/153] wifi: mt76: only mark tx-status-failed frames as ACKed on mt76x0/2 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 022/153] i2c: qup: Vote for interconnect bandwidth to DRAM Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 023/153] i2c: pxa: fix call balance of i2c->clk handling routines Sasha Levin
2025-05-05 23:11 ` Sasha Levin [this message]
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 025/153] btrfs: avoid linker error in btrfs_find_create_tree_block() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 026/153] btrfs: get zone unusable bytes while holding lock at btrfs_reclaim_bgs_work() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 027/153] btrfs: send: return -ENAMETOOLONG when attempting a path that is too long Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 028/153] i3c: master: svc: Fix missing STOP for master request Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 029/153] dlm: make tcp still work in multi-link env Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 030/153] clocksource/drivers/timer-riscv: Stop stimecmp when cpu hotplug Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 031/153] um: Store full CSGSFS and SS register from mcontext Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 032/153] um: Update min_low_pfn to match changes in uml_reserved Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 033/153] ext4: reorder capability check last Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 034/153] scsi: st: Tighten the page format heuristics with MODE SELECT Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 035/153] scsi: st: ERASE does not change tape location Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 036/153] vfio/pci: Handle INTx IRQ_NOTCONNECTED Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 037/153] tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 038/153] rtc: rv3032: fix EERD location Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 039/153] ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 040/153] kbuild: fix argument parsing in scripts/config Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 041/153] crypto: octeontx2 - suppress auth failure screaming due to negative tests Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 042/153] dm: restrict dm device size to 2^63-512 bytes Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 043/153] xen: Add support for XenServer 6.1 platform device Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 044/153] f2fs: defer readonly check vs norecovery Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 045/153] RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 046/153] posix-timers: Add cond_resched() to posix_timer_add() search loop Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 047/153] timer_list: Don't use %pK through printk() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 048/153] netfilter: conntrack: Bound nf_conntrack sysctl writes Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 049/153] arm64/mm: Check PUD_TYPE_TABLE in pud_bad() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 050/153] mmc: sdhci: Disable SD card clock before changing parameters Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 051/153] ipv6: save dontfrag in cork Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 052/153] auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common" Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 053/153] ASoC: qcom: sm8250: explicitly set format in sm8250_be_hw_params_fixup() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 054/153] cpufreq: tegra186: Share policy per cluster Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 055/153] crypto: lzo - Fix compression buffer overrun Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 056/153] arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 057/153] powerpc/prom_init: Fixup missing #size-cells on PowerBook6,7 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 058/153] tcp: bring back NUMA dispersion in inet_ehash_locks_alloc() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 059/153] rtc: ds1307: stop disabling alarms on probe Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 060/153] ieee802154: ca8210: Use proper setters and getters for bitwise types Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 061/153] ARM: tegra: Switch DSI-B clock parent to PLLD on Tegra114 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 062/153] media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 063/153] dm cache: prevent BUG_ON by blocking retries on failed device resumes Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 064/153] orangefs: Do not truncate file size Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 065/153] remoteproc: qcom_wcnss: Handle platforms with only single power domain Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 066/153] drm/amdgpu: Do not program AGP BAR regs under SRIOV in gfxhub_v1_0.c Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 067/153] media: cx231xx: set device_caps for 417 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 068/153] pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 069/153] net: ethernet: ti: cpsw_new: populate netdev of_node Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 070/153] net: pktgen: fix mpls maximum labels list parsing Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 071/153] ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 072/153] media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 073/153] clk: imx8mp: inform CCF of maximum frequency of clocks Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 074/153] x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2 Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 075/153] hwmon: (gpio-fan) Add missing mutex locks Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 076/153] ARM: at91: pm: fix at91_suspend_finish for ZQ calibration Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 077/153] drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 078/153] fpga: altera-cvp: Increase credit timeout Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 079/153] PCI: brcmstb: Expand inbound window size up to 64GB Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 080/153] PCI: brcmstb: Add a softdep to MIP MSI-X driver Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 081/153] firmware: arm_ffa: Set dma_mask for ffa devices Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 082/153] net/mlx5: Avoid report two health errors on same syndrome Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 083/153] selftests/net: have `gro.sh -t` return a correct exit code Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 084/153] drm/amdkfd: KFD release_work possible circular locking Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 085/153] net: xgene-v2: remove incorrect ACPI_PTR annotation Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 086/153] bonding: report duplicate MAC address in all situations Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 087/153] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 088/153] x86/build: Fix broken copy command in genimage.sh when making isoimage Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 089/153] drm/amd/display: handle max_downscale_src_width fail check Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 090/153] drm/amd/display: fix dcn4x init failed Sasha Levin
2025-05-06 15:00   ` Alex Deucher
2025-05-20 14:06     ` Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 091/153] x86/nmi: Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 092/153] cpuidle: menu: Avoid discarding useful information Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 093/153] libbpf: Fix out-of-bound read Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 094/153] x86/kaslr: Reduce KASLR entropy on most x86 systems Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 095/153] MIPS: Use arch specific syscall name match function Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 096/153] MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 097/153] clocksource: mips-gic-timer: Enable counter when CPUs start Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 098/153] scsi: mpt3sas: Send a diag reset if target reset fails Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 099/153] wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 100/153] wifi: rtw88: Fix rtw_init_ht_cap() " Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 101/153] wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31 Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 102/153] net: pktgen: fix access outside of user given buffer in pktgen_thread_write() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 103/153] EDAC/ie31200: work around false positive build warning Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 104/153] bpf: Prevent unsafe access to the sock fields in the BPF timestamping callback Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 105/153] RDMA/core: Fix best page size finding when it can cross SG entries Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 106/153] can: c_can: Use of_property_present() to test existence of DT property Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 107/153] eth: mlx4: don't try to complete XDP frames in netpoll Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 108/153] PCI: Fix old_size lower bound in calculate_iosize() too Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 109/153] ACPI: HED: Always initialize before evged Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 110/153] net/mlx5: Modify LSB bitmask in temperature event to include only the first bit Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 111/153] net/mlx5: Apply rate-limiting to high temperature warning Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 112/153] ASoC: ops: Enforce platform maximum on initial value Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 113/153] ASoC: tas2764: Power up/down amp on mute ops Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 114/153] ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 115/153] pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 116/153] smack: recognize ipv4 CIPSO w/o categories Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 117/153] media: v4l: Memset argument to 0 before calling get_mbus_config pad op Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 118/153] libbpf: fix LDX/STX/ST CO-RE relocation size adjustment logic Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 119/153] net/mlx4_core: Avoid impossible mlx4_db_alloc() order value Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 120/153] phy: core: don't require set_mode() callback for phy_get_mode() to work Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 121/153] drm/amdgpu: reset psp->cmd to NULL after releasing the buffer Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 122/153] drm/amd/display: Initial psr_version with correct setting Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 123/153] net/mlx5: Extend Ethtool loopback selftest to support non-linear SKB Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 124/153] net/mlx5e: set the tx_queue_len for pfifo_fast Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 125/153] net/mlx5e: reduce rep rxq depth to 256 for ECPF Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 126/153] wifi: mac80211: don't unconditionally call drv_mgd_complete_tx() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 127/153] wifi: mac80211: remove misplaced drv_mgd_complete_tx() call Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 128/153] arch/powerpc/perf: Check the instruction type before creating sample with perf_mem_data_src Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 129/153] ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 130/153] r8152: add vendor/device ID pair for Dell Alienware AW1022z Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 131/153] wifi: rtw88: Fix download_firmware_validate() for RTL8814AU Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 132/153] clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 133/153] exit: change the release_task() paths to call flush_sigqueue() lockless Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 134/153] hwmon: (xgene-hwmon) use appropriate type for the latency value Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 135/153] media: qcom: camss: csid: Only add TPG v4l2 ctrl if TPG hardware is available Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 136/153] vxlan: Annotate FDB data races Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 137/153] r8169: don't scan PHY addresses > 0 Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 138/153] net-sysfs: prevent uncleared queues from being re-added Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 139/153] rcu: handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 140/153] rcu: fix header guard for rcu_all_qs() Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 141/153] net/mana: fix warning in the writer of client oob Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 142/153] scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 143/153] scsi: st: Restore some drive settings after reset Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 144/153] HID: usbkbd: Fix the bit shift number for LED_KANA Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 145/153] drm/ast: Find VBIOS mode from regular display size Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 146/153] bpftool: Fix readlink usage in get_fd_type Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 147/153] perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 148/153] wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 149/153] spi: zynqmp-gqspi: Always acknowledge interrupts Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 150/153] regulator: ad5398: Add device tree support Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 151/153] wifi: ath9k: return by of_get_mac_address Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 152/153] drm/atomic: clarify the rules around drm_atomic_state->allow_modeset Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 153/153] drm: Add valid clones check 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=20250505231320.2695319-24-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=boris@bur.io \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=fdmanana@suse.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.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