]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Mar 2021 12:16:41 +0000 (13:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Mar 2021 12:16:41 +0000 (13:16 +0100)
added patches:
arm64-make-cpu_big_endian-depend-on-ld.bfd-or-ld.lld-13.0.0.patch
asoc-sof-intel-broadwell-fix-mutual-exclusion-with-catpt-driver.patch
btrfs-don-t-flush-from-btrfs_delayed_inode_reserve_metadata.patch
btrfs-export-and-rename-qgroup_reserve_meta.patch
iommu-amd-fix-sleeping-in-atomic-in-increase_address_space.patch
nvme-pci-mark-kingston-skc2000-as-not-supporting-the-deepest-power-state.patch
parisc-enable-mlong-calls-gcc-option-with-config_compile_test.patch

queue-5.10/arm64-make-cpu_big_endian-depend-on-ld.bfd-or-ld.lld-13.0.0.patch [new file with mode: 0644]
queue-5.10/asoc-sof-intel-broadwell-fix-mutual-exclusion-with-catpt-driver.patch [new file with mode: 0644]
queue-5.10/btrfs-don-t-flush-from-btrfs_delayed_inode_reserve_metadata.patch [new file with mode: 0644]
queue-5.10/btrfs-export-and-rename-qgroup_reserve_meta.patch [new file with mode: 0644]
queue-5.10/iommu-amd-fix-sleeping-in-atomic-in-increase_address_space.patch [new file with mode: 0644]
queue-5.10/nvme-pci-mark-kingston-skc2000-as-not-supporting-the-deepest-power-state.patch [new file with mode: 0644]
queue-5.10/parisc-enable-mlong-calls-gcc-option-with-config_compile_test.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/arm64-make-cpu_big_endian-depend-on-ld.bfd-or-ld.lld-13.0.0.patch b/queue-5.10/arm64-make-cpu_big_endian-depend-on-ld.bfd-or-ld.lld-13.0.0.patch
new file mode 100644 (file)
index 0000000..5b64159
--- /dev/null
@@ -0,0 +1,54 @@
+From foo@baz Wed Mar 10 01:08:10 PM CET 2021
+From: Nathan Chancellor <nathan@kernel.org>
+Date: Mon, 8 Feb 2021 17:57:20 -0700
+Subject: arm64: Make CPU_BIG_ENDIAN depend on ld.bfd or ld.lld 13.0.0+
+
+From: Nathan Chancellor <nathan@kernel.org>
+
+commit e9c6deee00e9197e75cd6aa0d265d3d45bd7cc28 upstream
+
+Similar to commit 28187dc8ebd9 ("ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN
+depends on !LD_IS_LLD"), ld.lld prior to 13.0.0 does not properly
+support aarch64 big endian, leading to the following build error when
+CONFIG_CPU_BIG_ENDIAN is selected:
+
+ld.lld: error: unknown emulation: aarch64linuxb
+
+This has been resolved in LLVM 13. To avoid errors like this, only allow
+CONFIG_CPU_BIG_ENDIAN to be selected if using ld.bfd or ld.lld 13.0.0
+and newer.
+
+While we are here, the indentation of this symbol used spaces since its
+introduction in commit a872013d6d03 ("arm64: kconfig: allow
+CPU_BIG_ENDIAN to be selected"). Change it to tabs to be consistent with
+kernel coding style.
+
+Link: https://github.com/ClangBuiltLinux/linux/issues/380
+Link: https://github.com/ClangBuiltLinux/linux/issues/1288
+Link: https://github.com/llvm/llvm-project/commit/7605a9a009b5fa3bdac07e3131c8d82f6d08feb7
+Link: https://github.com/llvm/llvm-project/commit/eea34aae2e74e9b6fbdd5b95f479bc7f397bf387
+Reported-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Nathan Chancellor <nathan@kernel.org>
+Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
+Link: https://lore.kernel.org/r/20210209005719.803608-1-nathan@kernel.org
+Signed-off-by: Will Deacon <will@kernel.org>
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm64/Kconfig |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/arch/arm64/Kconfig
++++ b/arch/arm64/Kconfig
+@@ -950,8 +950,9 @@ choice
+         that is selected here.
+ config CPU_BIG_ENDIAN
+-       bool "Build big-endian kernel"
+-       help
++      bool "Build big-endian kernel"
++      depends on !LD_IS_LLD || LLD_VERSION >= 130000
++      help
+         Say Y if you plan on running a kernel with a big-endian userspace.
+ config CPU_LITTLE_ENDIAN
diff --git a/queue-5.10/asoc-sof-intel-broadwell-fix-mutual-exclusion-with-catpt-driver.patch b/queue-5.10/asoc-sof-intel-broadwell-fix-mutual-exclusion-with-catpt-driver.patch
new file mode 100644 (file)
index 0000000..7aabd5a
--- /dev/null
@@ -0,0 +1,42 @@
+From pierre-louis.bossart@linux.intel.com  Wed Mar 10 13:06:02 2021
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue,  9 Mar 2021 16:16:18 -0600
+Subject: [PATCH v2] ASoC: SOF: Intel: broadwell: fix mutual exclusion with catpt driver
+To: alsa-devel@alsa-project.org
+Cc: tiwai@suse.de, broonie@kernel.org, Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>, David Ward <david.ward@ll.mit.edu>, Cezary Rojewski <cezary.rojewski@intel.com>, stable@vger.kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20210309221618.246754-1-pierre-louis.bossart@linux.intel.com>
+
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+
+In v5.10, the "haswell" driver was replaced by the "catpt" driver, but
+the mutual exclusion with the SOF driver was not updated. This leads
+to errors with card names and UCM profiles not being loaded by
+PulseAudio.
+
+This fix should only be applied on v5.10-stable, the mutual exclusion
+was removed in 5.11.
+
+Reported-by: David Ward <david.ward@ll.mit.edu>
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=211985
+Fixes: 6cbfa11d2694 ("ASoC: Intel: Select catpt and deprecate haswell")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
+Acked-by: Mark Brown <broonie@kernel.org>
+Cc: <stable@vger.kernel.org>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/sof/intel/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -84,7 +84,7 @@ config SND_SOC_SOF_BAYTRAIL
+ config SND_SOC_SOF_BROADWELL_SUPPORT
+       bool "SOF support for Broadwell"
+-      depends on SND_SOC_INTEL_HASWELL=n
++      depends on SND_SOC_INTEL_CATPT=n
+       help
+         This adds support for Sound Open Firmware for Intel(R) platforms
+         using the Broadwell processors.
diff --git a/queue-5.10/btrfs-don-t-flush-from-btrfs_delayed_inode_reserve_metadata.patch b/queue-5.10/btrfs-don-t-flush-from-btrfs_delayed_inode_reserve_metadata.patch
new file mode 100644 (file)
index 0000000..4ef3bed
--- /dev/null
@@ -0,0 +1,118 @@
+From foo@baz Wed Mar 10 01:08:10 PM CET 2021
+From: Nikolay Borisov <nborisov@suse.com>
+Date: Mon, 22 Feb 2021 18:40:44 +0200
+Subject: btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
+
+From: Nikolay Borisov <nborisov@suse.com>
+
+commit 4d14c5cde5c268a2bc26addecf09489cb953ef64 upstream
+
+Calling btrfs_qgroup_reserve_meta_prealloc from
+btrfs_delayed_inode_reserve_metadata can result in flushing delalloc
+while holding a transaction and delayed node locks. This is deadlock
+prone. In the past multiple commits:
+
+ * ae5e070eaca9 ("btrfs: qgroup: don't try to wait flushing if we're
+already holding a transaction")
+
+ * 6f23277a49e6 ("btrfs: qgroup: don't commit transaction when we already
+ hold the handle")
+
+Tried to solve various aspects of this but this was always a
+whack-a-mole game. Unfortunately those 2 fixes don't solve a deadlock
+scenario involving btrfs_delayed_node::mutex. Namely, one thread
+can call btrfs_dirty_inode as a result of reading a file and modifying
+its atime:
+
+  PID: 6963   TASK: ffff8c7f3f94c000  CPU: 2   COMMAND: "test"
+  #0  __schedule at ffffffffa529e07d
+  #1  schedule at ffffffffa529e4ff
+  #2  schedule_timeout at ffffffffa52a1bdd
+  #3  wait_for_completion at ffffffffa529eeea             <-- sleeps with delayed node mutex held
+  #4  start_delalloc_inodes at ffffffffc0380db5
+  #5  btrfs_start_delalloc_snapshot at ffffffffc0393836
+  #6  try_flush_qgroup at ffffffffc03f04b2
+  #7  __btrfs_qgroup_reserve_meta at ffffffffc03f5bb6     <-- tries to reserve space and starts delalloc inodes.
+  #8  btrfs_delayed_update_inode at ffffffffc03e31aa      <-- acquires delayed node mutex
+  #9  btrfs_update_inode at ffffffffc0385ba8
+ #10  btrfs_dirty_inode at ffffffffc038627b               <-- TRANSACTIION OPENED
+ #11  touch_atime at ffffffffa4cf0000
+ #12  generic_file_read_iter at ffffffffa4c1f123
+ #13  new_sync_read at ffffffffa4ccdc8a
+ #14  vfs_read at ffffffffa4cd0849
+ #15  ksys_read at ffffffffa4cd0bd1
+ #16  do_syscall_64 at ffffffffa4a052eb
+ #17  entry_SYSCALL_64_after_hwframe at ffffffffa540008c
+
+This will cause an asynchronous work to flush the delalloc inodes to
+happen which can try to acquire the same delayed_node mutex:
+
+  PID: 455    TASK: ffff8c8085fa4000  CPU: 5   COMMAND: "kworker/u16:30"
+  #0  __schedule at ffffffffa529e07d
+  #1  schedule at ffffffffa529e4ff
+  #2  schedule_preempt_disabled at ffffffffa529e80a
+  #3  __mutex_lock at ffffffffa529fdcb                    <-- goes to sleep, never wakes up.
+  #4  btrfs_delayed_update_inode at ffffffffc03e3143      <-- tries to acquire the mutex
+  #5  btrfs_update_inode at ffffffffc0385ba8              <-- this is the same inode that pid 6963 is holding
+  #6  cow_file_range_inline.constprop.78 at ffffffffc0386be7
+  #7  cow_file_range at ffffffffc03879c1
+  #8  btrfs_run_delalloc_range at ffffffffc038894c
+  #9  writepage_delalloc at ffffffffc03a3c8f
+ #10  __extent_writepage at ffffffffc03a4c01
+ #11  extent_write_cache_pages at ffffffffc03a500b
+ #12  extent_writepages at ffffffffc03a6de2
+ #13  do_writepages at ffffffffa4c277eb
+ #14  __filemap_fdatawrite_range at ffffffffa4c1e5bb
+ #15  btrfs_run_delalloc_work at ffffffffc0380987         <-- starts running delayed nodes
+ #16  normal_work_helper at ffffffffc03b706c
+ #17  process_one_work at ffffffffa4aba4e4
+ #18  worker_thread at ffffffffa4aba6fd
+ #19  kthread at ffffffffa4ac0a3d
+ #20  ret_from_fork at ffffffffa54001ff
+
+To fully address those cases the complete fix is to never issue any
+flushing while holding the transaction or the delayed node lock. This
+patch achieves it by calling qgroup_reserve_meta directly which will
+either succeed without flushing or will fail and return -EDQUOT. In the
+latter case that return value is going to be propagated to
+btrfs_dirty_inode which will fallback to start a new transaction. That's
+fine as the majority of time we expect the inode will have
+BTRFS_DELAYED_NODE_INODE_DIRTY flag set which will result in directly
+copying the in-memory state.
+
+Fixes: c53e9653605d ("btrfs: qgroup: try to flush qgroup space when we get -EDQUOT")
+CC: stable@vger.kernel.org # 5.10+
+Reviewed-by: Qu Wenruo <wqu@suse.com>
+Signed-off-by: Nikolay Borisov <nborisov@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+[sudip: adjust context]
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/btrfs/delayed-inode.c |    3 ++-
+ fs/btrfs/inode.c         |    2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+--- a/fs/btrfs/delayed-inode.c
++++ b/fs/btrfs/delayed-inode.c
+@@ -627,7 +627,8 @@ static int btrfs_delayed_inode_reserve_m
+        */
+       if (!src_rsv || (!trans->bytes_reserved &&
+                        src_rsv->type != BTRFS_BLOCK_RSV_DELALLOC)) {
+-              ret = btrfs_qgroup_reserve_meta_prealloc(root, num_bytes, true);
++              ret = btrfs_qgroup_reserve_meta(root, num_bytes,
++                                        BTRFS_QGROUP_RSV_META_PREALLOC, true);
+               if (ret < 0)
+                       return ret;
+               ret = btrfs_block_rsv_add(root, dst_rsv, num_bytes,
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -5798,7 +5798,7 @@ static int btrfs_dirty_inode(struct inod
+               return PTR_ERR(trans);
+       ret = btrfs_update_inode(trans, root, inode);
+-      if (ret && ret == -ENOSPC) {
++      if (ret && (ret == -ENOSPC || ret == -EDQUOT)) {
+               /* whoops, lets try again with the full transaction */
+               btrfs_end_transaction(trans);
+               trans = btrfs_start_transaction(root, 1);
diff --git a/queue-5.10/btrfs-export-and-rename-qgroup_reserve_meta.patch b/queue-5.10/btrfs-export-and-rename-qgroup_reserve_meta.patch
new file mode 100644 (file)
index 0000000..7a30cbf
--- /dev/null
@@ -0,0 +1,60 @@
+From foo@baz Wed Mar 10 01:08:10 PM CET 2021
+From: Nikolay Borisov <nborisov@suse.com>
+Date: Mon, 22 Feb 2021 18:40:43 +0200
+Subject: btrfs: export and rename qgroup_reserve_meta
+
+From: Nikolay Borisov <nborisov@suse.com>
+
+commit 80e9baed722c853056e0c5374f51524593cb1031 upstream
+
+Signed-off-by: Nikolay Borisov <nborisov@suse.com>
+Reviewed-by: David Sterba <dsterba@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ fs/btrfs/qgroup.c |    8 ++++----
+ fs/btrfs/qgroup.h |    2 ++
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+--- a/fs/btrfs/qgroup.c
++++ b/fs/btrfs/qgroup.c
+@@ -3875,8 +3875,8 @@ static int sub_root_meta_rsv(struct btrf
+       return num_bytes;
+ }
+-static int qgroup_reserve_meta(struct btrfs_root *root, int num_bytes,
+-                              enum btrfs_qgroup_rsv_type type, bool enforce)
++int btrfs_qgroup_reserve_meta(struct btrfs_root *root, int num_bytes,
++                            enum btrfs_qgroup_rsv_type type, bool enforce)
+ {
+       struct btrfs_fs_info *fs_info = root->fs_info;
+       int ret;
+@@ -3907,14 +3907,14 @@ int __btrfs_qgroup_reserve_meta(struct b
+ {
+       int ret;
+-      ret = qgroup_reserve_meta(root, num_bytes, type, enforce);
++      ret = btrfs_qgroup_reserve_meta(root, num_bytes, type, enforce);
+       if (ret <= 0 && ret != -EDQUOT)
+               return ret;
+       ret = try_flush_qgroup(root);
+       if (ret < 0)
+               return ret;
+-      return qgroup_reserve_meta(root, num_bytes, type, enforce);
++      return btrfs_qgroup_reserve_meta(root, num_bytes, type, enforce);
+ }
+ void btrfs_qgroup_free_meta_all_pertrans(struct btrfs_root *root)
+--- a/fs/btrfs/qgroup.h
++++ b/fs/btrfs/qgroup.h
+@@ -361,6 +361,8 @@ int btrfs_qgroup_release_data(struct btr
+ int btrfs_qgroup_free_data(struct btrfs_inode *inode,
+                          struct extent_changeset *reserved, u64 start,
+                          u64 len);
++int btrfs_qgroup_reserve_meta(struct btrfs_root *root, int num_bytes,
++                            enum btrfs_qgroup_rsv_type type, bool enforce);
+ int __btrfs_qgroup_reserve_meta(struct btrfs_root *root, int num_bytes,
+                               enum btrfs_qgroup_rsv_type type, bool enforce);
+ /* Reserve metadata space for pertrans and prealloc type */
diff --git a/queue-5.10/iommu-amd-fix-sleeping-in-atomic-in-increase_address_space.patch b/queue-5.10/iommu-amd-fix-sleeping-in-atomic-in-increase_address_space.patch
new file mode 100644 (file)
index 0000000..bc19940
--- /dev/null
@@ -0,0 +1,83 @@
+From 140456f994195b568ecd7fc2287a34eadffef3ca Mon Sep 17 00:00:00 2001
+From: Andrey Ryabinin <arbn@yandex-team.com>
+Date: Wed, 17 Feb 2021 17:30:04 +0300
+Subject: iommu/amd: Fix sleeping in atomic in increase_address_space()
+
+From: Andrey Ryabinin <arbn@yandex-team.com>
+
+commit 140456f994195b568ecd7fc2287a34eadffef3ca upstream.
+
+increase_address_space() calls get_zeroed_page(gfp) under spin_lock with
+disabled interrupts. gfp flags passed to increase_address_space() may allow
+sleeping, so it comes to this:
+
+ BUG: sleeping function called from invalid context at mm/page_alloc.c:4342
+ in_atomic(): 1, irqs_disabled(): 1, pid: 21555, name: epdcbbf1qnhbsd8
+
+ Call Trace:
+  dump_stack+0x66/0x8b
+  ___might_sleep+0xec/0x110
+  __alloc_pages_nodemask+0x104/0x300
+  get_zeroed_page+0x15/0x40
+  iommu_map_page+0xdd/0x3e0
+  amd_iommu_map+0x50/0x70
+  iommu_map+0x106/0x220
+  vfio_iommu_type1_ioctl+0x76e/0x950 [vfio_iommu_type1]
+  do_vfs_ioctl+0xa3/0x6f0
+  ksys_ioctl+0x66/0x70
+  __x64_sys_ioctl+0x16/0x20
+  do_syscall_64+0x4e/0x100
+  entry_SYSCALL_64_after_hwframe+0x44/0xa9
+
+Fix this by moving get_zeroed_page() out of spin_lock/unlock section.
+
+Fixes: 754265bcab ("iommu/amd: Fix race in increase_address_space()")
+Signed-off-by: Andrey Ryabinin <arbn@yandex-team.com>
+Acked-by: Will Deacon <will@kernel.org>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20210217143004.19165-1-arbn@yandex-team.com
+Signed-off-by: Joerg Roedel <jroedel@suse.de>
+Signed-off-by: Andrey Ryabinin <arbn@yandex-team.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iommu/amd/iommu.c |   10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/iommu/amd/iommu.c
++++ b/drivers/iommu/amd/iommu.c
+@@ -1503,6 +1503,10 @@ static bool increase_address_space(struc
+       bool ret = true;
+       u64 *pte;
++      pte = (void *)get_zeroed_page(gfp);
++      if (!pte)
++              return false;
++
+       spin_lock_irqsave(&domain->lock, flags);
+       amd_iommu_domain_get_pgtable(domain, &pgtable);
+@@ -1514,10 +1518,6 @@ static bool increase_address_space(struc
+       if (WARN_ON_ONCE(pgtable.mode == PAGE_MODE_6_LEVEL))
+               goto out;
+-      pte = (void *)get_zeroed_page(gfp);
+-      if (!pte)
+-              goto out;
+-
+       *pte = PM_LEVEL_PDE(pgtable.mode, iommu_virt_to_phys(pgtable.root));
+       pgtable.root  = pte;
+@@ -1531,10 +1531,12 @@ static bool increase_address_space(struc
+        */
+       amd_iommu_domain_set_pgtable(domain, pte, pgtable.mode);
++      pte = NULL;
+       ret = true;
+ out:
+       spin_unlock_irqrestore(&domain->lock, flags);
++      free_page((unsigned long)pte);
+       return ret;
+ }
diff --git a/queue-5.10/nvme-pci-mark-kingston-skc2000-as-not-supporting-the-deepest-power-state.patch b/queue-5.10/nvme-pci-mark-kingston-skc2000-as-not-supporting-the-deepest-power-state.patch
new file mode 100644 (file)
index 0000000..a8c33a7
--- /dev/null
@@ -0,0 +1,41 @@
+From foo@baz Wed Mar 10 01:08:10 PM CET 2021
+From: "Zoltán Böszörményi" <zboszor@gmail.com>
+Date: Sun, 21 Feb 2021 06:12:16 +0100
+Subject: nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
+
+From: "Zoltán Böszörményi" <zboszor@gmail.com>
+
+commit dc22c1c058b5c4fe967a20589e36f029ee42a706 upstream
+
+My 2TB SKC2000 showed the exact same symptoms that were provided
+in 538e4a8c57 ("nvme-pci: avoid the deepest sleep state on
+Kingston A2000 SSDs"), i.e. a complete NVME lockup that needed
+cold boot to get it back.
+
+According to some sources, the A2000 is simply a rebadged
+SKC2000 with a slightly optimized firmware.
+
+Adding the SKC2000 PCI ID to the quirk list with the same workaround
+as the A2000 made my laptop survive a 5 hours long Yocto bootstrap
+buildfest which reliably triggered the SSD lockup previously.
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+[sudip: adjust context]
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/nvme/host/pci.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/nvme/host/pci.c
++++ b/drivers/nvme/host/pci.c
+@@ -3264,6 +3264,8 @@ static const struct pci_device_id nvme_i
+               .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
+       { PCI_DEVICE(0x15b7, 0x2001),   /*  Sandisk Skyhawk */
+               .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
++      { PCI_DEVICE(0x2646, 0x2262),   /* KINGSTON SKC2000 NVMe SSD */
++              .driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
+       { PCI_DEVICE(0x2646, 0x2263),   /* KINGSTON A2000 NVMe SSD  */
+               .driver_data = NVME_QUIRK_NO_DEEPEST_PS, },
+       { PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001),
diff --git a/queue-5.10/parisc-enable-mlong-calls-gcc-option-with-config_compile_test.patch b/queue-5.10/parisc-enable-mlong-calls-gcc-option-with-config_compile_test.patch
new file mode 100644 (file)
index 0000000..081bf62
--- /dev/null
@@ -0,0 +1,52 @@
+From foo@baz Wed Mar 10 01:08:10 PM CET 2021
+From: Helge Deller <deller@gmx.de>
+Date: Tue, 2 Mar 2021 21:07:07 +0100
+Subject: parisc: Enable -mlong-calls gcc option with CONFIG_COMPILE_TEST
+
+From: Helge Deller <deller@gmx.de>
+
+commit 778e45d7720d663811352943dd515b41f6849637 upstream
+
+The kernel test robot reported multiple linkage problems like this:
+
+    hppa64-linux-ld: init/main.o(.init.text+0x56c): cannot reach printk
+    init/main.o: in function `unknown_bootoption':
+    (.init.text+0x56c): relocation truncated to fit: R_PARISC_PCREL22F against
+       symbol `printk' defined in .text.unlikely section in kernel/printk/printk.o
+
+There are two ways to solve it:
+a) Enable the -mlong-call compiler option (CONFIG_MLONGCALLS),
+b) Add long branch stub support in 64-bit linker.
+
+While b) is the long-term solution, this patch works around the issue by
+automatically enabling the CONFIG_MLONGCALLS option when
+CONFIG_COMPILE_TEST is set, which indicates that a non-production kernel
+(e.g. 0-day kernel) is built.
+
+Signed-off-by: Helge Deller <deller@gmx.de>
+Reported-by: kernel test robot <lkp@intel.com>
+Fixes: 00e35f2b0e8a ("parisc: Enable -mlong-calls gcc option by default when !CONFIG_MODULES")
+Cc: stable@vger.kernel.org # v5.6+
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/parisc/Kconfig |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/arch/parisc/Kconfig
++++ b/arch/parisc/Kconfig
+@@ -201,9 +201,12 @@ config PREFETCH
+       def_bool y
+       depends on PA8X00 || PA7200
++config PARISC_HUGE_KERNEL
++      def_bool y if !MODULES || UBSAN || FTRACE || COMPILE_TEST
++
+ config MLONGCALLS
+-      def_bool y if !MODULES || UBSAN || FTRACE
+-      bool "Enable the -mlong-calls compiler option for big kernels" if MODULES && !UBSAN && !FTRACE
++      def_bool y if PARISC_HUGE_KERNEL
++      bool "Enable the -mlong-calls compiler option for big kernels" if !PARISC_HUGE_KERNEL
+       depends on PA8X00
+       help
+         If you configure the kernel to include many drivers built-in instead
index c73e97314febe014a37f2670c53d498eba6466d2..a7205e559c83803ba75e63f2fbc9bbcfaf3b1d0c 100644 (file)
@@ -1 +1,8 @@
 acpica-fix-race-in-generic_serial_bus-i2c-and-gpio-op_region-parameter-handling.patch
+asoc-sof-intel-broadwell-fix-mutual-exclusion-with-catpt-driver.patch
+nvme-pci-mark-kingston-skc2000-as-not-supporting-the-deepest-power-state.patch
+parisc-enable-mlong-calls-gcc-option-with-config_compile_test.patch
+arm64-make-cpu_big_endian-depend-on-ld.bfd-or-ld.lld-13.0.0.patch
+btrfs-export-and-rename-qgroup_reserve_meta.patch
+btrfs-don-t-flush-from-btrfs_delayed_inode_reserve_metadata.patch
+iommu-amd-fix-sleeping-in-atomic-in-increase_address_space.patch