public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Hanna Czenczek <hreitz@redhat.com>,
	Josef Bacik <josef@toxicpanda.com>,
	Filipe Manana <fdmanana@suse.com>,
	David Sterba <dsterba@suse.com>
Subject: [PATCH 6.6 175/189] btrfs: fix corruption after buffer fault in during direct IO append write
Date: Mon, 12 Aug 2024 18:03:51 +0200	[thread overview]
Message-ID: <20240812160138.884264463@linuxfoundation.org> (raw)
In-Reply-To: <20240812160132.135168257@linuxfoundation.org>

6.6-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Filipe Manana <fdmanana@suse.com>

commit 939b656bc8ab203fdbde26ccac22bcb7f0985be5 upstream.

During an append (O_APPEND write flag) direct IO write if the input buffer
was not previously faulted in, we can corrupt the file in a way that the
final size is unexpected and it includes an unexpected hole.

The problem happens like this:

1) We have an empty file, with size 0, for example;

2) We do an O_APPEND direct IO with a length of 4096 bytes and the input
   buffer is not currently faulted in;

3) We enter btrfs_direct_write(), lock the inode and call
   generic_write_checks(), which calls generic_write_checks_count(), and
   that function sets the iocb position to 0 with the following code:

	if (iocb->ki_flags & IOCB_APPEND)
		iocb->ki_pos = i_size_read(inode);

4) We call btrfs_dio_write() and enter into iomap, which will end up
   calling btrfs_dio_iomap_begin() and that calls
   btrfs_get_blocks_direct_write(), where we update the i_size of the
   inode to 4096 bytes;

5) After btrfs_dio_iomap_begin() returns, iomap will attempt to access
   the page of the write input buffer (at iomap_dio_bio_iter(), with a
   call to bio_iov_iter_get_pages()) and fail with -EFAULT, which gets
   returned to btrfs at btrfs_direct_write() via btrfs_dio_write();

6) At btrfs_direct_write() we get the -EFAULT error, unlock the inode,
   fault in the write buffer and then goto to the label 'relock';

7) We lock again the inode, do all the necessary checks again and call
   again generic_write_checks(), which calls generic_write_checks_count()
   again, and there we set the iocb's position to 4K, which is the current
   i_size of the inode, with the following code pointed above:

        if (iocb->ki_flags & IOCB_APPEND)
                iocb->ki_pos = i_size_read(inode);

8) Then we go again to btrfs_dio_write() and enter iomap and the write
   succeeds, but it wrote to the file range [4K, 8K), leaving a hole in
   the [0, 4K) range and an i_size of 8K, which goes against the
   expectations of having the data written to the range [0, 4K) and get an
   i_size of 4K.

