]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 May 2023 06:51:53 +0000 (15:51 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 May 2023 06:51:53 +0000 (15:51 +0900)
added patches:
i2c-omap-fix-standard-mode-false-ack-readings.patch
igc-read-before-write-to-srrctl-register.patch
iommu-amd-fix-guest-virtual-apic-table-root-pointer-configuration-in-irte.patch
ksmbd-call-rcu_barrier-in-ksmbd_server_exit.patch
ksmbd-fix-memleak-in-session-setup.patch
ksmbd-fix-null-pointer-dereference-in-smb2_get_info_filesystem.patch
riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch
tracing-fix-permissions-for-the-buffer_percent-file.patch

queue-5.15/i2c-omap-fix-standard-mode-false-ack-readings.patch [new file with mode: 0644]
queue-5.15/igc-read-before-write-to-srrctl-register.patch [new file with mode: 0644]
queue-5.15/iommu-amd-fix-guest-virtual-apic-table-root-pointer-configuration-in-irte.patch [new file with mode: 0644]
queue-5.15/ksmbd-call-rcu_barrier-in-ksmbd_server_exit.patch [new file with mode: 0644]
queue-5.15/ksmbd-fix-memleak-in-session-setup.patch [new file with mode: 0644]
queue-5.15/ksmbd-fix-null-pointer-dereference-in-smb2_get_info_filesystem.patch [new file with mode: 0644]
queue-5.15/riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch [new file with mode: 0644]
queue-5.15/series
queue-5.15/tracing-fix-permissions-for-the-buffer_percent-file.patch [new file with mode: 0644]
queue-5.15/writeback-cgroup-fix-null-ptr-deref-write-in-bdi_spl.patch

diff --git a/queue-5.15/i2c-omap-fix-standard-mode-false-ack-readings.patch b/queue-5.15/i2c-omap-fix-standard-mode-false-ack-readings.patch
new file mode 100644 (file)
index 0000000..fb8ac37
--- /dev/null
@@ -0,0 +1,37 @@
+From c770657bd2611b077ec1e7b1fe6aa92f249399bd Mon Sep 17 00:00:00 2001
+From: Reid Tonking <reidt@ti.com>
+Date: Wed, 26 Apr 2023 14:49:56 -0500
+Subject: i2c: omap: Fix standard mode false ACK readings
+
+From: Reid Tonking <reidt@ti.com>
+
+commit c770657bd2611b077ec1e7b1fe6aa92f249399bd upstream.
+
+Using standard mode, rare false ACK responses were appearing with
+i2cdetect tool. This was happening due to NACK interrupt triggering
+ISR thread before register access interrupt was ready. Removing the
+NACK interrupt's ability to trigger ISR thread lets register access
+ready interrupt do this instead.
+
+Cc: <stable@vger.kernel.org> # v3.7+
+Fixes: 3b2f8f82dad7 ("i2c: omap: switch to threaded IRQ support")
+Signed-off-by: Reid Tonking <reidt@ti.com>
+Acked-by: Vignesh Raghavendra <vigneshr@ti.com>
+Reviewed-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/i2c/busses/i2c-omap.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/i2c/busses/i2c-omap.c
++++ b/drivers/i2c/busses/i2c-omap.c
+@@ -1058,7 +1058,7 @@ omap_i2c_isr(int irq, void *dev_id)
+       u16 stat;
+       stat = omap_i2c_read_reg(omap, OMAP_I2C_STAT_REG);
+-      mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG);
++      mask = omap_i2c_read_reg(omap, OMAP_I2C_IE_REG) & ~OMAP_I2C_STAT_NACK;
+       if (stat & mask)
+               ret = IRQ_WAKE_THREAD;
diff --git a/queue-5.15/igc-read-before-write-to-srrctl-register.patch b/queue-5.15/igc-read-before-write-to-srrctl-register.patch
new file mode 100644 (file)
index 0000000..3babe07
--- /dev/null
@@ -0,0 +1,89 @@
+From 3ce29c17dc847bf4245e16aad78a7617afa96297 Mon Sep 17 00:00:00 2001
+From: Song Yoong Siang <yoong.siang.song@intel.com>
+Date: Tue, 2 May 2023 08:48:06 -0700
+Subject: igc: read before write to SRRCTL register
+
+From: Song Yoong Siang <yoong.siang.song@intel.com>
+
+commit 3ce29c17dc847bf4245e16aad78a7617afa96297 upstream.
+
+igc_configure_rx_ring() function will be called as part of XDP program
+setup. If Rx hardware timestamp is enabled prio to XDP program setup,
+this timestamp enablement will be overwritten when buffer size is
+written into SRRCTL register.
+
+Thus, this commit read the register value before write to SRRCTL
+register. This commit is tested by using xdp_hw_metadata bpf selftest
+tool. The tool enables Rx hardware timestamp and then attach XDP program
+to igc driver. It will display hardware timestamp of UDP packet with
+port number 9092. Below are detail of test steps and results.
+
+Command on DUT:
+  sudo ./xdp_hw_metadata <interface name>
+
+Command on Link Partner:
+  echo -n skb | nc -u -q1 <destination IPv4 addr> 9092
+
+Result before this patch:
+  skb hwtstamp is not found!
+
+Result after this patch:
+  found skb hwtstamp = 1677800973.642836757
+
+Optionally, read PHC to confirm the values obtained are almost the same:
+Command:
+  sudo ./testptp -d /dev/ptp0 -g
+Result:
+  clock time: 1677800973.913598978 or Fri Mar  3 07:49:33 2023
+
+Fixes: fc9df2a0b520 ("igc: Enable RX via AF_XDP zero-copy")
+Cc: <stable@vger.kernel.org> # 5.14+
+Signed-off-by: Song Yoong Siang <yoong.siang.song@intel.com>
+Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
+Reviewed-by: Jesper Dangaard Brouer <brouer@redhat.com>
+Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
+Tested-by: Naama Meir <naamax.meir@linux.intel.com>
+Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
+Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/intel/igc/igc_base.h |   11 ++++++++---
+ drivers/net/ethernet/intel/igc/igc_main.c |    7 +++++--
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/ethernet/intel/igc/igc_base.h
++++ b/drivers/net/ethernet/intel/igc/igc_base.h
+@@ -85,8 +85,13 @@ union igc_adv_rx_desc {
+ #define IGC_RXDCTL_SWFLUSH            0x04000000 /* Receive Software Flush */
+ /* SRRCTL bit definitions */
+-#define IGC_SRRCTL_BSIZEPKT_SHIFT             10 /* Shift _right_ */
+-#define IGC_SRRCTL_BSIZEHDRSIZE_SHIFT         2  /* Shift _left_ */
+-#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF        0x02000000
++#define IGC_SRRCTL_BSIZEPKT_MASK      GENMASK(6, 0)
++#define IGC_SRRCTL_BSIZEPKT(x)                FIELD_PREP(IGC_SRRCTL_BSIZEPKT_MASK, \
++                                      (x) / 1024) /* in 1 KB resolution */
++#define IGC_SRRCTL_BSIZEHDR_MASK      GENMASK(13, 8)
++#define IGC_SRRCTL_BSIZEHDR(x)                FIELD_PREP(IGC_SRRCTL_BSIZEHDR_MASK, \
++                                      (x) / 64) /* in 64 bytes resolution */
++#define IGC_SRRCTL_DESCTYPE_MASK      GENMASK(27, 25)
++#define IGC_SRRCTL_DESCTYPE_ADV_ONEBUF        FIELD_PREP(IGC_SRRCTL_DESCTYPE_MASK, 1)
+ #endif /* _IGC_BASE_H */
+--- a/drivers/net/ethernet/intel/igc/igc_main.c
++++ b/drivers/net/ethernet/intel/igc/igc_main.c
+@@ -640,8 +640,11 @@ static void igc_configure_rx_ring(struct
+       else
+               buf_size = IGC_RXBUFFER_2048;
+-      srrctl = IGC_RX_HDR_LEN << IGC_SRRCTL_BSIZEHDRSIZE_SHIFT;
+-      srrctl |= buf_size >> IGC_SRRCTL_BSIZEPKT_SHIFT;
++      srrctl = rd32(IGC_SRRCTL(reg_idx));
++      srrctl &= ~(IGC_SRRCTL_BSIZEPKT_MASK | IGC_SRRCTL_BSIZEHDR_MASK |
++                  IGC_SRRCTL_DESCTYPE_MASK);
++      srrctl |= IGC_SRRCTL_BSIZEHDR(IGC_RX_HDR_LEN);
++      srrctl |= IGC_SRRCTL_BSIZEPKT(buf_size);
+       srrctl |= IGC_SRRCTL_DESCTYPE_ADV_ONEBUF;
+       wr32(IGC_SRRCTL(reg_idx), srrctl);
diff --git a/queue-5.15/iommu-amd-fix-guest-virtual-apic-table-root-pointer-configuration-in-irte.patch b/queue-5.15/iommu-amd-fix-guest-virtual-apic-table-root-pointer-configuration-in-irte.patch
new file mode 100644 (file)
index 0000000..3086fa2
--- /dev/null
@@ -0,0 +1,50 @@
+From ccc62b827775915a9b82db42a29813d04f92df7a Mon Sep 17 00:00:00 2001
+From: Kishon Vijay Abraham I <kvijayab@amd.com>
+Date: Wed, 5 Apr 2023 13:03:17 +0000
+Subject: iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE
+
+From: Kishon Vijay Abraham I <kvijayab@amd.com>
+
+commit ccc62b827775915a9b82db42a29813d04f92df7a upstream.
+
+commit b9c6ff94e43a ("iommu/amd: Re-factor guest virtual APIC
+(de-)activation code") while refactoring guest virtual APIC
+activation/de-activation code, stored information for activate/de-activate
+in "struct amd_ir_data". It used 32-bit integer data type for storing the
+"Guest Virtual APIC Table Root Pointer" (ga_root_ptr), though the
+"ga_root_ptr" is actually a 40-bit field in IRTE (Interrupt Remapping
+Table Entry).
+
+This causes interrupts from PCIe devices to not reach the guest in the case
+of PCIe passthrough with SME (Secure Memory Encryption) enabled as _SME_
+bit in the "ga_root_ptr" is lost before writing it to the IRTE.
+
+Fix it by using 64-bit data type for storing the "ga_root_ptr". While at
+that also change the data type of "ga_tag" to u32 in order to match
+the IOMMU spec.
+
+Fixes: b9c6ff94e43a ("iommu/amd: Re-factor guest virtual APIC (de-)activation code")
+Cc: stable@vger.kernel.org # v5.4+
+Reported-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
+Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
+Signed-off-by: Kishon Vijay Abraham I <kvijayab@amd.com>
+Link: https://lore.kernel.org/r/20230405130317.9351-1-kvijayab@amd.com
+Signed-off-by: Joerg Roedel <jroedel@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/iommu/amd/amd_iommu_types.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/iommu/amd/amd_iommu_types.h
++++ b/drivers/iommu/amd/amd_iommu_types.h
+@@ -918,8 +918,8 @@ struct amd_ir_data {
+        */
+       struct irq_cfg *cfg;
+       int ga_vector;
+-      int ga_root_ptr;
+-      int ga_tag;
++      u64 ga_root_ptr;
++      u32 ga_tag;
+ };
+ struct amd_irte_ops {
diff --git a/queue-5.15/ksmbd-call-rcu_barrier-in-ksmbd_server_exit.patch b/queue-5.15/ksmbd-call-rcu_barrier-in-ksmbd_server_exit.patch
new file mode 100644 (file)
index 0000000..3d12b3a
--- /dev/null
@@ -0,0 +1,34 @@
+From eb307d09fe15844fdaebeb8cc8c9b9e925430aa5 Mon Sep 17 00:00:00 2001
+From: Namjae Jeon <linkinjeon@kernel.org>
+Date: Wed, 3 May 2023 08:51:51 +0900
+Subject: ksmbd: call rcu_barrier() in ksmbd_server_exit()
+
+From: Namjae Jeon <linkinjeon@kernel.org>
+
+commit eb307d09fe15844fdaebeb8cc8c9b9e925430aa5 upstream.
+
+racy issue is triggered the bug by racing between closing a connection
+and rmmod. In ksmbd, rcu_barrier() is not called at module unload time,
+so nothing prevents ksmbd from getting unloaded while it still has RCU
+callbacks pending. It leads to trigger unintended execution of kernel
+code locally and use to defeat protections such as Kernel Lockdown
+
+Cc: stable@vger.kernel.org
+Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20477
+Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/ksmbd/server.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/fs/ksmbd/server.c
++++ b/fs/ksmbd/server.c
+@@ -611,6 +611,7 @@ err_unregister:
+ static void __exit ksmbd_server_exit(void)
+ {
+       ksmbd_server_shutdown();
++      rcu_barrier();
+       ksmbd_release_inode_hash();
+ }
diff --git a/queue-5.15/ksmbd-fix-memleak-in-session-setup.patch b/queue-5.15/ksmbd-fix-memleak-in-session-setup.patch
new file mode 100644 (file)
index 0000000..7cc322c
--- /dev/null
@@ -0,0 +1,37 @@
+From 6d7cb549c2ca20e1f07593f15e936fd54b763028 Mon Sep 17 00:00:00 2001
+From: Namjae Jeon <linkinjeon@kernel.org>
+Date: Wed, 3 May 2023 08:26:45 +0900
+Subject: ksmbd: fix memleak in session setup
+
+From: Namjae Jeon <linkinjeon@kernel.org>
+
+commit 6d7cb549c2ca20e1f07593f15e936fd54b763028 upstream.
+
+If client send session setup request with unknown NTLMSSP message type,
+session that does not included channel can be created. It will cause
+session memleak. because ksmbd_sessions_deregister() does not destroy
+session if channel is not included. This patch return error response if
+client send the request unknown NTLMSSP message type.
+
+Cc: stable@vger.kernel.org
+Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20593
+Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/ksmbd/smb2pdu.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/fs/ksmbd/smb2pdu.c
++++ b/fs/ksmbd/smb2pdu.c
+@@ -1786,6 +1786,10 @@ int smb2_sess_setup(struct ksmbd_work *w
+                               }
+                               kfree(sess->Preauth_HashValue);
+                               sess->Preauth_HashValue = NULL;
++                      } else {
++                              pr_info_ratelimited("Unknown NTLMSSP message type : 0x%x\n",
++                                              le32_to_cpu(negblob->MessageType));
++                              rc = -EINVAL;
+                       }
+               } else {
+                       /* TODO: need one more negotiation */
diff --git a/queue-5.15/ksmbd-fix-null-pointer-dereference-in-smb2_get_info_filesystem.patch b/queue-5.15/ksmbd-fix-null-pointer-dereference-in-smb2_get_info_filesystem.patch
new file mode 100644 (file)
index 0000000..917dc0b
--- /dev/null
@@ -0,0 +1,33 @@
+From 3ac00a2ab69b34189942afa9e862d5170cdcb018 Mon Sep 17 00:00:00 2001
+From: Namjae Jeon <linkinjeon@kernel.org>
+Date: Wed, 3 May 2023 08:38:33 +0900
+Subject: ksmbd: fix NULL pointer dereference in smb2_get_info_filesystem()
+
+From: Namjae Jeon <linkinjeon@kernel.org>
+
+commit 3ac00a2ab69b34189942afa9e862d5170cdcb018 upstream.
+
+If share is , share->path is NULL and it cause NULL pointer
+dereference issue.
+
+Cc: stable@vger.kernel.org
+Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20479
+Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/ksmbd/smb2pdu.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/fs/ksmbd/smb2pdu.c
++++ b/fs/ksmbd/smb2pdu.c
+@@ -4879,6 +4879,9 @@ static int smb2_get_info_filesystem(stru
+       int rc = 0, len;
+       int fs_infoclass_size = 0;
++      if (!share->path)
++              return -EIO;
++
+       rc = kern_path(share->path, LOOKUP_NO_SYMLINKS, &path);
+       if (rc) {
+               pr_err("cannot create vfs path\n");
diff --git a/queue-5.15/riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch b/queue-5.15/riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch
new file mode 100644 (file)
index 0000000..2cf7686
--- /dev/null
@@ -0,0 +1,47 @@
+From e4ef93edd4e0b022529303db1915766ff9de450e Mon Sep 17 00:00:00 2001
+From: Song Shuai <suagrfillet@gmail.com>
+Date: Wed, 26 Apr 2023 18:00:09 +0800
+Subject: riscv: mm: remove redundant parameter of create_fdt_early_page_table
+
+From: Song Shuai <suagrfillet@gmail.com>
+
+commit e4ef93edd4e0b022529303db1915766ff9de450e upstream.
+
+create_fdt_early_page_table() explicitly uses early_pg_dir for
+32-bit fdt mapping and the pgdir parameter is redundant here.
+So remove it and its caller.
+
+Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
+Signed-off-by: Song Shuai <suagrfillet@gmail.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Fixes: ef69d2559fe9 ("riscv: Move early dtb mapping into the fixmap region")
+Cc: stable@vger.kernel.org
+Link: https://lore.kernel.org/r/20230426100009.685435-1-suagrfillet@gmail.com
+Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/riscv/mm/init.c |    6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/arch/riscv/mm/init.c
++++ b/arch/riscv/mm/init.c
+@@ -569,8 +569,7 @@ static void __init create_kernel_page_ta
+  * this means 2 PMD entries whereas for 32-bit kernel, this is only 1 PGDIR
+  * entry.
+  */
+-static void __init create_fdt_early_page_table(pgd_t *pgdir,
+-                                             uintptr_t fix_fdt_va,
++static void __init create_fdt_early_page_table(uintptr_t fix_fdt_va,
+                                              uintptr_t dtb_pa)
+ {
+       uintptr_t pa = dtb_pa & ~(PMD_SIZE - 1);
+@@ -678,8 +677,7 @@ asmlinkage void __init setup_vm(uintptr_
+       create_kernel_page_table(early_pg_dir, true);
+       /* Setup early mapping for FDT early scan */
+-      create_fdt_early_page_table(early_pg_dir,
+-                                  __fix_to_virt(FIX_FDT), dtb_pa);
++      create_fdt_early_page_table(__fix_to_virt(FIX_FDT), dtb_pa);
+       /*
+        * Bootime fixmap only can handle PMD_SIZE mapping. Thus, boot-ioremap
index 5f7de04d87656c00a244caf668bc33656668ff0a..ae2a3dfd04075193d14298f8f0955ff28717f76f 100644 (file)
@@ -43,3 +43,11 @@ reiserfs-add-security-prefix-to-xattr-name-in-reiserfs_security_write.patch
 kvm-nvmx-emulate-nops-in-l2-and-pause-if-it-s-not-intercepted.patch
 relayfs-fix-out-of-bounds-access-in-relay_file_read.patch
 writeback-cgroup-fix-null-ptr-deref-write-in-bdi_spl.patch
+ksmbd-call-rcu_barrier-in-ksmbd_server_exit.patch
+ksmbd-fix-null-pointer-dereference-in-smb2_get_info_filesystem.patch
+ksmbd-fix-memleak-in-session-setup.patch
+igc-read-before-write-to-srrctl-register.patch
+i2c-omap-fix-standard-mode-false-ack-readings.patch
+riscv-mm-remove-redundant-parameter-of-create_fdt_early_page_table.patch
+tracing-fix-permissions-for-the-buffer_percent-file.patch
+iommu-amd-fix-guest-virtual-apic-table-root-pointer-configuration-in-irte.patch
diff --git a/queue-5.15/tracing-fix-permissions-for-the-buffer_percent-file.patch b/queue-5.15/tracing-fix-permissions-for-the-buffer_percent-file.patch
new file mode 100644 (file)
index 0000000..6c6a9af
--- /dev/null
@@ -0,0 +1,37 @@
+From 4f94559f40ad06d627c0fdfc3319cec778a2845b Mon Sep 17 00:00:00 2001
+From: Ondrej Mosnacek <omosnace@redhat.com>
+Date: Wed, 3 May 2023 16:01:14 +0200
+Subject: tracing: Fix permissions for the buffer_percent file
+
+From: Ondrej Mosnacek <omosnace@redhat.com>
+
+commit 4f94559f40ad06d627c0fdfc3319cec778a2845b upstream.
+
+This file defines both read and write operations, yet it is being
+created as read-only. This means that it can't be written to without the
+CAP_DAC_OVERRIDE capability. Fix the permissions to allow root to write
+to it without the need to override DAC perms.
+
+Link: https://lore.kernel.org/linux-trace-kernel/20230503140114.3280002-1-omosnace@redhat.com
+
+Cc: stable@vger.kernel.org
+Cc: Masami Hiramatsu <mhiramat@kernel.org>
+Fixes: 03329f993978 ("tracing: Add tracefs file buffer_percentage")
+Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
+Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ kernel/trace/trace.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/trace/trace.c
++++ b/kernel/trace/trace.c
+@@ -9565,7 +9565,7 @@ init_tracer_tracefs(struct trace_array *
+       tr->buffer_percent = 50;
+-      trace_create_file("buffer_percent", TRACE_MODE_READ, d_tracer,
++      trace_create_file("buffer_percent", TRACE_MODE_WRITE, d_tracer,
+                       tr, &buffer_percent_fops);
+       create_trace_options_dir(tr);
index 7a24a69a5ef9059c7140e8baa4d0b65000565c35..0316419587c2781e021f72edfce7608dc59aaad0 100644 (file)
@@ -102,15 +102,13 @@ Cc: <stable@vger.kernel.org>
 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- fs/fs-writeback.c | 17 ++++++++++-------
- mm/backing-dev.c  | 12 ++++++++++--
+ fs/fs-writeback.c |   17 ++++++++++-------
+ mm/backing-dev.c  |   12 ++++++++++--
  2 files changed, 20 insertions(+), 9 deletions(-)
 
-diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
-index f4a5a0c2858a1..fbc3f0ef38c02 100644
 --- a/fs/fs-writeback.c
 +++ b/fs/fs-writeback.c
-@@ -1009,6 +1009,16 @@ static void bdi_split_work_to_wbs(struct backing_dev_info *bdi,
+@@ -1009,6 +1009,16 @@ restart:
                        continue;
                }
  
@@ -127,7 +125,7 @@ index f4a5a0c2858a1..fbc3f0ef38c02 100644
                /* alloc failed, execute synchronously using on-stack fallback */
                work = &fallback_work;
                *work = *base_work;
-@@ -1017,13 +1027,6 @@ static void bdi_split_work_to_wbs(struct backing_dev_info *bdi,
+@@ -1017,13 +1027,6 @@ restart:
                work->done = &fallback_work_done;
  
                wb_queue_work(wb, work);
@@ -141,8 +139,6 @@ index f4a5a0c2858a1..fbc3f0ef38c02 100644
                last_wb = wb;
  
                rcu_read_unlock();
-diff --git a/mm/backing-dev.c b/mm/backing-dev.c
-index 142e118ade87a..afdd132768455 100644
 --- a/mm/backing-dev.c
 +++ b/mm/backing-dev.c
 @@ -385,6 +385,15 @@ static LIST_HEAD(offline_cgwbs);
@@ -161,7 +157,7 @@ index 142e118ade87a..afdd132768455 100644
  static void cgwb_release_workfn(struct work_struct *work)
  {
        struct bdi_writeback *wb = container_of(work, struct bdi_writeback,
-@@ -407,10 +416,9 @@ static void cgwb_release_workfn(struct work_struct *work)
+@@ -407,10 +416,9 @@ static void cgwb_release_workfn(struct w
        list_del(&wb->offline_node);
        spin_unlock_irq(&cgwb_lock);
  
@@ -173,6 +169,3 @@ index 142e118ade87a..afdd132768455 100644
  }
  
  static void cgwb_release(struct percpu_ref *refcnt)
--- 
-2.39.2
-