]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jun 2022 08:51:00 +0000 (10:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jun 2022 08:51:00 +0000 (10:51 +0200)
added patches:
f2fs-attach-inline_data-after-setting-compression.patch
usb-chipidea-udc-check-request-status-before-setting-device-address.patch

queue-5.10/f2fs-attach-inline_data-after-setting-compression.patch [new file with mode: 0644]
queue-5.10/series
queue-5.10/usb-chipidea-udc-check-request-status-before-setting-device-address.patch [new file with mode: 0644]

diff --git a/queue-5.10/f2fs-attach-inline_data-after-setting-compression.patch b/queue-5.10/f2fs-attach-inline_data-after-setting-compression.patch
new file mode 100644 (file)
index 0000000..d91fd38
--- /dev/null
@@ -0,0 +1,68 @@
+From 4cde00d50707c2ef6647b9b96b2cb40b6eb24397 Mon Sep 17 00:00:00 2001
+From: Jaegeuk Kim <jaegeuk@kernel.org>
+Date: Tue, 31 May 2022 18:27:09 -0700
+Subject: f2fs: attach inline_data after setting compression
+
+From: Jaegeuk Kim <jaegeuk@kernel.org>
+
+commit 4cde00d50707c2ef6647b9b96b2cb40b6eb24397 upstream.
+
+This fixes the below corruption.
+
+[345393.335389] F2FS-fs (vdb): sanity_check_inode: inode (ino=6d0, mode=33206) should not have inline_data, run fsck to fix
+
+Cc: <stable@vger.kernel.org>
+Fixes: 677a82b44ebf ("f2fs: fix to do sanity check for inline inode")
+Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/f2fs/namei.c |   17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+--- a/fs/f2fs/namei.c
++++ b/fs/f2fs/namei.c
+@@ -91,8 +91,6 @@ static struct inode *f2fs_new_inode(stru
+       if (test_opt(sbi, INLINE_XATTR))
+               set_inode_flag(inode, FI_INLINE_XATTR);
+-      if (test_opt(sbi, INLINE_DATA) && f2fs_may_inline_data(inode))
+-              set_inode_flag(inode, FI_INLINE_DATA);
+       if (f2fs_may_inline_dentry(inode))
+               set_inode_flag(inode, FI_INLINE_DENTRY);
+@@ -109,10 +107,6 @@ static struct inode *f2fs_new_inode(stru
+       f2fs_init_extent_tree(inode, NULL);
+-      stat_inc_inline_xattr(inode);
+-      stat_inc_inline_inode(inode);
+-      stat_inc_inline_dir(inode);
+-
+       F2FS_I(inode)->i_flags =
+               f2fs_mask_flags(mode, F2FS_I(dir)->i_flags & F2FS_FL_INHERITED);
+@@ -129,6 +123,14 @@ static struct inode *f2fs_new_inode(stru
+                       set_compress_context(inode);
+       }
++      /* Should enable inline_data after compression set */
++      if (test_opt(sbi, INLINE_DATA) && f2fs_may_inline_data(inode))
++              set_inode_flag(inode, FI_INLINE_DATA);
++
++      stat_inc_inline_xattr(inode);
++      stat_inc_inline_inode(inode);
++      stat_inc_inline_dir(inode);
++
+       f2fs_set_inode_flags(inode);
+       trace_f2fs_new_inode(inode, 0);
+@@ -317,6 +319,9 @@ static void set_compress_inode(struct f2
+               if (!is_extension_exist(name, ext[i], false))
+                       continue;
++              /* Do not use inline_data with compression */
++              stat_dec_inline_inode(inode);
++              clear_inode_flag(inode, FI_INLINE_DATA);
+               set_compress_context(inode);
+               return;
+       }
index bd0232c464c7658e603ef3ca692dd6a5f3152b7d..c18f9ace3e34033ab3a66ff527716c0e43b7c676 100644 (file)
@@ -68,3 +68,5 @@ xhci-pci-allow-host-runtime-pm-as-default-for-intel-raptor-lake-xhci.patch
 xhci-pci-allow-host-runtime-pm-as-default-for-intel-meteor-lake-xhci.patch
 usb-gadget-fix-non-unique-driver-names-in-raw-gadget-driver.patch
 usb-gadget-fix-double-free-bug-in-raw_gadget-driver.patch
+usb-chipidea-udc-check-request-status-before-setting-device-address.patch
+f2fs-attach-inline_data-after-setting-compression.patch
diff --git a/queue-5.10/usb-chipidea-udc-check-request-status-before-setting-device-address.patch b/queue-5.10/usb-chipidea-udc-check-request-status-before-setting-device-address.patch
new file mode 100644 (file)
index 0000000..046bba6
--- /dev/null
@@ -0,0 +1,34 @@
+From b24346a240b36cfc4df194d145463874985aa29b Mon Sep 17 00:00:00 2001
+From: Xu Yang <xu.yang_2@nxp.com>
+Date: Thu, 23 Jun 2022 11:02:42 +0800
+Subject: usb: chipidea: udc: check request status before setting device address
+
+From: Xu Yang <xu.yang_2@nxp.com>
+
+commit b24346a240b36cfc4df194d145463874985aa29b upstream.
+
+The complete() function may be called even though request is not
+completed. In this case, it's necessary to check request status so
+as not to set device address wrongly.
+
+Fixes: 10775eb17bee ("usb: chipidea: udc: update gadget states according to ch9")
+cc: <stable@vger.kernel.org>
+Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
+Link: https://lore.kernel.org/r/20220623030242.41796-1-xu.yang_2@nxp.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/chipidea/udc.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/usb/chipidea/udc.c
++++ b/drivers/usb/chipidea/udc.c
+@@ -1034,6 +1034,9 @@ isr_setup_status_complete(struct usb_ep
+       struct ci_hdrc *ci = req->context;
+       unsigned long flags;
++      if (req->status < 0)
++              return;
++
+       if (ci->setaddr) {
+               hw_usb_set_address(ci, ci->address);
+               ci->setaddr = false;