Fix this by not unlocking the inode before faulting in the input buffer,
in case we get -EFAULT or an incomplete write, and not jumping to the
'relock' label after faulting in the buffer - instead jump to a location
immediately before calling iomap, skipping all the write checks and
relocking. This solves this problem and it's fine even in case the input
buffer is memory mapped to the same file range, since only holding the
range locked in the inode's io tree can cause a deadlock, it's safe to
keep the inode lock (VFS lock), as was fixed and described in commit
51bd9563b678 ("btrfs: fix deadlock due to page faults during direct IO
reads and writes").

A sample reproducer provided by a reporter is the following:

   $ cat test.c
   #ifndef _GNU_SOURCE
   #define _GNU_SOURCE
   #endif

   #include <fcntl.h>
   #include <stdio.h>
   #include <sys/mman.h>
   #include <sys/stat.h>
   #include <unistd.h>

   int main(int argc, char *argv[])
   {
       if (argc < 2) {
           fprintf(stderr, "Usage: %s <test file>\n", argv[0]);
           return 1;
       }

       int fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC | O_DIRECT |
                     O_APPEND, 0644);
       if (fd < 0) {
           perror("creating test file");
           return 1;
       }

       char *buf = mmap(NULL, 4096, PROT_READ,
                        MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
       ssize_t ret = write(fd, buf, 4096);
       if (ret < 0) {
           perror("pwritev2");
           return 1;
       }

       struct stat stbuf;
       ret = fstat(fd, &stbuf);
       if (ret < 0) {
           perror("stat");
           return 1;
       }

       printf("size: %llu\n", (unsigned long long)stbuf.st_size);
       return stbuf.st_size == 4096 ? 0 : 1;
   }

A test case for fstests will be sent soon.

Reported-by: Hanna Czenczek <hreitz@redhat.com>
Link: https://lore.kernel.org/linux-btrfs/0b841d46-12fe-4e64-9abb-871d8d0de271@redhat.com/
Fixes: 8184620ae212 ("btrfs: fix lost file sync on direct IO write with nowait and dsync iocb")
CC: stable@vger.kernel.org # 6.1+
Tested-by: Hanna Czenczek <hreitz@redhat.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/ctree.h |    1 +
 fs/btrfs/file.c  |   55 ++++++++++++++++++++++++++++++++++++++++++-------------
 2 files changed, 43 insertions(+), 13 deletions(-)

--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -445,6 +445,7 @@ struct btrfs_file_private {
 	void *filldir_buf;
 	u64 last_index;
 	struct extent_state *llseek_cached_state;
+	bool fsync_skip_inode_lock;
 };
 
 static inline u32 BTRFS_LEAF_DATA_SIZE(const struct btrfs_fs_info *info)
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1535,21 +1535,37 @@ relock:
 	 * So here we disable page faults in the iov_iter and then retry if we
 	 * got -EFAULT, faulting in the pages before the retry.
 	 */
+again:
 	from->nofault = true;
 	dio = btrfs_dio_write(iocb, from, written);
 	from->nofault = false;
 
-	/*
-	 * iomap_dio_complete() will call btrfs_sync_file() if we have a dsync
-	 * iocb, and that needs to lock the inode. So unlock it before calling
-	 * iomap_dio_complete() to avoid a deadlock.
-	 */
-	btrfs_inode_unlock(BTRFS_I(inode), ilock_flags);
-
-	if (IS_ERR_OR_NULL(dio))
+	if (IS_ERR_OR_NULL(dio)) {
 		err = PTR_ERR_OR_ZERO(dio);
-	else
+	} else {
+		struct btrfs_file_private stack_private = { 0 };
+		struct btrfs_file_private *private;
+		const bool have_private = (file->private_data != NULL);
+
+		if (!have_private)
+			file->private_data = &stack_private;
+
+		/*
+		 * If we have a synchoronous write, we must make sure the fsync
+		 * triggered by the iomap_dio_complete() call below doesn't
+		 * deadlock on the inode lock - we are already holding it and we
+		 * can't call it after unlocking because we may need to complete
+		 * partial writes due to the input buffer (or parts of it) not
+		 * being already faulted in.
+		 */
+		private = file->private_data;
+		private->fsync_skip_inode_lock = true;
 		err = iomap_dio_complete(dio);
+		private->fsync_skip_inode_lock = false;
+
+		if (!have_private)
+			file->private_data = NULL;
+	}
 
 	/* No increment (+=) because iomap returns a cumulative value. */
 	if (err > 0)
@@ -1576,10 +1592,12 @@ relock:
 		} else {
 			fault_in_iov_iter_readable(from, left);
 			prev_left = left;
-			goto relock;
+			goto again;
 		}
 	}
 
+	btrfs_inode_unlock(BTRFS_I(inode), ilock_flags);
+
 	/*
 	 * If 'err' is -ENOTBLK or we have not written all data, then it means
 	 * we must fallback to buffered IO.
@@ -1778,6 +1796,7 @@ static inline bool skip_inode_logging(co
  */
 int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
 {
+	struct btrfs_file_private *private = file->private_data;
 	struct dentry *dentry = file_dentry(file);
 	struct inode *inode = d_inode(dentry);
 	struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
@@ -1787,6 +1806,7 @@ int btrfs_sync_file(struct file *file, l
 	int ret = 0, err;
 	u64 len;
 	bool full_sync;
+	const bool skip_ilock = (private ? private->fsync_skip_inode_lock : false);
 
 	trace_btrfs_sync_file(file, datasync);
 
@@ -1814,7 +1834,10 @@ int btrfs_sync_file(struct file *file, l
 	if (ret)
 		goto out;
 
-	btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_MMAP);
+	if (skip_ilock)
+		down_write(&BTRFS_I(inode)->i_mmap_lock);
+	else
+		btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_MMAP);
 
 	atomic_inc(&root->log_batch);
 
@@ -1838,7 +1861,10 @@ int btrfs_sync_file(struct file *file, l
 	 */
 	ret = start_ordered_ops(inode, start, end);
 	if (ret) {
-		btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP);
+		if (skip_ilock)
+			up_write(&BTRFS_I(inode)->i_mmap_lock);
+		else
+			btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP);
 		goto out;
 	}
 
@@ -1941,7 +1967,10 @@ int btrfs_sync_file(struct file *file, l
 	 * file again, but that will end up using the synchronization
 	 * inside btrfs_sync_log to keep things safe.
 	 */
-	btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP);
+	if (skip_ilock)
+		up_write(&BTRFS_I(inode)->i_mmap_lock);
+	else
+		btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP);
 
 	if (ret == BTRFS_NO_LOG_SYNC) {
 		ret = btrfs_end_transaction(trans);



  parent reply	other threads:[~2024-08-12 16:22 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-12 16:00 [PATCH 6.6 000/189] 6.6.46-rc1 review Greg Kroah-Hartman
2024-08-12 16:00 ` [PATCH 6.6 001/189] irqchip/mbigen: Fix mbigen node address layout Greg Kroah-Hartman
2024-08-12 16:00 ` [PATCH 6.6 002/189] platform/x86/intel/ifs: Store IFS generation number Greg Kroah-Hartman
2024-08-12 16:00 ` [PATCH 6.6 003/189] platform/x86/intel/ifs: Gen2 Scan test support Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 004/189] platform/x86/intel/ifs: Initialize union ifs_status to zero Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 005/189] jump_label: Fix the fix, brown paper bags galore Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 006/189] x86/mm: Fix pti_clone_pgtable() alignment assumption Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 007/189] x86/mm: Fix pti_clone_entry_text() for i386 Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 008/189] smb: client: handle lack of FSCTL_GET_REPARSE_POINT support Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 009/189] wifi: ath12k: rename the sc naming convention to ab Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 010/189] wifi: ath12k: add CE and ext IRQ flag to indicate irq_handler Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 011/189] wifi: ath12k: fix soft lockup on suspend Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 012/189] sctp: Fix null-ptr-deref in reuseport_add_sock() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 013/189] net: usb: qmi_wwan: fix memory leak for not ip packets Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 014/189] net: bridge: mcast: wait for previous gc cycles when removing port Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 015/189] net: linkwatch: use system_unbound_wq Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 016/189] ice: Fix reset handler Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 017/189] Bluetooth: l2cap: always unlock channel in l2cap_conless_channel() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 018/189] Bluetooth: hci_sync: avoid dup filtering when passive scanning with adv monitor Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 019/189] net/smc: add the max value of fallback reason count Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 020/189] net: dsa: bcm_sf2: Fix a possible memory leak in bcm_sf2_mdio_register() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 021/189] l2tp: fix lockdep splat Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 022/189] net: bcmgenet: Properly overlay PHY and MAC Wake-on-LAN capabilities Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 023/189] net: fec: Stop PPS on driver remove Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 024/189] gpio: prevent potential speculation leaks in gpio_device_get_desc() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 025/189] hwmon: corsair-psu: add USB id of HX1200i Series 2023 psu Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 026/189] rcutorture: Fix rcu_torture_fwd_cb_cr() data race Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 027/189] md: do not delete safemode_timer in mddev_suspend Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 028/189] md/raid5: avoid BUG_ON() while continue reshape after reassembling Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 029/189] block: change rq_integrity_vec to respect the iterator Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 030/189] rcu: Fix rcu_barrier() VS post CPUHP_TEARDOWN_CPU invocation Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 031/189] clocksource/drivers/sh_cmt: Address race condition for clock events Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 032/189] ACPI: battery: create alarm sysfs attribute atomically Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 033/189] ACPI: SBS: manage alarm sysfs attribute through psy core Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 034/189] xen: privcmd: Switch from mutex to spinlock for irqfds Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 035/189] wifi: nl80211: disallow setting special AP channel widths Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 036/189] wifi: ath12k: fix memory leak in ath12k_dp_rx_peer_frag_setup() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 037/189] net/mlx5e: SHAMPO, Fix invalid WQ linked list unlink Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 038/189] selftests/bpf: Fix send_signal test with nested CONFIG_PARAVIRT Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 039/189] af_unix: Dont retry after unix_state_lock_nested() in unix_stream_connect() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 040/189] PCI: Add Edimax Vendor ID to pci_ids.h Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 041/189] udf: prevent integer overflow in udf_bitmap_free_blocks() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 042/189] wifi: nl80211: dont give key data to userspace Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 043/189] can: mcp251xfd: tef: prepare to workaround broken TEF FIFO tail index erratum Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 044/189] can: mcp251xfd: tef: update workaround for erratum DS80000789E 6 of mcp2518fd Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 045/189] net: stmmac: qcom-ethqos: enable SGMII loopback during DMA reset on sa8775p-ride-r3 Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 046/189] btrfs: do not clear page dirty inside extent_write_locked_range() Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 047/189] btrfs: fix bitmap leak when loading free space cache on duplicate entry Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 048/189] Bluetooth: btnxpuart: Shutdown timer and prevent rearming when driver unloading Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 049/189] drm/amd/display: Add delay to improve LTTPR UHBR interop Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 050/189] drm/amdgpu: fix potential resource leak warning Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 051/189] drm/amdgpu/pm: Fix the param type of set_power_profile_mode Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 052/189] drm/amdgpu/pm: Fix the null pointer dereference for smu7 Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 053/189] drm/amdgpu: Fix the null pointer dereference to ras_manager Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 054/189] drm/amdgpu/pm: Fix the null pointer dereference in apply_state_adjust_rules Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 055/189] drm/admgpu: fix dereferencing null pointer context Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 056/189] drm/amdgpu: Add lock around VF RLCG interface Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 057/189] drm/amd/pm: Fix the null pointer dereference for vega10_hwmgr Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 058/189] media: amphion: Remove lock in s_ctrl callback Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 059/189] drm/amd/display: Add NULL check for afb before dereferencing in amdgpu_dm_plane_handle_cursor_update Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 060/189] drm/amd/display: Add null checker before passing variables Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 061/189] media: uvcvideo: Ignore empty TS packets Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 062/189] media: uvcvideo: Fix the bandwdith quirk on USB 3.x Greg Kroah-Hartman
2024-08-12 16:01 ` [PATCH 6.6 063/189] media: xc2028: avoid use-after-free in load_firmware_cb() Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 064/189] ext4: fix uninitialized variable in ext4_inlinedir_to_tree Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 065/189] jbd2: avoid memleak in jbd2_journal_write_metadata_buffer Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 066/189] s390/sclp: Prevent release of buffer in I/O Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 067/189] SUNRPC: Fix a race to wake a sync task Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 068/189] profiling: remove profile=sleep support Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 069/189] scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 070/189] irqchip/meson-gpio: Convert meson_gpio_irq_controller::lock to raw_spinlock_t Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 071/189] irqchip/loongarch-cpu: Fix return value of lpic_gsi_to_irq() Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 072/189] sched/cputime: Fix mul_u64_u64_div_u64() precision for cputime Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 073/189] net: drop bad gso csum_start and offset in virtio_net_hdr Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 074/189] arm64: Add Neoverse-V2 part Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 075/189] arm64: barrier: Restore spec_bar() macro Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 076/189] arm64: cputype: Add Cortex-X4 definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 077/189] arm64: cputype: Add Neoverse-V3 definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 078/189] arm64: errata: Add workaround for Arm errata 3194386 and 3312417 Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 079/189] arm64: cputype: Add Cortex-X3 definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 080/189] arm64: cputype: Add Cortex-A720 definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 081/189] arm64: cputype: Add Cortex-X925 definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 082/189] arm64: errata: Unify speculative SSBS errata logic Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 083/189] arm64: errata: Expand speculative SSBS workaround Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 084/189] arm64: cputype: Add Cortex-X1C definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 085/189] arm64: cputype: Add Cortex-A725 definitions Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 086/189] arm64: errata: Expand speculative SSBS workaround (again) Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 087/189] i2c: smbus: Improve handling of stuck alerts Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 088/189] ASoC: codecs: wcd938x-sdw: Correct Soundwire ports mask Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 089/189] ASoC: codecs: wsa881x: " Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 090/189] ASoC: codecs: wsa883x: parse port-mapping information Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 091/189] ASoC: codecs: wsa883x: Correct Soundwire ports mask Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 092/189] ASoC: codecs: wsa884x: parse port-mapping information Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 093/189] ASoC: codecs: wsa884x: Correct Soundwire ports mask Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 094/189] ASoC: sti: add missing probe entry for player and reader Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 095/189] spi: spidev: Add missing spi_device_id for bh2228fv Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 096/189] ASoC: SOF: Remove libraries from topology lookups Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 097/189] i2c: smbus: Send alert notifications to all devices if source not found Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 098/189] bpf: kprobe: remove unused declaring of bpf_kprobe_override Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 099/189] kprobes: Fix to check symbol prefixes correctly Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 100/189] i2c: qcom-geni: Add missing clk_disable_unprepare in geni_i2c_runtime_resume Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 101/189] i2c: qcom-geni: Add missing geni_icc_disable " Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 102/189] spi: spi-fsl-lpspi: Fix scldiv calculation Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 103/189] ALSA: usb-audio: Re-add ScratchAmp quirk entries Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 104/189] ASoC: meson: axg-fifo: fix irq scheduling issue with PREEMPT_RT Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 105/189] cifs: cifs_inval_name_dfs_link_error: correct the check for fullpath Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 106/189] module: warn about excessively long module waits Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 107/189] module: make waiting for a concurrent module loader interruptible Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 108/189] drm/i915/gem: Fix Virtual Memory mapping boundaries calculation Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 109/189] drm/amd/display: Skip Recompute DSC Params if no Stream on Link Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 110/189] drm/amdgpu: Forward soft recovery errors to userspace Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 111/189] drm/i915/gem: Adjust vma offset for framebuffer mmap offset Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 112/189] drm/client: fix null pointer dereference in drm_client_modeset_probe Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 113/189] ALSA: line6: Fix racy access to midibuf Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 114/189] ALSA: hda: Add HP MP9 G4 Retail System AMS to force connect list Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 115/189] ALSA: hda/realtek: Add Framework Laptop 13 (Intel Core Ultra) to quirks Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 116/189] ALSA: hda/hdmi: Yet more pin fix for HP EliteDesk 800 G4 Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 117/189] usb: vhci-hcd: Do not drop references before new references are gained Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 118/189] USB: serial: debug: do not echo input by default Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 119/189] usb: gadget: core: Check for unset descriptor Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 120/189] usb: gadget: midi2: Fix the response for FB info with block 0xff Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 121/189] usb: gadget: u_serial: Set start_delayed during suspend Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 122/189] usb: gadget: u_audio: Check return codes from usb_ep_enable and config_ep_by_speed Greg Kroah-Hartman
2024-08-12 16:02 ` [PATCH 6.6 123/189] scsi: mpi3mr: Avoid IOMMU page faults on REPORT ZONES Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 124/189] scsi: ufs: core: Do not set link to OFF state while waking up from hibernation Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 125/189] scsi: ufs: core: Fix hba->last_dme_cmd_tstamp timestamp updating logic Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 126/189] tick/broadcast: Move per CPU pointer access into the atomic section Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 127/189] vhost-vdpa: switch to use vmf_insert_pfn() in the fault handler Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 128/189] ntp: Clamp maxerror and esterror to operating range Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 129/189] clocksource: Scale the watchdog read retries automatically Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 130/189] clocksource: Fix brown-bag boolean thinko in cs_watchdog_read() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 131/189] driver core: Fix uevent_show() vs driver detach race Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 132/189] tracefs: Fix inode allocation Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 133/189] tracefs: Use generic inode RCU for synchronizing freeing Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 134/189] ntp: Safeguard against time_constant overflow Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 135/189] timekeeping: Fix bogus clock_was_set() invocation in do_adjtimex() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 136/189] serial: core: check uartclk for zero to avoid divide by zero Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 137/189] memcg: protect concurrent access to mem_cgroup_idr Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 138/189] parisc: fix unaligned accesses in BPF Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 139/189] parisc: fix a possible DMA corruption Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 140/189] ASoC: amd: yc: Add quirk entry for OMEN by HP Gaming Laptop 16-n0xxx Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 141/189] kcov: properly check for softirq context Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 142/189] irqchip/xilinx: Fix shift out of bounds Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 143/189] genirq/irqdesc: Honor caller provided affinity in alloc_desc() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 144/189] LoongArch: Enable general EFI poweroff method Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 145/189] power: supply: qcom_battmgr: return EAGAIN when firmware service is not up Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 146/189] power: supply: axp288_charger: Fix constant_charge_voltage writes Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 147/189] power: supply: axp288_charger: Round constant_charge_voltage writes down Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 148/189] tracing: Fix overflow in get_free_elt() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 149/189] padata: Fix possible divide-by-0 panic in padata_mt_helper() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 150/189] smb3: fix setting SecurityFlags when encryption is required Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 151/189] eventfs: Dont return NULL in eventfs_create_dir() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 152/189] eventfs: Use SRCU for freeing eventfs_inodes Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 153/189] selftests: mm: add s390 to ARCH check Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 154/189] btrfs: avoid using fixed char array size for tree names Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 155/189] x86/paravirt: Fix incorrect virt spinlock setting on bare metal Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 156/189] x86/mtrr: Check if fixed MTRRs exist before saving them Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 157/189] sched/smt: Introduce sched_smt_present_inc/dec() helper Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 158/189] sched/smt: Fix unbalance sched_smt_present dec/inc Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 159/189] sched/core: Introduce sched_set_rq_on/offline() helper Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 160/189] sched/core: Fix unbalance set_rq_online/offline() in sched_cpu_deactivate() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 161/189] drm/bridge: analogix_dp: properly handle zero sized AUX transactions Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 162/189] drm/dp_mst: Skip CSN if topology probing is not done yet Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 163/189] drm/lima: Mark simple_ondemand governor as softdep Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 164/189] drm/mgag200: Set DDC timeout in milliseconds Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 165/189] drm/mgag200: Bind I2C lifetime to DRM device Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 166/189] drm/radeon: Remove __counted_by from StateArray.states[] Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 167/189] mptcp: fully established after ADD_ADDR echo on MPJ Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 168/189] mptcp: pm: fix backup support in signal endpoints Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 169/189] selftests: mptcp: fix error path Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 170/189] mptcp: pm: deny endp with signal + subflow + port Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 171/189] block: use the right type for stub rq_integrity_vec() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 172/189] Revert "drm/amd/display: Add NULL check for afb before dereferencing in amdgpu_dm_plane_handle_cursor_update" Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 173/189] mm: huge_memory: dont force huge page alignment on 32 bit Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 174/189] mm: huge_memory: use !CONFIG_64BIT to relax huge page alignment on 32 bit machines Greg Kroah-Hartman
2024-08-12 16:03 ` Greg Kroah-Hartman [this message]
2024-08-12 16:03 ` [PATCH 6.6 176/189] netfilter: nf_tables: prefer nft_chain_validate Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 177/189] ipv6: fix source address selection with route leak Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 178/189] tools headers arm64: Sync arm64s cputype.h with the kernel sources Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 179/189] mm/hugetlb: fix potential race in __update_and_free_hugetlb_folio() Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 180/189] nouveau: set placement to original placement on uvmm validate Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 181/189] xfs: fix log recovery buffer allocation for the legacy h_size fixup Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 182/189] drm/amd/display: Defer handling mst up request in resume Greg Kroah-Hartman
2024-08-12 16:03 ` [PATCH 6.6 183/189] mptcp: pm: reduce indentation blocks Greg Kroah-Hartman
2024-08-12 16:04 ` [PATCH 6.6 184/189] mptcp: pm: dont try to create sf if alloc failed Greg Kroah-Hartman
2024-08-12 16:04 ` [PATCH 6.6 185/189] mptcp: pm: do not ignore subflow if signal flag is also set Greg Kroah-Hartman
2024-08-12 16:04 ` [PATCH 6.6 186/189] selftests: mptcp: join: ability to invert ADD_ADDR check Greg Kroah-Hartman
2024-08-12 16:04 ` [PATCH 6.6 187/189] selftests: mptcp: join: test both signal & subflow Greg Kroah-Hartman
2024-08-12 16:04 ` [PATCH 6.6 188/189] Revert "selftests: mptcp: simult flows: mark unbalanced tests as flaky" Greg Kroah-Hartman
2024-08-12 16:04 ` [PATCH 6.6 189/189] btrfs: fix double inode unlock for direct IO sync writes Greg Kroah-Hartman
2024-08-12 23:35 ` [PATCH 6.6 000/189] 6.6.46-rc1 review ChromeOS Kernel Stable Merge
2024-08-13  6:37 ` Naresh Kamboju
2024-08-13 10:09 ` Peter Schneider
2024-08-13 11:11 ` Takeshi Ogasawara
2024-08-13 11:24 ` Mark Brown
2024-08-13 17:19 ` Florian Fainelli
2024-08-13 18:40 ` Jon Hunter
2024-08-13 19:41 ` Ron Economos
2024-08-17 16:22 ` Allen

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=20240812160138.884264463@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dsterba@suse.com \
    --cc=fdmanana@suse.com \
    --cc=hreitz@redhat.com \
    --cc=josef@toxicpanda.com \
    --cc=patches@lists.linux.dev \
    --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