]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.17 is end-of-life, so delete the queue of unapplied patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Jun 2022 12:47:24 +0000 (14:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Jun 2022 12:47:24 +0000 (14:47 +0200)
81 files changed:
queue-5.17/alsa-hda-realtek-add-hw8326-support.patch [deleted file]
queue-5.17/arm64-ftrace-consistently-handle-plts.patch [deleted file]
queue-5.17/arm64-ftrace-fix-branch-range-checks.patch [deleted file]
queue-5.17/asoc-cs35l36-update-digital-volume-tlv.patch [deleted file]
queue-5.17/asoc-cs42l51-correct-minimum-value-for-sx-volume-con.patch [deleted file]
queue-5.17/asoc-cs42l52-correct-tlv-for-bypass-volume.patch [deleted file]
queue-5.17/asoc-cs42l52-fix-tlv-scales-for-mixer-controls.patch [deleted file]
queue-5.17/asoc-cs42l56-correct-typo-in-minimum-level-for-sx-vo.patch [deleted file]
queue-5.17/asoc-cs53l30-correct-number-of-volume-levels-on-sx-c.patch [deleted file]
queue-5.17/asoc-es8328-fix-event-generation-for-deemphasis-cont.patch [deleted file]
queue-5.17/asoc-nau8822-add-operation-for-internal-pll-off-and-.patch [deleted file]
queue-5.17/asoc-wm8962-fix-suspend-while-playing-music.patch [deleted file]
queue-5.17/asoc-wm_adsp-fix-event-generation-for-wm_adsp_fw_put.patch [deleted file]
queue-5.17/ata-libata-core-fix-null-pointer-deref-in-ata_host_a.patch [deleted file]
queue-5.17/block-fix-handling-of-offline-queues-in-blk_mq_alloc.patch [deleted file]
queue-5.17/certs-blacklist_hashes.c-fix-const-confusion-in-cert.patch [deleted file]
queue-5.17/clocksource-hyper-v-unexport-__init-annotated-hv_ini.patch [deleted file]
queue-5.17/dma-debug-make-things-less-spammy-under-memory-press.patch [deleted file]
queue-5.17/drivers-hv-vmbus-release-cpu-lock-in-error-case.patch [deleted file]
queue-5.17/drm-amd-display-read-golden-settings-table-from-vbio.patch [deleted file]
queue-5.17/drm-amdkfd-add-pinned-bos-to-kfd_bo_list.patch [deleted file]
queue-5.17/drm-amdkfd-use-mmget_not_zero-in-mmu-notifier.patch [deleted file]
queue-5.17/drm-i915-reset-fix-error_state_read-ptr-offset-use.patch [deleted file]
queue-5.17/faddr2line-fix-overlapping-text-section-failures-the.patch [deleted file]
queue-5.17/gcc-12-disable-warray-bounds-universally-for-now.patch [deleted file]
queue-5.17/gcc-12-disable-wdangling-pointer-warning-for-now.patch [deleted file]
queue-5.17/gpio-dwapb-don-t-print-error-on-eprobe_defer.patch [deleted file]
queue-5.17/i2c-designware-use-standard-optional-ref-clock-imple.patch [deleted file]
queue-5.17/i2c-npcm7xx-add-check-for-platform_driver_register.patch [deleted file]
queue-5.17/i40e-fix-adding-adq-filter-to-tc0.patch [deleted file]
queue-5.17/i40e-fix-calculating-the-number-of-queue-pairs.patch [deleted file]
queue-5.17/i40e-fix-call-trace-in-setup_tx_descriptors.patch [deleted file]
queue-5.17/ice-fix-ptp-tx-timestamp-offset-calculation.patch [deleted file]
queue-5.17/ice-fix-queue-config-fail-handling.patch [deleted file]
queue-5.17/init-initialize-noop_backing_dev_info-early.patch [deleted file]
queue-5.17/input-soc_button_array-also-add-lenovo-yoga-tablet2-.patch [deleted file]
queue-5.17/io_uring-fix-races-with-buffer-table-unregister.patch [deleted file]
queue-5.17/io_uring-fix-races-with-file-table-unregister.patch [deleted file]
queue-5.17/ipv6-fix-signed-integer-overflow-in-l2tp_ip6_sendmsg.patch [deleted file]
queue-5.17/irqchip-gic-realview-fix-refcount-leak-in-realview_g.patch [deleted file]
queue-5.17/irqchip-gic-v3-fix-error-handling-in-gic_populate_pp.patch [deleted file]
queue-5.17/irqchip-gic-v3-fix-refcount-leak-in-gic_populate_ppi.patch [deleted file]
queue-5.17/irqchip-realtek-rtl-fix-refcount-leak-in-map_interru.patch [deleted file]
queue-5.17/mellanox-mlx5-avoid-uninitialized-variable-warning-w.patch [deleted file]
queue-5.17/mips-loongson-3-fix-compile-mips-cpu_hwmon-as-module.patch [deleted file]
queue-5.17/misc-atmel-ssc-fix-irq-check-in-ssc_probe.patch [deleted file]
queue-5.17/mlxsw-spectrum_cnt-reorder-counter-pools.patch [deleted file]
queue-5.17/net-ax25-fix-deadlock-caused-by-skb_recv_datagram-in.patch [deleted file]
queue-5.17/net-bgmac-fix-an-erroneous-kfree-in-bgmac_remove.patch [deleted file]
queue-5.17/net-ethernet-mtk_eth_soc-fix-misuse-of-mem-alloc-int.patch [deleted file]
queue-5.17/net-hns3-don-t-push-link-state-to-vf-if-unalive.patch [deleted file]
queue-5.17/net-hns3-fix-pf-rss-size-initialization-bug.patch [deleted file]
queue-5.17/net-hns3-fix-tm-port-shapping-of-fibre-port-is-incor.patch [deleted file]
queue-5.17/net-hns3-restore-tm-priority-qset-to-default-setting.patch [deleted file]
queue-5.17/net-hns3-set-port-base-vlan-tbl_sta-to-false-before-.patch [deleted file]
queue-5.17/netfs-gcc-12-temporarily-disable-wattribute-warning-.patch [deleted file]
queue-5.17/nfc-nfcmrvl-fix-memory-leak-in-nfcmrvl_play_deferred.patch [deleted file]
queue-5.17/nvme-add-device-name-to-warning-in-uuid_show.patch [deleted file]
queue-5.17/platform-x86-gigabyte-wmi-add-support-for-b450m-ds3h.patch [deleted file]
queue-5.17/platform-x86-gigabyte-wmi-add-z690m-aorus-elite-ax-d.patch [deleted file]
queue-5.17/platform-x86-intel-fix-pmt_crashlog-array-reference.patch [deleted file]
queue-5.17/platform-x86-intel-hid-add-surface-go-to-vgbs-allow-.patch [deleted file]
queue-5.17/pnfs-avoid-a-live-lock-condition-in-pnfs_update_layo.patch [deleted file]
queue-5.17/pnfs-don-t-keep-retrying-if-the-server-replied-nfs4e.patch [deleted file]
queue-5.17/powerpc-kasan-silence-kasan-warnings-in-__get_wchan.patch [deleted file]
queue-5.17/quota-prevent-memory-allocation-recursion-while-hold.patch [deleted file]
queue-5.17/random-credit-cpu-and-bootloader-seeds-by-default.patch [deleted file]
queue-5.17/sched-fix-balance_push-vs-__sched_setscheduler.patch [deleted file]
queue-5.17/scsi-ipr-fix-missing-incorrect-resource-cleanup-in-e.patch [deleted file]
queue-5.17/scsi-lpfc-allow-reduced-polling-rate-for-nvme_admin_.patch [deleted file]
queue-5.17/scsi-lpfc-fix-port-stuck-in-bypassed-state-after-lip.patch [deleted file]
queue-5.17/scsi-lpfc-resolve-null-ptr-dereference-after-an-els-.patch [deleted file]
queue-5.17/scsi-mpt3sas-fix-out-of-bounds-compiler-warning.patch [deleted file]
queue-5.17/scsi-pmcraid-fix-missing-resource-cleanup-in-error-c.patch [deleted file]
queue-5.17/scsi-vmw_pvscsi-expand-vcpuhint-to-16-bits.patch [deleted file]
queue-5.17/series [deleted file]
queue-5.17/staging-r8188eu-fix-rtw_alloc_hwxmits-error-detectio.patch [deleted file]
queue-5.17/staging-r8188eu-fix-warning-of-array-overflow-in-ioc.patch [deleted file]
queue-5.17/sunrpc-set-cl_max_connect-when-cloning-an-rpc_clnt.patch [deleted file]
queue-5.17/tty-goldfish-fix-free_irq-on-remove.patch [deleted file]
queue-5.17/virtio-mmio-fix-missing-put_device-when-vm_cmdline_p.patch [deleted file]

diff --git a/queue-5.17/alsa-hda-realtek-add-hw8326-support.patch b/queue-5.17/alsa-hda-realtek-add-hw8326-support.patch
deleted file mode 100644 (file)
index f2283ae..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-From 66b53373b5d155a688e597e3927b801c9d2a2774 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 8 Jun 2022 16:23:57 +0800
-Subject: ALSA: hda/realtek - Add HW8326 support
-
-From: huangwenhui <huangwenhuia@uniontech.com>
-
-[ Upstream commit 527f4643e03c298c1e3321cfa27866b1374a55e1 ]
-
-Added the support of new Huawei codec HW8326. The HW8326 is developed
-by Huawei with Realtek's IP Core, and it's compatible with ALC256.
-
-Signed-off-by: huangwenhui <huangwenhuia@uniontech.com>
-Link: https://lore.kernel.org/r/20220608082357.26898-1-huangwenhuia@uniontech.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/hda/hdac_device.c       |  1 +
- sound/pci/hda/patch_realtek.c | 14 ++++++++++++++
- 2 files changed, 15 insertions(+)
-
-diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c
-index 3e9e9ac804f6..b7e5032b61c9 100644
---- a/sound/hda/hdac_device.c
-+++ b/sound/hda/hdac_device.c
-@@ -660,6 +660,7 @@ static const struct hda_vendor_id hda_vendor_ids[] = {
-       { 0x14f1, "Conexant" },
-       { 0x17e8, "Chrontel" },
-       { 0x1854, "LG" },
-+      { 0x19e5, "Huawei" },
-       { 0x1aec, "Wolfson Microelectronics" },
-       { 0x1af4, "QEMU" },
-       { 0x434d, "C-Media" },
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 4a9cddc04045..92d04eb83794 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -443,6 +443,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
-       case 0x10ec0245:
-       case 0x10ec0255:
-       case 0x10ec0256:
-+      case 0x19e58326:
-       case 0x10ec0257:
-       case 0x10ec0282:
-       case 0x10ec0283:
-@@ -580,6 +581,7 @@ static void alc_shutup_pins(struct hda_codec *codec)
-       switch (codec->core.vendor_id) {
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-       case 0x10ec0283:
-       case 0x10ec0286:
-       case 0x10ec0288:
-@@ -3247,6 +3249,7 @@ static void alc_disable_headset_jack_key(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_write_coef_idx(codec, 0x48, 0x0);
-               alc_update_coef_idx(codec, 0x49, 0x0045, 0x0);
-               break;
-@@ -3275,6 +3278,7 @@ static void alc_enable_headset_jack_key(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_write_coef_idx(codec, 0x48, 0xd011);
-               alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045);
-               break;
-@@ -4910,6 +4914,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_process_coef_fw(codec, coef0256);
-               break;
-       case 0x10ec0234:
-@@ -5025,6 +5030,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_write_coef_idx(codec, 0x45, 0xc489);
-               snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
-               alc_process_coef_fw(codec, coef0256);
-@@ -5175,6 +5181,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_write_coef_idx(codec, 0x1b, 0x0e4b);
-               alc_write_coef_idx(codec, 0x45, 0xc089);
-               msleep(50);
-@@ -5274,6 +5281,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_process_coef_fw(codec, coef0256);
-               break;
-       case 0x10ec0234:
-@@ -5388,6 +5396,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_process_coef_fw(codec, coef0256);
-               break;
-       case 0x10ec0234:
-@@ -5489,6 +5498,7 @@ static void alc_determine_headset_type(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_write_coef_idx(codec, 0x1b, 0x0e4b);
-               alc_write_coef_idx(codec, 0x06, 0x6104);
-               alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-@@ -5783,6 +5793,7 @@ static void alc255_set_default_jack_type(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_process_coef_fw(codec, alc256fw);
-               break;
-       }
-@@ -6385,6 +6396,7 @@ static void alc_combo_jack_hp_jd_restart(struct hda_codec *codec)
-       case 0x10ec0236:
-       case 0x10ec0255:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */
-               alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15);
-               break;
-@@ -10094,6 +10106,7 @@ static int patch_alc269(struct hda_codec *codec)
-       case 0x10ec0230:
-       case 0x10ec0236:
-       case 0x10ec0256:
-+      case 0x19e58326:
-               spec->codec_variant = ALC269_TYPE_ALC256;
-               spec->shutup = alc256_shutup;
-               spec->init_hook = alc256_init;
-@@ -11544,6 +11557,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
-       HDA_CODEC_ENTRY(0x10ec0b00, "ALCS1200A", patch_alc882),
-       HDA_CODEC_ENTRY(0x10ec1168, "ALC1220", patch_alc882),
-       HDA_CODEC_ENTRY(0x10ec1220, "ALC1220", patch_alc882),
-+      HDA_CODEC_ENTRY(0x19e58326, "HW8326", patch_alc269),
-       {} /* terminator */
- };
- MODULE_DEVICE_TABLE(hdaudio, snd_hda_id_realtek);
--- 
-2.35.1
-
diff --git a/queue-5.17/arm64-ftrace-consistently-handle-plts.patch b/queue-5.17/arm64-ftrace-consistently-handle-plts.patch
deleted file mode 100644 (file)
index 91d831f..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-From e5bcaaa0b887dcb6cb9d253bbb57584d1cbc42b5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 14 Jun 2022 09:09:43 +0100
-Subject: arm64: ftrace: consistently handle PLTs.
-
-From: Mark Rutland <mark.rutland@arm.com>
-
-[ Upstream commit a6253579977e4c6f7818eeb05bf2bc65678a7187 ]
-
-Sometimes it is necessary to use a PLT entry to call an ftrace
-trampoline. This is handled by ftrace_make_call() and ftrace_make_nop(),
-with each having *almost* identical logic, but this is not handled by
-ftrace_modify_call() since its introduction in commit:
-
-  3b23e4991fb66f6d ("arm64: implement ftrace with regs")
-
-Due to this, if we ever were to call ftrace_modify_call() for a callsite
-which requires a PLT entry for a trampoline, then either:
-
-a) If the old addr requires a trampoline, ftrace_modify_call() will use
-   an out-of-range address to generate the 'old' branch instruction.
-   This will result in warnings from aarch64_insn_gen_branch_imm() and
-   ftrace_modify_code(), and no instructions will be modified. As
-   ftrace_modify_call() will return an error, this will result in
-   subsequent internal ftrace errors.
-
-b) If the old addr does not require a trampoline, but the new addr does,
-   ftrace_modify_call() will use an out-of-range address to generate the
-   'new' branch instruction. This will result in warnings from
-   aarch64_insn_gen_branch_imm(), and ftrace_modify_code() will replace
-   the 'old' branch with a BRK. This will result in a kernel panic when
-   this BRK is later executed.
-
-Practically speaking, case (a) is vastly more likely than case (b), and
-typically this will result in internal ftrace errors that don't
-necessarily affect the rest of the system. This can be demonstrated with
-an out-of-tree test module which triggers ftrace_modify_call(), e.g.
-
-| # insmod test_ftrace.ko
-| test_ftrace: Function test_function raw=0xffffb3749399201c, callsite=0xffffb37493992024
-| branch_imm_common: offset out of range
-| branch_imm_common: offset out of range
-| ------------[ ftrace bug ]------------
-| ftrace failed to modify
-| [<ffffb37493992024>] test_function+0x8/0x38 [test_ftrace]
-|  actual:   1d:00:00:94
-| Updating ftrace call site to call a different ftrace function
-| ftrace record flags: e0000002
-|  (2) R
-|  expected tramp: ffffb374ae42ed54
-| ------------[ cut here ]------------
-| WARNING: CPU: 0 PID: 165 at kernel/trace/ftrace.c:2085 ftrace_bug+0x280/0x2b0
-| Modules linked in: test_ftrace(+)
-| CPU: 0 PID: 165 Comm: insmod Not tainted 5.19.0-rc2-00002-g4d9ead8b45ce #13
-| Hardware name: linux,dummy-virt (DT)
-| pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
-| pc : ftrace_bug+0x280/0x2b0
-| lr : ftrace_bug+0x280/0x2b0
-| sp : ffff80000839ba00
-| x29: ffff80000839ba00 x28: 0000000000000000 x27: ffff80000839bcf0
-| x26: ffffb37493994180 x25: ffffb374b0991c28 x24: ffffb374b0d70000
-| x23: 00000000ffffffea x22: ffffb374afcc33b0 x21: ffffb374b08f9cc8
-| x20: ffff572b8462c000 x19: ffffb374b08f9000 x18: ffffffffffffffff
-| x17: 6c6c6163202c6331 x16: ffffb374ae5ad110 x15: ffffb374b0d51ee4
-| x14: 0000000000000000 x13: 3435646532346561 x12: 3437336266666666
-| x11: 203a706d61727420 x10: 6465746365707865 x9 : ffffb374ae5149e8
-| x8 : 336266666666203a x7 : 706d617274206465 x6 : 00000000fffff167
-| x5 : ffff572bffbc4a08 x4 : 00000000fffff167 x3 : 0000000000000000
-| x2 : 0000000000000000 x1 : ffff572b84461e00 x0 : 0000000000000022
-| Call trace:
-|  ftrace_bug+0x280/0x2b0
-|  ftrace_replace_code+0x98/0xa0
-|  ftrace_modify_all_code+0xe0/0x144
-|  arch_ftrace_update_code+0x14/0x20
-|  ftrace_startup+0xf8/0x1b0
-|  register_ftrace_function+0x38/0x90
-|  test_ftrace_init+0xd0/0x1000 [test_ftrace]
-|  do_one_initcall+0x50/0x2b0
-|  do_init_module+0x50/0x1f0
-|  load_module+0x17c8/0x1d64
-|  __do_sys_finit_module+0xa8/0x100
-|  __arm64_sys_finit_module+0x2c/0x3c
-|  invoke_syscall+0x50/0x120
-|  el0_svc_common.constprop.0+0xdc/0x100
-|  do_el0_svc+0x3c/0xd0
-|  el0_svc+0x34/0xb0
-|  el0t_64_sync_handler+0xbc/0x140
-|  el0t_64_sync+0x18c/0x190
-| ---[ end trace 0000000000000000 ]---
-
-We can solve this by consistently determining whether to use a PLT entry
-for an address.
-
-Note that since (the earlier) commit:
-
-  f1a54ae9af0da4d7 ("arm64: module/ftrace: intialize PLT at load time")
-
-... we can consistently determine the PLT address that a given callsite
-will use, and therefore ftrace_make_nop() does not need to skip
-validation when a PLT is in use.
-
-This patch factors the existing logic out of ftrace_make_call() and
-ftrace_make_nop() into a common ftrace_find_callable_addr() helper
-function, which is used by ftrace_make_call(), ftrace_make_nop(), and
-ftrace_modify_call(). In ftrace_make_nop() the patching is consistently
-validated by ftrace_modify_code() as we can always determine what the
-old instruction should have been.
-
-Fixes: 3b23e4991fb6 ("arm64: implement ftrace with regs")
-Signed-off-by: Mark Rutland <mark.rutland@arm.com>
-Cc: Ard Biesheuvel <ardb@kernel.org>
-Cc: Will Deacon <will@kernel.org>
-Tested-by: "Ivan T. Ivanov" <iivanov@suse.de>
-Reviewed-by: Chengming Zhou <zhouchengming@bytedance.com>
-Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
-Link: https://lore.kernel.org/r/20220614080944.1349146-3-mark.rutland@arm.com
-Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/kernel/ftrace.c | 137 ++++++++++++++++++-------------------
- 1 file changed, 66 insertions(+), 71 deletions(-)
-
-diff --git a/arch/arm64/kernel/ftrace.c b/arch/arm64/kernel/ftrace.c
-index d9e3eda419ec..f3184cd81b19 100644
---- a/arch/arm64/kernel/ftrace.c
-+++ b/arch/arm64/kernel/ftrace.c
-@@ -78,47 +78,76 @@ static struct plt_entry *get_ftrace_plt(struct module *mod, unsigned long addr)
- }
- /*
-- * Turn on the call to ftrace_caller() in instrumented function
-+ * Find the address the callsite must branch to in order to reach '*addr'.
-+ *
-+ * Due to the limited range of 'BL' instructions, modules may be placed too far
-+ * away to branch directly and must use a PLT.
-+ *
-+ * Returns true when '*addr' contains a reachable target address, or has been
-+ * modified to contain a PLT address. Returns false otherwise.
-  */
--int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
-+static bool ftrace_find_callable_addr(struct dyn_ftrace *rec,
-+                                    struct module *mod,
-+                                    unsigned long *addr)
- {
-       unsigned long pc = rec->ip;
--      u32 old, new;
--      long offset = (long)addr - (long)pc;
-+      long offset = (long)*addr - (long)pc;
-+      struct plt_entry *plt;
--      if (offset < -SZ_128M || offset >= SZ_128M) {
--              struct module *mod;
--              struct plt_entry *plt;
-+      /*
-+       * When the target is within range of the 'BL' instruction, use 'addr'
-+       * as-is and branch to that directly.
-+       */
-+      if (offset >= -SZ_128M && offset < SZ_128M)
-+              return true;
--              if (!IS_ENABLED(CONFIG_ARM64_MODULE_PLTS))
--                      return -EINVAL;
-+      /*
-+       * When the target is outside of the range of a 'BL' instruction, we
-+       * must use a PLT to reach it. We can only place PLTs for modules, and
-+       * only when module PLT support is built-in.
-+       */
-+      if (!IS_ENABLED(CONFIG_ARM64_MODULE_PLTS))
-+              return false;
--              /*
--               * On kernels that support module PLTs, the offset between the
--               * branch instruction and its target may legally exceed the
--               * range of an ordinary relative 'bl' opcode. In this case, we
--               * need to branch via a trampoline in the module.
--               *
--               * NOTE: __module_text_address() must be called with preemption
--               * disabled, but we can rely on ftrace_lock to ensure that 'mod'
--               * retains its validity throughout the remainder of this code.
--               */
-+      /*
-+       * 'mod' is only set at module load time, but if we end up
-+       * dealing with an out-of-range condition, we can assume it
-+       * is due to a module being loaded far away from the kernel.
-+       *
-+       * NOTE: __module_text_address() must be called with preemption
-+       * disabled, but we can rely on ftrace_lock to ensure that 'mod'
-+       * retains its validity throughout the remainder of this code.
-+       */
-+      if (!mod) {
-               preempt_disable();
-               mod = __module_text_address(pc);
-               preempt_enable();
-+      }
--              if (WARN_ON(!mod))
--                      return -EINVAL;
-+      if (WARN_ON(!mod))
-+              return false;
--              plt = get_ftrace_plt(mod, addr);
--              if (!plt) {
--                      pr_err("ftrace: no module PLT for %ps\n", (void *)addr);
--                      return -EINVAL;
--              }
--
--              addr = (unsigned long)plt;
-+      plt = get_ftrace_plt(mod, *addr);
-+      if (!plt) {
-+              pr_err("ftrace: no module PLT for %ps\n", (void *)*addr);
-+              return false;
-       }
-+      *addr = (unsigned long)plt;
-+      return true;
-+}
-+
-+/*
-+ * Turn on the call to ftrace_caller() in instrumented function
-+ */
-+int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
-+{
-+      unsigned long pc = rec->ip;
-+      u32 old, new;
-+
-+      if (!ftrace_find_callable_addr(rec, NULL, &addr))
-+              return -EINVAL;
-+
-       old = aarch64_insn_gen_nop();
-       new = aarch64_insn_gen_branch_imm(pc, addr, AARCH64_INSN_BRANCH_LINK);
-@@ -132,6 +161,11 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
-       unsigned long pc = rec->ip;
-       u32 old, new;
-+      if (!ftrace_find_callable_addr(rec, NULL, &old_addr))
-+              return -EINVAL;
-+      if (!ftrace_find_callable_addr(rec, NULL, &addr))
-+              return -EINVAL;
-+
-       old = aarch64_insn_gen_branch_imm(pc, old_addr,
-                                         AARCH64_INSN_BRANCH_LINK);
-       new = aarch64_insn_gen_branch_imm(pc, addr, AARCH64_INSN_BRANCH_LINK);
-@@ -181,54 +215,15 @@ int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
-                   unsigned long addr)
- {
-       unsigned long pc = rec->ip;
--      bool validate = true;
-       u32 old = 0, new;
--      long offset = (long)addr - (long)pc;
--      if (offset < -SZ_128M || offset >= SZ_128M) {
--              u32 replaced;
--
--              if (!IS_ENABLED(CONFIG_ARM64_MODULE_PLTS))
--                      return -EINVAL;
--
--              /*
--               * 'mod' is only set at module load time, but if we end up
--               * dealing with an out-of-range condition, we can assume it
--               * is due to a module being loaded far away from the kernel.
--               */
--              if (!mod) {
--                      preempt_disable();
--                      mod = __module_text_address(pc);
--                      preempt_enable();
--
--                      if (WARN_ON(!mod))
--                              return -EINVAL;
--              }
--
--              /*
--               * The instruction we are about to patch may be a branch and
--               * link instruction that was redirected via a PLT entry. In
--               * this case, the normal validation will fail, but we can at
--               * least check that we are dealing with a branch and link
--               * instruction that points into the right module.
--               */
--              if (aarch64_insn_read((void *)pc, &replaced))
--                      return -EFAULT;
--
--              if (!aarch64_insn_is_bl(replaced) ||
--                  !within_module(pc + aarch64_get_branch_offset(replaced),
--                                 mod))
--                      return -EINVAL;
--
--              validate = false;
--      } else {
--              old = aarch64_insn_gen_branch_imm(pc, addr,
--                                                AARCH64_INSN_BRANCH_LINK);
--      }
-+      if (!ftrace_find_callable_addr(rec, mod, &addr))
-+              return -EINVAL;
-+      old = aarch64_insn_gen_branch_imm(pc, addr, AARCH64_INSN_BRANCH_LINK);
-       new = aarch64_insn_gen_nop();
--      return ftrace_modify_code(pc, old, new, validate);
-+      return ftrace_modify_code(pc, old, new, true);
- }
- void arch_ftrace_update_code(int command)
--- 
-2.35.1
-
diff --git a/queue-5.17/arm64-ftrace-fix-branch-range-checks.patch b/queue-5.17/arm64-ftrace-fix-branch-range-checks.patch
deleted file mode 100644 (file)
index 441bbc0..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From 69ca76f9d0ce71230973d4b2666aac77e3b77fa3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 14 Jun 2022 09:09:42 +0100
-Subject: arm64: ftrace: fix branch range checks
-
-From: Mark Rutland <mark.rutland@arm.com>
-
-[ Upstream commit 3eefdf9d1e406f3da47470b2854347009ffcb6fa ]
-
-The branch range checks in ftrace_make_call() and ftrace_make_nop() are
-incorrect, erroneously permitting a forwards branch of 128M and
-erroneously rejecting a backwards branch of 128M.
-
-This is because both functions calculate the offset backwards,
-calculating the offset *from* the target *to* the branch, rather than
-the other way around as the later comparisons expect.
-
-If an out-of-range branch were erroeously permitted, this would later be
-rejected by aarch64_insn_gen_branch_imm() as branch_imm_common() checks
-the bounds correctly, resulting in warnings and the placement of a BRK
-instruction. Note that this can only happen for a forwards branch of
-exactly 128M, and so the caller would need to be exactly 128M bytes
-below the relevant ftrace trampoline.
-
-If an in-range branch were erroeously rejected, then:
-
-* For modules when CONFIG_ARM64_MODULE_PLTS=y, this would result in the
-  use of a PLT entry, which is benign.
-
-  Note that this is the common case, as this is selected by
-  CONFIG_RANDOMIZE_BASE (and therefore RANDOMIZE_MODULE_REGION_FULL),
-  which distributions typically seelct. This is also selected by
-  CONFIG_ARM64_ERRATUM_843419.
-
-* For modules when CONFIG_ARM64_MODULE_PLTS=n, this would result in
-  internal ftrace failures.
-
-* For core kernel text, this would result in internal ftrace failues.
-
-  Note that for this to happen, the kernel text would need to be at
-  least 128M bytes in size, and typical configurations are smaller tha
-  this.
-
-Fix this by calculating the offset *from* the branch *to* the target in
-both functions.
-
-Fixes: f8af0b364e24 ("arm64: ftrace: don't validate branch via PLT in ftrace_make_nop()")
-Fixes: e71a4e1bebaf ("arm64: ftrace: add support for far branches to dynamic ftrace")
-Signed-off-by: Mark Rutland <mark.rutland@arm.com>
-Cc: Ard Biesheuvel <ardb@kernel.org>
-Cc: Will Deacon <will@kernel.org>
-Tested-by: "Ivan T. Ivanov" <iivanov@suse.de>
-Reviewed-by: Chengming Zhou <zhouchengming@bytedance.com>
-Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
-Link: https://lore.kernel.org/r/20220614080944.1349146-2-mark.rutland@arm.com
-Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/kernel/ftrace.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/kernel/ftrace.c b/arch/arm64/kernel/ftrace.c
-index 4506c4a90ac1..d9e3eda419ec 100644
---- a/arch/arm64/kernel/ftrace.c
-+++ b/arch/arm64/kernel/ftrace.c
-@@ -84,7 +84,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
- {
-       unsigned long pc = rec->ip;
-       u32 old, new;
--      long offset = (long)pc - (long)addr;
-+      long offset = (long)addr - (long)pc;
-       if (offset < -SZ_128M || offset >= SZ_128M) {
-               struct module *mod;
-@@ -183,7 +183,7 @@ int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
-       unsigned long pc = rec->ip;
-       bool validate = true;
-       u32 old = 0, new;
--      long offset = (long)pc - (long)addr;
-+      long offset = (long)addr - (long)pc;
-       if (offset < -SZ_128M || offset >= SZ_128M) {
-               u32 replaced;
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-cs35l36-update-digital-volume-tlv.patch b/queue-5.17/asoc-cs35l36-update-digital-volume-tlv.patch
deleted file mode 100644 (file)
index 2ce48d6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 5cdfaf6a263c74054c8ce93080c2dba5804da3ee Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 17:21:15 +0100
-Subject: ASoC: cs35l36: Update digital volume TLV
-
-From: Charles Keepax <ckeepax@opensource.cirrus.com>
-
-[ Upstream commit 5005a2345825eb8346546d99bfe669f73111b5c5 ]
-
-The digital volume TLV specifies the step as 0.25dB but the actual step
-of the control is 0.125dB. Update the TLV to correct this.
-
-Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220602162119.3393857-3-ckeepax@opensource.cirrus.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/cs35l36.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/cs35l36.c b/sound/soc/codecs/cs35l36.c
-index d83c1b318c1c..0accdb45ed72 100644
---- a/sound/soc/codecs/cs35l36.c
-+++ b/sound/soc/codecs/cs35l36.c
-@@ -444,7 +444,8 @@ static bool cs35l36_volatile_reg(struct device *dev, unsigned int reg)
-       }
- }
--static DECLARE_TLV_DB_SCALE(dig_vol_tlv, -10200, 25, 0);
-+static const DECLARE_TLV_DB_RANGE(dig_vol_tlv, 0, 912,
-+                                TLV_DB_MINMAX_ITEM(-10200, 1200));
- static DECLARE_TLV_DB_SCALE(amp_gain_tlv, 0, 1, 1);
- static const char * const cs35l36_pcm_sftramp_text[] =  {
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-cs42l51-correct-minimum-value-for-sx-volume-con.patch b/queue-5.17/asoc-cs42l51-correct-minimum-value-for-sx-volume-con.patch
deleted file mode 100644 (file)
index 2903b19..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 668f6a820d5bcca342fc3183c085448b673d3e2c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 17:21:19 +0100
-Subject: ASoC: cs42l51: Correct minimum value for SX volume control
-
-From: Charles Keepax <ckeepax@opensource.cirrus.com>
-
-[ Upstream commit fcb3b5a58926d16d9a338841b74af06d4c29be15 ]
-
-The minimum value for the PGA Volume is given as 0x1A, however the
-values from there to 0x19 are all the same volume and this is not
-represented in the TLV structure. The number of volumes given is correct
-so this leads to all the volumes being shifted. Move the minimum value
-up to 0x19 to fix this.
-
-Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220602162119.3393857-7-ckeepax@opensource.cirrus.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/cs42l51.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/cs42l51.c b/sound/soc/codecs/cs42l51.c
-index c61b17dc2af8..fc6a2bc311b4 100644
---- a/sound/soc/codecs/cs42l51.c
-+++ b/sound/soc/codecs/cs42l51.c
-@@ -146,7 +146,7 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
-                       0, 0xA0, 96, adc_att_tlv),
-       SOC_DOUBLE_R_SX_TLV("PGA Volume",
-                       CS42L51_ALC_PGA_CTL, CS42L51_ALC_PGB_CTL,
--                      0, 0x1A, 30, pga_tlv),
-+                      0, 0x19, 30, pga_tlv),
-       SOC_SINGLE("Playback Deemphasis Switch", CS42L51_DAC_CTL, 3, 1, 0),
-       SOC_SINGLE("Auto-Mute Switch", CS42L51_DAC_CTL, 2, 1, 0),
-       SOC_SINGLE("Soft Ramp Switch", CS42L51_DAC_CTL, 1, 1, 0),
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-cs42l52-correct-tlv-for-bypass-volume.patch b/queue-5.17/asoc-cs42l52-correct-tlv-for-bypass-volume.patch
deleted file mode 100644 (file)
index 4de12e2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From c28a9eceb1beca5c2a7cdbe70d1751d8fa57369b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 17:21:17 +0100
-Subject: ASoC: cs42l52: Correct TLV for Bypass Volume
-
-From: Charles Keepax <ckeepax@opensource.cirrus.com>
-
-[ Upstream commit 91e90c712fade0b69cdff7cc6512f6099bd18ae5 ]
-
-The Bypass Volume is accidentally using a -6dB minimum TLV rather than
-the correct -60dB minimum. Add a new TLV to correct this.
-
-Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220602162119.3393857-5-ckeepax@opensource.cirrus.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/cs42l52.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/cs42l52.c b/sound/soc/codecs/cs42l52.c
-index 785caba3f653..c19ad3c24702 100644
---- a/sound/soc/codecs/cs42l52.c
-+++ b/sound/soc/codecs/cs42l52.c
-@@ -137,6 +137,8 @@ static DECLARE_TLV_DB_SCALE(mic_tlv, 1600, 100, 0);
- static DECLARE_TLV_DB_SCALE(pga_tlv, -600, 50, 0);
-+static DECLARE_TLV_DB_SCALE(pass_tlv, -6000, 50, 0);
-+
- static DECLARE_TLV_DB_SCALE(mix_tlv, -5150, 50, 0);
- static DECLARE_TLV_DB_SCALE(beep_tlv, -56, 200, 0);
-@@ -351,7 +353,7 @@ static const struct snd_kcontrol_new cs42l52_snd_controls[] = {
-                             CS42L52_SPKB_VOL, 0, 0x40, 0xC0, hl_tlv),
-       SOC_DOUBLE_R_SX_TLV("Bypass Volume", CS42L52_PASSTHRUA_VOL,
--                            CS42L52_PASSTHRUB_VOL, 0, 0x88, 0x90, pga_tlv),
-+                            CS42L52_PASSTHRUB_VOL, 0, 0x88, 0x90, pass_tlv),
-       SOC_DOUBLE("Bypass Mute", CS42L52_MISC_CTL, 4, 5, 1, 0),
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-cs42l52-fix-tlv-scales-for-mixer-controls.patch b/queue-5.17/asoc-cs42l52-fix-tlv-scales-for-mixer-controls.patch
deleted file mode 100644 (file)
index 7f12898..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From bb1f891fd787a4c6940a5f054c65ea2900733b11 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 17:21:14 +0100
-Subject: ASoC: cs42l52: Fix TLV scales for mixer controls
-
-From: Charles Keepax <ckeepax@opensource.cirrus.com>
-
-[ Upstream commit 8bf5aabf524eec61013e506f764a0b2652dc5665 ]
-
-The datasheet specifies the range of the mixer volumes as between
--51.5dB and 12dB with a 0.5dB step. Update the TLVs for this.
-
-Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220602162119.3393857-2-ckeepax@opensource.cirrus.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/cs42l52.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/codecs/cs42l52.c b/sound/soc/codecs/cs42l52.c
-index 80161151b3f2..785caba3f653 100644
---- a/sound/soc/codecs/cs42l52.c
-+++ b/sound/soc/codecs/cs42l52.c
-@@ -137,7 +137,7 @@ static DECLARE_TLV_DB_SCALE(mic_tlv, 1600, 100, 0);
- static DECLARE_TLV_DB_SCALE(pga_tlv, -600, 50, 0);
--static DECLARE_TLV_DB_SCALE(mix_tlv, -50, 50, 0);
-+static DECLARE_TLV_DB_SCALE(mix_tlv, -5150, 50, 0);
- static DECLARE_TLV_DB_SCALE(beep_tlv, -56, 200, 0);
-@@ -364,7 +364,7 @@ static const struct snd_kcontrol_new cs42l52_snd_controls[] = {
-                             CS42L52_ADCB_VOL, 0, 0xA0, 0x78, ipd_tlv),
-       SOC_DOUBLE_R_SX_TLV("ADC Mixer Volume",
-                            CS42L52_ADCA_MIXER_VOL, CS42L52_ADCB_MIXER_VOL,
--                              0, 0x19, 0x7F, ipd_tlv),
-+                              0, 0x19, 0x7F, mix_tlv),
-       SOC_DOUBLE("ADC Switch", CS42L52_ADC_MISC_CTL, 0, 1, 1, 0),
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-cs42l56-correct-typo-in-minimum-level-for-sx-vo.patch b/queue-5.17/asoc-cs42l56-correct-typo-in-minimum-level-for-sx-vo.patch
deleted file mode 100644 (file)
index 1fe1ede..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From c420564eded0b75c298e86757b0c1691bba34b44 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 17:21:18 +0100
-Subject: ASoC: cs42l56: Correct typo in minimum level for SX volume controls
-
-From: Charles Keepax <ckeepax@opensource.cirrus.com>
-
-[ Upstream commit a8928ada9b96944cadd8b65d191e33199fd38782 ]
-
-A couple of the SX volume controls specify 0x84 as the lowest volume
-value, however the correct value from the datasheet is 0x44. The
-datasheet don't include spaces in the value it displays as binary so
-this was almost certainly just a typo reading 1000100.
-
-Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220602162119.3393857-6-ckeepax@opensource.cirrus.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/cs42l56.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/codecs/cs42l56.c b/sound/soc/codecs/cs42l56.c
-index 3cf8a0b4478c..b39c25409c23 100644
---- a/sound/soc/codecs/cs42l56.c
-+++ b/sound/soc/codecs/cs42l56.c
-@@ -391,9 +391,9 @@ static const struct snd_kcontrol_new cs42l56_snd_controls[] = {
-       SOC_DOUBLE("ADC Boost Switch", CS42L56_GAIN_BIAS_CTL, 3, 2, 1, 1),
-       SOC_DOUBLE_R_SX_TLV("Headphone Volume", CS42L56_HPA_VOLUME,
--                            CS42L56_HPB_VOLUME, 0, 0x84, 0x48, hl_tlv),
-+                            CS42L56_HPB_VOLUME, 0, 0x44, 0x48, hl_tlv),
-       SOC_DOUBLE_R_SX_TLV("LineOut Volume", CS42L56_LOA_VOLUME,
--                            CS42L56_LOB_VOLUME, 0, 0x84, 0x48, hl_tlv),
-+                            CS42L56_LOB_VOLUME, 0, 0x44, 0x48, hl_tlv),
-       SOC_SINGLE_TLV("Bass Shelving Volume", CS42L56_TONE_CTL,
-                       0, 0x00, 1, tone_tlv),
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-cs53l30-correct-number-of-volume-levels-on-sx-c.patch b/queue-5.17/asoc-cs53l30-correct-number-of-volume-levels-on-sx-c.patch
deleted file mode 100644 (file)
index a28cc2f..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From 684f2730fdee38ad9e4c0ebc6e3405e644ff8282 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 17:21:16 +0100
-Subject: ASoC: cs53l30: Correct number of volume levels on SX controls
-
-From: Charles Keepax <ckeepax@opensource.cirrus.com>
-
-[ Upstream commit 7fbd6dd68127927e844912a16741016d432a0737 ]
-
-This driver specified the maximum value rather than the number of volume
-levels on the SX controls, this is incorrect, so correct them.
-
-Reported-by: David Rhodes <david.rhodes@cirrus.com>
-Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220602162119.3393857-4-ckeepax@opensource.cirrus.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/cs53l30.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/sound/soc/codecs/cs53l30.c b/sound/soc/codecs/cs53l30.c
-index f2087bd38dbc..c2912ad3851b 100644
---- a/sound/soc/codecs/cs53l30.c
-+++ b/sound/soc/codecs/cs53l30.c
-@@ -348,22 +348,22 @@ static const struct snd_kcontrol_new cs53l30_snd_controls[] = {
-       SOC_ENUM("ADC2 NG Delay", adc2_ng_delay_enum),
-       SOC_SINGLE_SX_TLV("ADC1A PGA Volume",
--                  CS53L30_ADC1A_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
-+                  CS53L30_ADC1A_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
-       SOC_SINGLE_SX_TLV("ADC1B PGA Volume",
--                  CS53L30_ADC1B_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
-+                  CS53L30_ADC1B_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
-       SOC_SINGLE_SX_TLV("ADC2A PGA Volume",
--                  CS53L30_ADC2A_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
-+                  CS53L30_ADC2A_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
-       SOC_SINGLE_SX_TLV("ADC2B PGA Volume",
--                  CS53L30_ADC2B_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
-+                  CS53L30_ADC2B_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
-       SOC_SINGLE_SX_TLV("ADC1A Digital Volume",
--                  CS53L30_ADC1A_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
-+                  CS53L30_ADC1A_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
-       SOC_SINGLE_SX_TLV("ADC1B Digital Volume",
--                  CS53L30_ADC1B_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
-+                  CS53L30_ADC1B_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
-       SOC_SINGLE_SX_TLV("ADC2A Digital Volume",
--                  CS53L30_ADC2A_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
-+                  CS53L30_ADC2A_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
-       SOC_SINGLE_SX_TLV("ADC2B Digital Volume",
--                  CS53L30_ADC2B_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
-+                  CS53L30_ADC2B_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
- };
- static const struct snd_soc_dapm_widget cs53l30_dapm_widgets[] = {
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-es8328-fix-event-generation-for-deemphasis-cont.patch b/queue-5.17/asoc-es8328-fix-event-generation-for-deemphasis-cont.patch
deleted file mode 100644 (file)
index cf992ba..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 95c2e9d66f797321a001b42d598cf7612e92f7aa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 3 Jun 2022 14:39:37 +0200
-Subject: ASoC: es8328: Fix event generation for deemphasis control
-
-From: Mark Brown <broonie@kernel.org>
-
-[ Upstream commit 8259610c2ec01c5cbfb61882ae176aabacac9c19 ]
-
-Currently the put() method for the deemphasis control returns 0 when a new
-value is written to the control even if the value changed, meaning events
-are not generated. Fix this, skip the work of updating the value when it is
-unchanged and then return 1 after having done so.
-
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Link: https://lore.kernel.org/r/20220603123937.4013603-1-broonie@kernel.org
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/es8328.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/es8328.c b/sound/soc/codecs/es8328.c
-index 9632afc2d4d6..ca3b1c00fa78 100644
---- a/sound/soc/codecs/es8328.c
-+++ b/sound/soc/codecs/es8328.c
-@@ -161,13 +161,16 @@ static int es8328_put_deemph(struct snd_kcontrol *kcontrol,
-       if (deemph > 1)
-               return -EINVAL;
-+      if (es8328->deemph == deemph)
-+              return 0;
-+
-       ret = es8328_set_deemph(component);
-       if (ret < 0)
-               return ret;
-       es8328->deemph = deemph;
--      return 0;
-+      return 1;
- }
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-nau8822-add-operation-for-internal-pll-off-and-.patch b/queue-5.17/asoc-nau8822-add-operation-for-internal-pll-off-and-.patch
deleted file mode 100644 (file)
index ae3ff9e..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From bd33a74e6503780715f32978cd3f201ef2d43b47 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 30 May 2022 12:01:50 +0800
-Subject: ASoC: nau8822: Add operation for internal PLL off and on
-
-From: Hui Wang <hui.wang@canonical.com>
-
-[ Upstream commit aeca8a3295022bcec46697f16e098140423d8463 ]
-
-We tried to enable the audio on an imx6sx EVB with the codec nau8822,
-after setting the internal PLL fractional parameters, the audio still
-couldn't work and the there was no sdma irq at all.
-
-After checking with the section "8.1.1 Phase Locked Loop (PLL) Design
-Example" of "NAU88C22 Datasheet Rev 0.6", we found we need to
-turn off the PLL before programming fractional parameters and turn on
-the PLL after programming.
-
-After this change, the audio driver could record and play sound and
-the sdma's irq is triggered when playing or recording.
-
-Cc: David Lin <ctlin0@nuvoton.com>
-Cc: John Hsu <kchsu0@nuvoton.com>
-Cc: Seven Li <wtli@nuvoton.com>
-Signed-off-by: Hui Wang <hui.wang@canonical.com>
-Link: https://lore.kernel.org/r/20220530040151.95221-2-hui.wang@canonical.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/nau8822.c | 4 ++++
- sound/soc/codecs/nau8822.h | 3 +++
- 2 files changed, 7 insertions(+)
-
-diff --git a/sound/soc/codecs/nau8822.c b/sound/soc/codecs/nau8822.c
-index 58123390c7a3..b436e532993d 100644
---- a/sound/soc/codecs/nau8822.c
-+++ b/sound/soc/codecs/nau8822.c
-@@ -740,6 +740,8 @@ static int nau8822_set_pll(struct snd_soc_dai *dai, int pll_id, int source,
-               pll_param->pll_int, pll_param->pll_frac,
-               pll_param->mclk_scaler, pll_param->pre_factor);
-+      snd_soc_component_update_bits(component,
-+              NAU8822_REG_POWER_MANAGEMENT_1, NAU8822_PLL_EN_MASK, NAU8822_PLL_OFF);
-       snd_soc_component_update_bits(component,
-               NAU8822_REG_PLL_N, NAU8822_PLLMCLK_DIV2 | NAU8822_PLLN_MASK,
-               (pll_param->pre_factor ? NAU8822_PLLMCLK_DIV2 : 0) |
-@@ -757,6 +759,8 @@ static int nau8822_set_pll(struct snd_soc_dai *dai, int pll_id, int source,
-               pll_param->mclk_scaler << NAU8822_MCLKSEL_SFT);
-       snd_soc_component_update_bits(component,
-               NAU8822_REG_CLOCKING, NAU8822_CLKM_MASK, NAU8822_CLKM_PLL);
-+      snd_soc_component_update_bits(component,
-+              NAU8822_REG_POWER_MANAGEMENT_1, NAU8822_PLL_EN_MASK, NAU8822_PLL_ON);
-       return 0;
- }
-diff --git a/sound/soc/codecs/nau8822.h b/sound/soc/codecs/nau8822.h
-index 489191ff187e..b45d42c15de6 100644
---- a/sound/soc/codecs/nau8822.h
-+++ b/sound/soc/codecs/nau8822.h
-@@ -90,6 +90,9 @@
- #define NAU8822_REFIMP_3K                     0x3
- #define NAU8822_IOBUF_EN                      (0x1 << 2)
- #define NAU8822_ABIAS_EN                      (0x1 << 3)
-+#define NAU8822_PLL_EN_MASK                   (0x1 << 5)
-+#define NAU8822_PLL_ON                                (0x1 << 5)
-+#define NAU8822_PLL_OFF                               (0x0 << 5)
- /* NAU8822_REG_AUDIO_INTERFACE (0x4) */
- #define NAU8822_AIFMT_MASK                    (0x3 << 3)
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-wm8962-fix-suspend-while-playing-music.patch b/queue-5.17/asoc-wm8962-fix-suspend-while-playing-music.patch
deleted file mode 100644 (file)
index 3e5cc90..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 396b625d2bc9ce2b006ea1cc43e9d94b03990095 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 26 May 2022 13:21:28 -0500
-Subject: ASoC: wm8962: Fix suspend while playing music
-
-From: Adam Ford <aford173@gmail.com>
-
-[ Upstream commit d1f5272c0f7d2e53c6f2480f46725442776f5f78 ]
-
-If the audio CODEC is playing sound when the system is suspended,
-it can be left in a state which throws the following error:
-
-wm8962 3-001a: ASoC: error at soc_component_read_no_lock on wm8962.3-001a: -16
-
-Once this error has occurred, the audio will not work again until rebooted.
-
-Fix this by configuring SET_SYSTEM_SLEEP_PM_OPS.
-
-Signed-off-by: Adam Ford <aford173@gmail.com>
-Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220526182129.538472-1-aford173@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/wm8962.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
-index a5584ba962dc..e97eaca7049f 100644
---- a/sound/soc/codecs/wm8962.c
-+++ b/sound/soc/codecs/wm8962.c
-@@ -3858,6 +3858,7 @@ static int wm8962_runtime_suspend(struct device *dev)
- #endif
- static const struct dev_pm_ops wm8962_pm = {
-+      SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
-       SET_RUNTIME_PM_OPS(wm8962_runtime_suspend, wm8962_runtime_resume, NULL)
- };
--- 
-2.35.1
-
diff --git a/queue-5.17/asoc-wm_adsp-fix-event-generation-for-wm_adsp_fw_put.patch b/queue-5.17/asoc-wm_adsp-fix-event-generation-for-wm_adsp_fw_put.patch
deleted file mode 100644 (file)
index 6bcca4c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 0677204b9059b4d402e71110b4f4dcddc3c99786 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 3 Jun 2022 13:50:03 +0200
-Subject: ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put()
-
-From: Mark Brown <broonie@kernel.org>
-
-[ Upstream commit 2abdf9f80019e8244d3806ed0e1c9f725e50b452 ]
-
-Currently wm_adsp_fw_put() returns 0 rather than 1 when updating the value
-of the control, meaning that no event is generated to userspace. Fix this
-by setting the default return value to 1, the code already exits early with
-a return value of 0 if the value is unchanged.
-
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Reviewed-by: Richard Fitzgerald <rf@opensource.cirrus.com>
-Link: https://lore.kernel.org/r/20220603115003.3865834-1-broonie@kernel.org
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/wm_adsp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
-index 0582585236a2..93677b9f3a68 100644
---- a/sound/soc/codecs/wm_adsp.c
-+++ b/sound/soc/codecs/wm_adsp.c
-@@ -328,7 +328,7 @@ int wm_adsp_fw_put(struct snd_kcontrol *kcontrol,
-       struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
-       struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
-       struct wm_adsp *dsp = snd_soc_component_get_drvdata(component);
--      int ret = 0;
-+      int ret = 1;
-       if (ucontrol->value.enumerated.item[0] == dsp[e->shift_l].fw)
-               return 0;
--- 
-2.35.1
-
diff --git a/queue-5.17/ata-libata-core-fix-null-pointer-deref-in-ata_host_a.patch b/queue-5.17/ata-libata-core-fix-null-pointer-deref-in-ata_host_a.patch
deleted file mode 100644 (file)
index 8008b03..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From c857d6f238f4ba3604928a8643db57925ddca700 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 21 May 2022 23:34:10 +0300
-Subject: ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
-
-From: Sergey Shtylyov <s.shtylyov@omp.ru>
-
-[ Upstream commit bf476fe22aa1851bab4728e0c49025a6a0bea307 ]
-
-In an unlikely (and probably wrong?) case that the 'ppi' parameter of
-ata_host_alloc_pinfo() points to an array starting with a NULL pointer,
-there's going to be a kernel oops as the 'pi' local variable won't get
-reassigned from the initial value of NULL. Initialize 'pi' instead to
-'&ata_dummy_port_info' to fix the possible kernel oops for good...
-
-Found by Linux Verification Center (linuxtesting.org) with the SVACE static
-analysis tool.
-
-Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index a3a547ed0eb0..bad2aee25555 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -5507,7 +5507,7 @@ struct ata_host *ata_host_alloc_pinfo(struct device *dev,
-                                     const struct ata_port_info * const * ppi,
-                                     int n_ports)
- {
--      const struct ata_port_info *pi;
-+      const struct ata_port_info *pi = &ata_dummy_port_info;
-       struct ata_host *host;
-       int i, j;
-@@ -5515,7 +5515,7 @@ struct ata_host *ata_host_alloc_pinfo(struct device *dev,
-       if (!host)
-               return NULL;
--      for (i = 0, j = 0, pi = NULL; i < host->n_ports; i++) {
-+      for (i = 0, j = 0; i < host->n_ports; i++) {
-               struct ata_port *ap = host->ports[i];
-               if (ppi[j])
--- 
-2.35.1
-
diff --git a/queue-5.17/block-fix-handling-of-offline-queues-in-blk_mq_alloc.patch b/queue-5.17/block-fix-handling-of-offline-queues-in-blk_mq_alloc.patch
deleted file mode 100644 (file)
index 7bce455..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From b2b600b112a7e7996b24c1afbde386a6e84d545e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 14:00:04 -0700
-Subject: block: Fix handling of offline queues in blk_mq_alloc_request_hctx()
-
-From: Bart Van Assche <bvanassche@acm.org>
-
-[ Upstream commit 14dc7a18abbe4176f5626c13c333670da8e06aa1 ]
-
-This patch prevents that test nvme/004 triggers the following:
-
-UBSAN: array-index-out-of-bounds in block/blk-mq.h:135:9
-index 512 is out of range for type 'long unsigned int [512]'
-Call Trace:
- show_stack+0x52/0x58
- dump_stack_lvl+0x49/0x5e
- dump_stack+0x10/0x12
- ubsan_epilogue+0x9/0x3b
- __ubsan_handle_out_of_bounds.cold+0x44/0x49
- blk_mq_alloc_request_hctx+0x304/0x310
- __nvme_submit_sync_cmd+0x70/0x200 [nvme_core]
- nvmf_connect_io_queue+0x23e/0x2a0 [nvme_fabrics]
- nvme_loop_connect_io_queues+0x8d/0xb0 [nvme_loop]
- nvme_loop_create_ctrl+0x58e/0x7d0 [nvme_loop]
- nvmf_create_ctrl+0x1d7/0x4d0 [nvme_fabrics]
- nvmf_dev_write+0xae/0x111 [nvme_fabrics]
- vfs_write+0x144/0x560
- ksys_write+0xb7/0x140
- __x64_sys_write+0x42/0x50
- do_syscall_64+0x35/0x80
- entry_SYSCALL_64_after_hwframe+0x44/0xae
-
-Cc: Christoph Hellwig <hch@lst.de>
-Cc: Ming Lei <ming.lei@redhat.com>
-Fixes: 20e4d8139319 ("blk-mq: simplify queue mapping & schedule with each possisble CPU")
-Signed-off-by: Bart Van Assche <bvanassche@acm.org>
-Reviewed-by: Christoph Hellwig <hch@lst.de>
-Reviewed-by: Ming Lei <ming.lei@redhat.com>
-Link: https://lore.kernel.org/r/20220615210004.1031820-1-bvanassche@acm.org
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- block/blk-mq.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/block/blk-mq.c b/block/blk-mq.c
-index f18e1c9c3f4a..bef60ba8ef6b 100644
---- a/block/blk-mq.c
-+++ b/block/blk-mq.c
-@@ -578,6 +578,8 @@ struct request *blk_mq_alloc_request_hctx(struct request_queue *q,
-       if (!blk_mq_hw_queue_mapped(data.hctx))
-               goto out_queue_exit;
-       cpu = cpumask_first_and(data.hctx->cpumask, cpu_online_mask);
-+      if (cpu >= nr_cpu_ids)
-+              goto out_queue_exit;
-       data.ctx = __blk_mq_get_ctx(q, cpu);
-       if (!q->elevator)
--- 
-2.35.1
-
diff --git a/queue-5.17/certs-blacklist_hashes.c-fix-const-confusion-in-cert.patch b/queue-5.17/certs-blacklist_hashes.c-fix-const-confusion-in-cert.patch
deleted file mode 100644 (file)
index be3cddf..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From f38c71bffd545bf39d5d6eb4ff4a520080323bf0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 12 Jun 2022 02:22:30 +0900
-Subject: certs/blacklist_hashes.c: fix const confusion in certs blacklist
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Masahiro Yamada <masahiroy@kernel.org>
-
-[ Upstream commit 6a1c3767d82ed8233de1263aa7da81595e176087 ]
-
-This file fails to compile as follows:
-
-  CC      certs/blacklist_hashes.o
-certs/blacklist_hashes.c:4:1: error: ignoring attribute ‘section (".init.data")’ because it conflicts with previous ‘section (".init.rodata")’ [-Werror=attributes]
-    4 | const char __initdata *const blacklist_hashes[] = {
-      | ^~~~~
-In file included from certs/blacklist_hashes.c:2:
-certs/blacklist.h:5:38: note: previous declaration here
-    5 | extern const char __initconst *const blacklist_hashes[];
-      |                                      ^~~~~~~~~~~~~~~~
-
-Apply the same fix as commit 2be04df5668d ("certs/blacklist_nohashes.c:
-fix const confusion in certs blacklist").
-
-Fixes: 734114f8782f ("KEYS: Add a system blacklist keyring")
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
-Reviewed-by: Mickaël Salaün <mic@linux.microsoft.com>
-Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- certs/blacklist_hashes.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/certs/blacklist_hashes.c b/certs/blacklist_hashes.c
-index 344892337be0..d5961aa3d338 100644
---- a/certs/blacklist_hashes.c
-+++ b/certs/blacklist_hashes.c
-@@ -1,7 +1,7 @@
- // SPDX-License-Identifier: GPL-2.0
- #include "blacklist.h"
--const char __initdata *const blacklist_hashes[] = {
-+const char __initconst *const blacklist_hashes[] = {
- #include CONFIG_SYSTEM_BLACKLIST_HASH_LIST
-       , NULL
- };
--- 
-2.35.1
-
diff --git a/queue-5.17/clocksource-hyper-v-unexport-__init-annotated-hv_ini.patch b/queue-5.17/clocksource-hyper-v-unexport-__init-annotated-hv_ini.patch
deleted file mode 100644 (file)
index abc2e41..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 2a47390b6282e620e525c3faab09b866bb001bfc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 6 Jun 2022 14:02:38 +0900
-Subject: clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()
-
-From: Masahiro Yamada <masahiroy@kernel.org>
-
-[ Upstream commit 245b993d8f6c4e25f19191edfbd8080b645e12b1 ]
-
-EXPORT_SYMBOL and __init is a bad combination because the .init.text
-section is freed up after the initialization. Hence, modules cannot
-use symbols annotated __init. The access to a freed symbol may end up
-with kernel panic.
-
-modpost used to detect it, but it has been broken for a decade.
-
-Recently, I fixed modpost so it started to warn it again, then this
-showed up in linux-next builds.
-
-There are two ways to fix it:
-
-  - Remove __init
-  - Remove EXPORT_SYMBOL
-
-I chose the latter for this case because the only in-tree call-site,
-arch/x86/kernel/cpu/mshyperv.c is never compiled as modular.
-(CONFIG_HYPERVISOR_GUEST is boolean)
-
-Fixes: dd2cb348613b ("clocksource/drivers: Continue making Hyper-V clocksource ISA agnostic")
-Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
-Reviewed-by: Michael Kelley <mikelley@microsoft.com>
-Link: https://lore.kernel.org/r/20220606050238.4162200-1-masahiroy@kernel.org
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/clocksource/hyperv_timer.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
-index ff188ab68496..bb47610bbd1c 100644
---- a/drivers/clocksource/hyperv_timer.c
-+++ b/drivers/clocksource/hyperv_timer.c
-@@ -565,4 +565,3 @@ void __init hv_init_clocksource(void)
-       hv_sched_clock_offset = hv_read_reference_counter();
-       hv_setup_sched_clock(read_hv_sched_clock_msr);
- }
--EXPORT_SYMBOL_GPL(hv_init_clocksource);
--- 
-2.35.1
-
diff --git a/queue-5.17/dma-debug-make-things-less-spammy-under-memory-press.patch b/queue-5.17/dma-debug-make-things-less-spammy-under-memory-press.patch
deleted file mode 100644 (file)
index 1e8ce7a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From f1bb9eb371b50814e8f66ace143806b5d9f0f256 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 07:51:16 -0700
-Subject: dma-debug: make things less spammy under memory pressure
-
-From: Rob Clark <robdclark@chromium.org>
-
-[ Upstream commit e19f8fa6ce1ca9b8b934ba7d2e8f34c95abc6e60 ]
-
-Limit the error msg to avoid flooding the console.  If you have a lot of
-threads hitting this at once, they could have already gotten passed the
-dma_debug_disabled() check before they get to the point of allocation
-failure, resulting in quite a lot of this error message spamming the
-log.  Use pr_err_once() to limit that.
-
-Signed-off-by: Rob Clark <robdclark@chromium.org>
-Signed-off-by: Christoph Hellwig <hch@lst.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/dma/debug.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
-index ac740630c79c..2caafd13f8aa 100644
---- a/kernel/dma/debug.c
-+++ b/kernel/dma/debug.c
-@@ -564,7 +564,7 @@ static void add_dma_entry(struct dma_debug_entry *entry, unsigned long attrs)
-       rc = active_cacheline_insert(entry);
-       if (rc == -ENOMEM) {
--              pr_err("cacheline tracking ENOMEM, dma-debug disabled\n");
-+              pr_err_once("cacheline tracking ENOMEM, dma-debug disabled\n");
-               global_disable = true;
-       } else if (rc == -EEXIST && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) {
-               err_printk(entry->dev, entry,
--- 
-2.35.1
-
diff --git a/queue-5.17/drivers-hv-vmbus-release-cpu-lock-in-error-case.patch b/queue-5.17/drivers-hv-vmbus-release-cpu-lock-in-error-case.patch
deleted file mode 100644 (file)
index 92fe675..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7c4614522bd7bc4645e7d59957f5c443e2c4ad34 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 Jun 2022 10:16:36 -0700
-Subject: Drivers: hv: vmbus: Release cpu lock in error case
-
-From: Saurabh Sengar <ssengar@linux.microsoft.com>
-
-[ Upstream commit 656c5ba50b7172a0ea25dc1b37606bd51d01fe8d ]
-
-In case of invalid sub channel, release cpu lock before returning.
-
-Fixes: a949e86c0d780 ("Drivers: hv: vmbus: Resolve race between init_vp_index() and CPU hotplug")
-Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
-Reviewed-by: Michael Kelley <mikelley@microsoft.com>
-Link: https://lore.kernel.org/r/1654794996-13244-1-git-send-email-ssengar@linux.microsoft.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hv/channel_mgmt.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
-index 67be81208a2d..3a4dae1f5e9c 100644
---- a/drivers/hv/channel_mgmt.c
-+++ b/drivers/hv/channel_mgmt.c
-@@ -637,6 +637,7 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel)
-                */
-               if (newchannel->offermsg.offer.sub_channel_index == 0) {
-                       mutex_unlock(&vmbus_connection.channel_mutex);
-+                      cpus_read_unlock();
-                       /*
-                        * Don't call free_channel(), because newchannel->kobj
-                        * is not initialized yet.
--- 
-2.35.1
-
diff --git a/queue-5.17/drm-amd-display-read-golden-settings-table-from-vbio.patch b/queue-5.17/drm-amd-display-read-golden-settings-table-from-vbio.patch
deleted file mode 100644 (file)
index 6db9aaf..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From 8cecb34781e52ba43e23dd0fde93946335343404 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 10 May 2022 18:42:18 +0800
-Subject: drm/amd/display: Read Golden Settings Table from VBIOS
-
-From: Sherry Wang <YAO.WANG1@amd.com>
-
-[ Upstream commit 4b81dd2cc6f4f4e8cea0ed6ee8d5193a8ae14a72 ]
-
-[Why]
-Dmub read AUX_DPHY_RX_CONTROL0 from Golden Setting Table,
-but driver will set it to default value 0x103d1110, which
-causes issue in some case
-
-[How]
-Remove the driver code, use the value set by dmub in
-dp_aux_init
-
-Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
-Acked-by: Jasdeep Dhillon <jdhillon@amd.com>
-Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
-Signed-off-by: Sherry Wang <YAO.WANG1@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c
-index 8b9b1a5309ba..0190a90260e9 100644
---- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c
-+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c
-@@ -230,9 +230,7 @@ static void enc31_hw_init(struct link_encoder *enc)
-       AUX_RX_PHASE_DETECT_LEN,  [21,20] = 0x3 default is 3
-       AUX_RX_DETECTION_THRESHOLD [30:28] = 1
- */
--      AUX_REG_WRITE(AUX_DPHY_RX_CONTROL0, 0x103d1110);
--
--      AUX_REG_WRITE(AUX_DPHY_TX_CONTROL, 0x21c7a);
-+      // dmub will read AUX_DPHY_RX_CONTROL0/AUX_DPHY_TX_CONTROL from vbios table in dp_aux_init
-       //AUX_DPHY_TX_REF_CONTROL'AUX_TX_REF_DIV HW default is 0x32;
-       // Set AUX_TX_REF_DIV Divider to generate 2 MHz reference from refclk
--- 
-2.35.1
-
diff --git a/queue-5.17/drm-amdkfd-add-pinned-bos-to-kfd_bo_list.patch b/queue-5.17/drm-amdkfd-add-pinned-bos-to-kfd_bo_list.patch
deleted file mode 100644 (file)
index 0a8ecc6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-From 11e26e334afe99f571196eba5151f903ec894386 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 31 May 2022 09:19:43 +0800
-Subject: drm/amdkfd: add pinned BOs to kfd_bo_list
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Lang Yu <Lang.Yu@amd.com>
-
-[ Upstream commit 4fac4fcf4500bce515b0f32195e7bb86aa0246c6 ]
-
-The kfd_bo_list is used to restore process BOs after
-evictions. As page tables could be destroyed during
-evictions, we should also update pinned BOs' page tables
-during restoring to make sure they are valid.
-
-So for pinned BOs,
-1, Validate them and update their page tables.
-2, Don't add eviction fence for them.
-
-v2:
- - Don't handle pinned ones specially in BO validation.(Felix)
-
-Signed-off-by: Lang Yu <Lang.Yu@amd.com>
-Acked-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-index 5df387c4d7fb..e6b88642d6c7 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-@@ -1912,9 +1912,6 @@ int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct amdgpu_device *adev,
-               return -EINVAL;
-       }
--      /* delete kgd_mem from kfd_bo_list to avoid re-validating
--       * this BO in BO's restoring after eviction.
--       */
-       mutex_lock(&mem->process_info->lock);
-       ret = amdgpu_bo_reserve(bo, true);
-@@ -1937,7 +1934,6 @@ int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct amdgpu_device *adev,
-       amdgpu_amdkfd_remove_eviction_fence(
-               bo, mem->process_info->eviction_fence);
--      list_del_init(&mem->validate_list.head);
-       if (size)
-               *size = amdgpu_bo_size(bo);
-@@ -2497,12 +2493,15 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence **ef)
-       process_info->eviction_fence = new_fence;
-       *ef = dma_fence_get(&new_fence->base);
--      /* Attach new eviction fence to all BOs */
-+      /* Attach new eviction fence to all BOs except pinned ones */
-       list_for_each_entry(mem, &process_info->kfd_bo_list,
--              validate_list.head)
-+              validate_list.head) {
-+              if (mem->bo->tbo.pin_count)
-+                      continue;
-+
-               amdgpu_bo_fence(mem->bo,
-                       &process_info->eviction_fence->base, true);
--
-+      }
-       /* Attach eviction fence to PD / PT BOs */
-       list_for_each_entry(peer_vm, &process_info->vm_list_head,
-                           vm_list_node) {
--- 
-2.35.1
-
diff --git a/queue-5.17/drm-amdkfd-use-mmget_not_zero-in-mmu-notifier.patch b/queue-5.17/drm-amdkfd-use-mmget_not_zero-in-mmu-notifier.patch
deleted file mode 100644 (file)
index 7256424..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From 00256fe18dde127f25fd2ada10dd056ff3780859 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 26 May 2022 16:15:38 -0400
-Subject: drm/amdkfd: Use mmget_not_zero in MMU notifier
-
-From: Philip Yang <Philip.Yang@amd.com>
-
-[ Upstream commit fa582c6f3684ac0098a9d02ddf0ed52a02b37127 ]
-
-MMU notifier callback may pass in mm with mm->mm_users==0 when process
-is exiting, use mmget_no_zero to avoid accessing invalid mm in deferred
-list work after mm is gone.
-
-Signed-off-by: Philip Yang <Philip.Yang@amd.com>
-Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
-index ffec25e642e2..ace8f84918b3 100644
---- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
-+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
-@@ -2281,6 +2281,8 @@ svm_range_cpu_invalidate_pagetables(struct mmu_interval_notifier *mni,
-       if (range->event == MMU_NOTIFY_RELEASE)
-               return true;
-+      if (!mmget_not_zero(mni->mm))
-+              return true;
-       start = mni->interval_tree.start;
-       last = mni->interval_tree.last;
-@@ -2307,6 +2309,7 @@ svm_range_cpu_invalidate_pagetables(struct mmu_interval_notifier *mni,
-       }
-       svm_range_unlock(prange);
-+      mmput(mni->mm);
-       return true;
- }
--- 
-2.35.1
-
diff --git a/queue-5.17/drm-i915-reset-fix-error_state_read-ptr-offset-use.patch b/queue-5.17/drm-i915-reset-fix-error_state_read-ptr-offset-use.patch
deleted file mode 100644 (file)
index 31d365d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From b133c2c2bb2bdf24cb83b798a228f42bb38339a0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 10 Mar 2022 16:43:11 -0800
-Subject: drm/i915/reset: Fix error_state_read ptr + offset use
-
-From: Alan Previn <alan.previn.teres.alexis@intel.com>
-
-[ Upstream commit c9b576d0c7bf55aeae1a736da7974fa202c4394d ]
-
-Fix our pointer offset usage in error_state_read
-when there is no i915_gpu_coredump but buf offset
-is non-zero.
-
-This fixes a kernel page fault can happen when
-multiple tests are running concurrently in a loop
-and one is producing engine resets and consuming
-the i915 error_state dump while the other is
-forcing full GT resets. (takes a while to trigger).
-
-The dmesg call trace:
-
-[ 5590.803000] BUG: unable to handle page fault for address:
-               ffffffffa0b0e000
-[ 5590.803009] #PF: supervisor read access in kernel mode
-[ 5590.803013] #PF: error_code(0x0000) - not-present page
-[ 5590.803016] PGD 5814067 P4D 5814067 PUD 5815063 PMD 109de4067
-               PTE 0
-[ 5590.803022] Oops: 0000 [#1] PREEMPT SMP NOPTI
-[ 5590.803026] CPU: 5 PID: 13656 Comm: i915_hangman Tainted: G U
-                    5.17.0-rc5-ups69-guc-err-capt-rev6+ #136
-[ 5590.803033] Hardware name: Intel Corporation Alder Lake Client
-                    Platform/AlderLake-M LP4x RVP, BIOS ADLPFWI1.R00.
-                    3031.A02.2201171222        01/17/2022
-[ 5590.803039] RIP: 0010:memcpy_erms+0x6/0x10
-[ 5590.803045] Code: fe ff ff cc eb 1e 0f 1f 00 48 89 f8 48 89 d1
-                     48 c1 e9 03 83 e2 07 f3 48 a5 89 d1 f3 a4 c3
-                     66 0f 1f 44 00 00 48 89 f8 48 89 d1 <f3> a4
-                     c3 0f 1f 80 00 00 00 00 48 89 f8 48 83 fa 20
-                     72 7e 40 38 fe
-[ 5590.803054] RSP: 0018:ffffc90003a8fdf0 EFLAGS: 00010282
-[ 5590.803057] RAX: ffff888107ee9000 RBX: ffff888108cb1a00
-               RCX: 0000000000000f8f
-[ 5590.803061] RDX: 0000000000001000 RSI: ffffffffa0b0e000
-               RDI: ffff888107ee9071
-[ 5590.803065] RBP: 0000000000000000 R08: 0000000000000001
-               R09: 0000000000000001
-[ 5590.803069] R10: 0000000000000001 R11: 0000000000000002
-               R12: 0000000000000019
-[ 5590.803073] R13: 0000000000174fff R14: 0000000000001000
-               R15: ffff888107ee9000
-[ 5590.803077] FS: 00007f62a99bee80(0000) GS:ffff88849f880000(0000)
-               knlGS:0000000000000000
-[ 5590.803082] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-[ 5590.803085] CR2: ffffffffa0b0e000 CR3: 000000010a1a8004
-               CR4: 0000000000770ee0
-[ 5590.803089] PKRU: 55555554
-[ 5590.803091] Call Trace:
-[ 5590.803093] <TASK>
-[ 5590.803096] error_state_read+0xa1/0xd0 [i915]
-[ 5590.803175] kernfs_fop_read_iter+0xb2/0x1b0
-[ 5590.803180] new_sync_read+0x116/0x1a0
-[ 5590.803185] vfs_read+0x114/0x1b0
-[ 5590.803189] ksys_read+0x63/0xe0
-[ 5590.803193] do_syscall_64+0x38/0xc0
-[ 5590.803197] entry_SYSCALL_64_after_hwframe+0x44/0xae
-[ 5590.803201] RIP: 0033:0x7f62aaea5912
-[ 5590.803204] Code: c0 e9 b2 fe ff ff 50 48 8d 3d 5a b9 0c 00 e8 05
-                     19 02 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25
-                     18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff
-                     ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
-[ 5590.803213] RSP: 002b:00007fff5b659ae8 EFLAGS: 00000246
-               ORIG_RAX: 0000000000000000
-[ 5590.803218] RAX: ffffffffffffffda RBX: 0000000000100000
-               RCX: 00007f62aaea5912
-[ 5590.803221] RDX: 000000000008b000 RSI: 00007f62a8c4000f
-               RDI: 0000000000000006
-[ 5590.803225] RBP: 00007f62a8bcb00f R08: 0000000000200010
-               R09: 0000000000101000
-[ 5590.803229] R10: 0000000000000001 R11: 0000000000000246
-               R12: 0000000000000006
-[ 5590.803233] R13: 0000000000075000 R14: 00007f62a8acb010
-               R15: 0000000000200000
-[ 5590.803238] </TASK>
-[ 5590.803240] Modules linked in: i915 ttm drm_buddy drm_dp_helper
-                        drm_kms_helper syscopyarea sysfillrect sysimgblt
-                        fb_sys_fops prime_numbers nfnetlink br_netfilter
-                        overlay mei_pxp mei_hdcp x86_pkg_temp_thermal
-                        coretemp kvm_intel snd_hda_codec_hdmi snd_hda_intel
-                        snd_intel_dspcfg snd_hda_codec snd_hwdep
-                        snd_hda_core snd_pcm mei_me mei fuse ip_tables
-                        x_tables crct10dif_pclmul e1000e crc32_pclmul ptp
-                        i2c_i801 ghash_clmulni_intel i2c_smbus pps_core
-                        [last unloa ded: ttm]
-[ 5590.803277] CR2: ffffffffa0b0e000
-[ 5590.803280] ---[ end trace 0000000000000000 ]---
-
-Fixes: 0e39037b3165 ("drm/i915: Cache the error string")
-Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
-Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
-Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220311004311.514198-2-alan.previn.teres.alexis@intel.com
-(cherry picked from commit 3304033a1e69cd81a2044b4422f0d7e593afb4e6)
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/i915/i915_sysfs.c | 15 ++++++++++++---
- 1 file changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
-index fae4d1f4f275..d34a70d0f56d 100644
---- a/drivers/gpu/drm/i915/i915_sysfs.c
-+++ b/drivers/gpu/drm/i915/i915_sysfs.c
-@@ -431,7 +431,14 @@ static ssize_t error_state_read(struct file *filp, struct kobject *kobj,
-       struct device *kdev = kobj_to_dev(kobj);
-       struct drm_i915_private *i915 = kdev_minor_to_i915(kdev);
-       struct i915_gpu_coredump *gpu;
--      ssize_t ret;
-+      ssize_t ret = 0;
-+
-+      /*
-+       * FIXME: Concurrent clients triggering resets and reading + clearing
-+       * dumps can cause inconsistent sysfs reads when a user calls in with a
-+       * non-zero offset to complete a prior partial read but the
-+       * gpu_coredump has been cleared or replaced.
-+       */
-       gpu = i915_first_error_state(i915);
-       if (IS_ERR(gpu)) {
-@@ -443,8 +450,10 @@ static ssize_t error_state_read(struct file *filp, struct kobject *kobj,
-               const char *str = "No error state collected\n";
-               size_t len = strlen(str);
--              ret = min_t(size_t, count, len - off);
--              memcpy(buf, str + off, ret);
-+              if (off < len) {
-+                      ret = min_t(size_t, count, len - off);
-+                      memcpy(buf, str + off, ret);
-+              }
-       }
-       return ret;
--- 
-2.35.1
-
diff --git a/queue-5.17/faddr2line-fix-overlapping-text-section-failures-the.patch b/queue-5.17/faddr2line-fix-overlapping-text-section-failures-the.patch
deleted file mode 100644 (file)
index 59c25ba..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From 36066493ec92226dbe4e6cc75b5a4c3e9525aaab Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 17:42:22 -0700
-Subject: faddr2line: Fix overlapping text section failures, the sequel
-
-From: Josh Poimboeuf <jpoimboe@kernel.org>
-
-[ Upstream commit dcea997beed694cbd8705100ca1a6eb0d886de69 ]
-
-If a function lives in a section other than .text, but .text also exists
-in the object, faddr2line may wrongly assume .text.  This can result in
-comically wrong output.  For example:
-
-  $ scripts/faddr2line vmlinux.o enter_from_user_mode+0x1c
-  enter_from_user_mode+0x1c/0x30:
-  find_next_bit at /home/jpoimboe/git/linux/./include/linux/find.h:40
-  (inlined by) perf_clear_dirty_counters at /home/jpoimboe/git/linux/arch/x86/events/core.c:2504
-
-Fix it by passing the section name to addr2line, unless the object file
-is vmlinux, in which case the symbol table uses absolute addresses.
-
-Fixes: 1d1a0e7c5100 ("scripts/faddr2line: Fix overlapping text section failures")
-Reported-by: Peter Zijlstra <peterz@infradead.org>
-Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
-Link: https://lore.kernel.org/r/7d25bc1408bd3a750ac26e60d2f2815a5f4a8363.1654130536.git.jpoimboe@kernel.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/faddr2line | 45 ++++++++++++++++++++++++++++++++++-----------
- 1 file changed, 34 insertions(+), 11 deletions(-)
-
-diff --git a/scripts/faddr2line b/scripts/faddr2line
-index 0e6268d59883..94ed98dd899f 100755
---- a/scripts/faddr2line
-+++ b/scripts/faddr2line
-@@ -95,17 +95,25 @@ __faddr2line() {
-       local print_warnings=$4
-       local sym_name=${func_addr%+*}
--      local offset=${func_addr#*+}
--      offset=${offset%/*}
-+      local func_offset=${func_addr#*+}
-+      func_offset=${func_offset%/*}
-       local user_size=
-+      local file_type
-+      local is_vmlinux=0
-       [[ $func_addr =~ "/" ]] && user_size=${func_addr#*/}
--      if [[ -z $sym_name ]] || [[ -z $offset ]] || [[ $sym_name = $func_addr ]]; then
-+      if [[ -z $sym_name ]] || [[ -z $func_offset ]] || [[ $sym_name = $func_addr ]]; then
-               warn "bad func+offset $func_addr"
-               DONE=1
-               return
-       fi
-+      # vmlinux uses absolute addresses in the section table rather than
-+      # section offsets.
-+      local file_type=$(${READELF} --file-header $objfile |
-+              ${AWK} '$1 == "Type:" { print $2; exit }')
-+      [[ $file_type = "EXEC" ]] && is_vmlinux=1
-+
-       # Go through each of the object's symbols which match the func name.
-       # In rare cases there might be duplicates, in which case we print all
-       # matches.
-@@ -114,9 +122,11 @@ __faddr2line() {
-               local sym_addr=0x${fields[1]}
-               local sym_elf_size=${fields[2]}
-               local sym_sec=${fields[6]}
-+              local sec_size
-+              local sec_name
-               # Get the section size:
--              local sec_size=$(${READELF} --section-headers --wide $objfile |
-+              sec_size=$(${READELF} --section-headers --wide $objfile |
-                       sed 's/\[ /\[/' |
-                       ${AWK} -v sec=$sym_sec '$1 == "[" sec "]" { print "0x" $6; exit }')
-@@ -126,6 +136,17 @@ __faddr2line() {
-                       return
-               fi
-+              # Get the section name:
-+              sec_name=$(${READELF} --section-headers --wide $objfile |
-+                      sed 's/\[ /\[/' |
-+                      ${AWK} -v sec=$sym_sec '$1 == "[" sec "]" { print $2; exit }')
-+
-+              if [[ -z $sec_name ]]; then
-+                      warn "bad section name: section: $sym_sec"
-+                      DONE=1
-+                      return
-+              fi
-+
-               # Calculate the symbol size.
-               #
-               # Unfortunately we can't use the ELF size, because kallsyms
-@@ -174,10 +195,10 @@ __faddr2line() {
-               sym_size=0x$(printf %x $sym_size)
--              # Calculate the section address from user-supplied offset:
--              local addr=$(($sym_addr + $offset))
-+              # Calculate the address from user-supplied offset:
-+              local addr=$(($sym_addr + $func_offset))
-               if [[ -z $addr ]] || [[ $addr = 0 ]]; then
--                      warn "bad address: $sym_addr + $offset"
-+                      warn "bad address: $sym_addr + $func_offset"
-                       DONE=1
-                       return
-               fi
-@@ -191,9 +212,9 @@ __faddr2line() {
-               fi
-               # Make sure the provided offset is within the symbol's range:
--              if [[ $offset -gt $sym_size ]]; then
-+              if [[ $func_offset -gt $sym_size ]]; then
-                       [[ $print_warnings = 1 ]] &&
--                              echo "skipping $sym_name address at $addr due to size mismatch ($offset > $sym_size)"
-+                              echo "skipping $sym_name address at $addr due to size mismatch ($func_offset > $sym_size)"
-                       continue
-               fi
-@@ -202,11 +223,13 @@ __faddr2line() {
-               [[ $FIRST = 0 ]] && echo
-               FIRST=0
--              echo "$sym_name+$offset/$sym_size:"
-+              echo "$sym_name+$func_offset/$sym_size:"
-               # Pass section address to addr2line and strip absolute paths
-               # from the output:
--              local output=$(${ADDR2LINE} -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;")
-+              local args="--functions --pretty-print --inlines --exe=$objfile"
-+              [[ $is_vmlinux = 0 ]] && args="$args --section=$sec_name"
-+              local output=$(${ADDR2LINE} $args $addr | sed "s; $dir_prefix\(\./\)*; ;")
-               [[ -z $output ]] && continue
-               # Default output (non --list):
--- 
-2.35.1
-
diff --git a/queue-5.17/gcc-12-disable-warray-bounds-universally-for-now.patch b/queue-5.17/gcc-12-disable-warray-bounds-universally-for-now.patch
deleted file mode 100644 (file)
index d3f2f1e..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From 0ccfbbe2b50fec7b39f1dea501116451c8227778 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 Jun 2022 10:11:12 -0700
-Subject: gcc-12: disable '-Warray-bounds' universally for now
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-[ Upstream commit f0be87c42cbd341d436d06da4792e6b0c83c3aeb ]
-
-In commit 8b202ee21839 ("s390: disable -Warray-bounds") the s390 people
-disabled the '-Warray-bounds' warning for gcc-12, because the new logic
-in gcc would cause warnings for their use of the S390_lowcore macro,
-which accesses absolute pointers.
-
-It turns out gcc-12 has many other issues in this area, so this takes
-that s390 warning disable logic, and turns it into a kernel build config
-entry instead.
-
-Part of the intent is that we can make this all much more targeted, and
-use this conflig flag to disable it in only particular configurations
-that cause problems, with the s390 case as an example:
-
-        select GCC12_NO_ARRAY_BOUNDS
-
-and we could do that for other configuration cases that cause issues.
-
-Or we could possibly use the CONFIG_CC_NO_ARRAY_BOUNDS thing in a more
-targeted way, and disable the warning only for particular uses: again
-the s390 case as an example:
-
-  KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_NO_ARRAY_BOUNDS),-Wno-array-bounds)
-
-but this ends up just doing it globally in the top-level Makefile, since
-the current issues are spread fairly widely all over:
-
-  KBUILD_CFLAGS-$(CONFIG_CC_NO_ARRAY_BOUNDS) += -Wno-array-bounds
-
-We'll try to limit this later, since the gcc-12 problems are rare enough
-that *much* of the kernel can be built with it without disabling this
-warning.
-
-Cc: Kees Cook <keescook@chromium.org>
-Cc: Nathan Chancellor <nathan@kernel.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- Makefile           |  1 +
- arch/s390/Kconfig  |  1 +
- arch/s390/Makefile | 10 +---------
- init/Kconfig       |  9 +++++++++
- 4 files changed, 12 insertions(+), 9 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 689f13f38fe3..cf45a3388838 100644
---- a/Makefile
-+++ b/Makefile
-@@ -778,6 +778,7 @@ stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG)      := -fstack-protector-strong
- KBUILD_CFLAGS += $(stackp-flags-y)
- KBUILD_CFLAGS-$(CONFIG_WERROR) += -Werror
-+KBUILD_CFLAGS-$(CONFIG_CC_NO_ARRAY_BOUNDS) += -Wno-array-bounds
- KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH)
- ifdef CONFIG_CC_IS_CLANG
-diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
-index be9f39fd06df..b14a18ac2e71 100644
---- a/arch/s390/Kconfig
-+++ b/arch/s390/Kconfig
-@@ -123,6 +123,7 @@ config S390
-       select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
-       select DMA_OPS if PCI
-       select DYNAMIC_FTRACE if FUNCTION_TRACER
-+      select GCC12_NO_ARRAY_BOUNDS
-       select GENERIC_ALLOCATOR
-       select GENERIC_CPU_AUTOPROBE
-       select GENERIC_CPU_VULNERABILITIES
-diff --git a/arch/s390/Makefile b/arch/s390/Makefile
-index 6e42252214dd..82a44f60ad3c 100644
---- a/arch/s390/Makefile
-+++ b/arch/s390/Makefile
-@@ -30,15 +30,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-protector
- KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member)
- KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
- KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
--
--ifdef CONFIG_CC_IS_GCC
--      ifeq ($(call cc-ifversion, -ge, 1200, y), y)
--              ifeq ($(call cc-ifversion, -lt, 1300, y), y)
--                      KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
--                      KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, array-bounds)
--              endif
--      endif
--endif
-+KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_NO_ARRAY_BOUNDS),-Wno-array-bounds)
- UTS_MACHINE   := s390x
- STACK_SIZE    := $(if $(CONFIG_KASAN),65536,16384)
-diff --git a/init/Kconfig b/init/Kconfig
-index 4a7a569706c5..cbe094645917 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -895,6 +895,15 @@ config CC_IMPLICIT_FALLTHROUGH
-       default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5)
-       default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough)
-+# Currently, disable gcc-12 array-bounds globally.
-+# We may want to target only particular configurations some day.
-+config GCC12_NO_ARRAY_BOUNDS
-+      def_bool y
-+
-+config CC_NO_ARRAY_BOUNDS
-+      bool
-+      default y if CC_IS_GCC && GCC_VERSION >= 120000 && GCC_VERSION < 130000 && GCC12_NO_ARRAY_BOUNDS
-+
- #
- # For architectures that know their GCC __int128 support is sound
- #
--- 
-2.35.1
-
diff --git a/queue-5.17/gcc-12-disable-wdangling-pointer-warning-for-now.patch b/queue-5.17/gcc-12-disable-wdangling-pointer-warning-for-now.patch
deleted file mode 100644 (file)
index b89e482..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From b05319ce7eaf86ca6744b8a9d8c721f229245cf5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 Jun 2022 09:41:42 -0700
-Subject: gcc-12: disable '-Wdangling-pointer' warning for now
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-[ Upstream commit 49beadbd47c270a00754c107a837b4f29df4c822 ]
-
-While the concept of checking for dangling pointers to local variables
-at function exit is really interesting, the gcc-12 implementation is not
-compatible with reality, and results in false positives.
-
-For example, gcc sees us putting things on a local list head allocated
-on the stack, which involves exactly those kinds of pointers to the
-local stack entry:
-
-  In function ‘__list_add’,
-      inlined from ‘list_add_tail’ at include/linux/list.h:102:2,
-      inlined from ‘rebuild_snap_realms’ at fs/ceph/snap.c:434:2:
-  include/linux/list.h:74:19: warning: storing the address of local variable ‘realm_queue’ in ‘*&realm_27(D)->rebuild_item.prev’ [-Wdangling-pointer=]
-     74 |         new->prev = prev;
-        |         ~~~~~~~~~~^~~~~~
-
-But then gcc - understandably - doesn't really understand the big
-picture how the doubly linked list works, so doesn't see how we then end
-up emptying said list head in a loop and the pointer we added has been
-removed.
-
-Gcc also complains about us (intentionally) using this as a way to store
-a kind of fake stack trace, eg
-
-  drivers/acpi/acpica/utdebug.c:40:38: warning: storing the address of local variable ‘current_sp’ in ‘acpi_gbl_entry_stack_pointer’ [-Wdangling-pointer=]
-     40 |         acpi_gbl_entry_stack_pointer = &current_sp;
-        |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
-
-which is entirely reasonable from a compiler standpoint, and we may want
-to change those kinds of patterns, but not not.
-
-So this is one of those "it would be lovely if the compiler were to
-complain about us leaving dangling pointers to the stack", but not this
-way.
-
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- Makefile | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/Makefile b/Makefile
-index c3676b04ca38..689f13f38fe3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -799,6 +799,9 @@ endif
- KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
- KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
-+# These result in bogus false positives
-+KBUILD_CFLAGS += $(call cc-disable-warning, dangling-pointer)
-+
- ifdef CONFIG_FRAME_POINTER
- KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
- else
--- 
-2.35.1
-
diff --git a/queue-5.17/gpio-dwapb-don-t-print-error-on-eprobe_defer.patch b/queue-5.17/gpio-dwapb-don-t-print-error-on-eprobe_defer.patch
deleted file mode 100644 (file)
index 3861a4b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7289ace594095775ca8161a44696569d2501b798 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 10 Jun 2022 13:45:00 +0300
-Subject: gpio: dwapb: Don't print error on -EPROBE_DEFER
-
-From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
-
-[ Upstream commit 77006f6edc0e0f58617eb25e53731f78641e820d ]
-
-Currently if the APB or Debounce clocks aren't yet ready to be requested
-the DW GPIO driver will correctly handle that by deferring the probe
-procedure, but the error is still printed to the system log. It needlessly
-pollutes the log since there was no real error but a request to postpone
-the clock request procedure since the clocks subsystem hasn't been fully
-initialized yet. Let's fix that by using the dev_err_probe method to print
-the APB/clock request error status. It will correctly handle the deferred
-probe situation and print the error if it actually happens.
-
-Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
-Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-dwapb.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
-index b0f3aca61974..9467d695a33e 100644
---- a/drivers/gpio/gpio-dwapb.c
-+++ b/drivers/gpio/gpio-dwapb.c
-@@ -652,10 +652,9 @@ static int dwapb_get_clks(struct dwapb_gpio *gpio)
-       gpio->clks[1].id = "db";
-       err = devm_clk_bulk_get_optional(gpio->dev, DWAPB_NR_CLOCKS,
-                                        gpio->clks);
--      if (err) {
--              dev_err(gpio->dev, "Cannot get APB/Debounce clocks\n");
--              return err;
--      }
-+      if (err)
-+              return dev_err_probe(gpio->dev, err,
-+                                   "Cannot get APB/Debounce clocks\n");
-       err = clk_bulk_prepare_enable(DWAPB_NR_CLOCKS, gpio->clks);
-       if (err) {
--- 
-2.35.1
-
diff --git a/queue-5.17/i2c-designware-use-standard-optional-ref-clock-imple.patch b/queue-5.17/i2c-designware-use-standard-optional-ref-clock-imple.patch
deleted file mode 100644 (file)
index 7ccd9b1..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From d87284bfcf3d3bdabf10649f873a70ac6d41c2e9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 10 Jun 2022 10:42:33 +0300
-Subject: i2c: designware: Use standard optional ref clock implementation
-
-From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
-
-[ Upstream commit 27071b5cbca59d8e8f8750c199a6cbf8c9799963 ]
-
-Even though the DW I2C controller reference clock source is requested by
-the method devm_clk_get() with non-optional clock requirement the way the
-clock handler is used afterwards has a pure optional clock semantic
-(though in some circumstances we can get a warning about the clock missing
-printed in the system console). There is no point in reimplementing that
-functionality seeing the kernel clock framework already supports the
-optional interface from scratch. Thus let's convert the platform driver to
-using it.
-
-Note by providing this commit we get to fix two problems. The first one
-was introduced in commit c62ebb3d5f0d ("i2c: designware: Add support for
-an interface clock"). It causes not having the interface clock (pclk)
-enabled/disabled in case if the reference clock isn't provided. The second
-problem was first introduced in commit b33af11de236 ("i2c: designware: Do
-not require clock when SSCN and FFCN are provided"). Since that
-modification the deferred probe procedure has been unsupported in case if
-the interface clock isn't ready.
-
-Fixes: c62ebb3d5f0d ("i2c: designware: Add support for an interface clock")
-Fixes: b33af11de236 ("i2c: designware: Do not require clock when SSCN and FFCN are provided")
-Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
-Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
-Signed-off-by: Wolfram Sang <wsa@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/i2c/busses/i2c-designware-common.c  |  3 ---
- drivers/i2c/busses/i2c-designware-platdrv.c | 13 +++++++++++--
- 2 files changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/i2c/busses/i2c-designware-common.c b/drivers/i2c/busses/i2c-designware-common.c
-index bf2a4920638a..a1100e37626e 100644
---- a/drivers/i2c/busses/i2c-designware-common.c
-+++ b/drivers/i2c/busses/i2c-designware-common.c
-@@ -477,9 +477,6 @@ int i2c_dw_prepare_clk(struct dw_i2c_dev *dev, bool prepare)
- {
-       int ret;
--      if (IS_ERR(dev->clk))
--              return PTR_ERR(dev->clk);
--
-       if (prepare) {
-               /* Optional interface clock */
-               ret = clk_prepare_enable(dev->pclk);
-diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
-index 2bd81abc86f6..2f2244959b96 100644
---- a/drivers/i2c/busses/i2c-designware-platdrv.c
-+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
-@@ -262,8 +262,17 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
-               goto exit_reset;
-       }
--      dev->clk = devm_clk_get(&pdev->dev, NULL);
--      if (!i2c_dw_prepare_clk(dev, true)) {
-+      dev->clk = devm_clk_get_optional(&pdev->dev, NULL);
-+      if (IS_ERR(dev->clk)) {
-+              ret = PTR_ERR(dev->clk);
-+              goto exit_reset;
-+      }
-+
-+      ret = i2c_dw_prepare_clk(dev, true);
-+      if (ret)
-+              goto exit_reset;
-+
-+      if (dev->clk) {
-               u64 clk_khz;
-               dev->get_clk_rate_khz = i2c_dw_get_clk_rate_khz;
--- 
-2.35.1
-
diff --git a/queue-5.17/i2c-npcm7xx-add-check-for-platform_driver_register.patch b/queue-5.17/i2c-npcm7xx-add-check-for-platform_driver_register.patch
deleted file mode 100644 (file)
index fc6db4a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 73b31b34888a46d6edd93767e82d96f8e5f5d783 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 26 May 2022 17:41:00 +0800
-Subject: i2c: npcm7xx: Add check for platform_driver_register
-
-From: Jiasheng Jiang <jiasheng@iscas.ac.cn>
-
-[ Upstream commit 6ba12b56b9b844b83ed54fb7ed59fb0eb41e4045 ]
-
-As platform_driver_register() could fail, it should be better
-to deal with the return value in order to maintain the code
-consisitency.
-
-Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
-Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
-Acked-by: Tali Perry <tali.perry1@gmail.com>
-Signed-off-by: Wolfram Sang <wsa@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/i2c/busses/i2c-npcm7xx.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c
-index 20a2f903b7f6..d9ac62c1ac25 100644
---- a/drivers/i2c/busses/i2c-npcm7xx.c
-+++ b/drivers/i2c/busses/i2c-npcm7xx.c
-@@ -2369,8 +2369,7 @@ static struct platform_driver npcm_i2c_bus_driver = {
- static int __init npcm_i2c_init(void)
- {
-       npcm_i2c_debugfs_dir = debugfs_create_dir("npcm_i2c", NULL);
--      platform_driver_register(&npcm_i2c_bus_driver);
--      return 0;
-+      return platform_driver_register(&npcm_i2c_bus_driver);
- }
- module_init(npcm_i2c_init);
--- 
-2.35.1
-
diff --git a/queue-5.17/i40e-fix-adding-adq-filter-to-tc0.patch b/queue-5.17/i40e-fix-adding-adq-filter-to-tc0.patch
deleted file mode 100644 (file)
index b88710d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From a414a19d52cb48bfb114e18956c313be850d252e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 29 Apr 2022 14:27:08 +0200
-Subject: i40e: Fix adding ADQ filter to TC0
-
-From: Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
-
-[ Upstream commit c3238d36c3a2be0a29a9d848d6c51e1b14be6692 ]
-
-Procedure of configure tc flower filters erroneously allows to create
-filters on TC0 where unfiltered packets are also directed by default.
-Issue was caused by insufficient checks of hw_tc parameter specifying
-the hardware traffic class to pass matching packets to.
-
-Fix checking hw_tc parameter which blocks creation of filters on TC0.
-
-Fixes: 2f4b411a3d67 ("i40e: Enable cloud filters via tc-flower")
-Signed-off-by: Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
-Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
-Tested-by: Bharathi Sreenivas <bharathi.sreenivas@intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/intel/i40e/i40e_main.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
-index 313a798fe3a9..cb8ab6a63d6d 100644
---- a/drivers/net/ethernet/intel/i40e/i40e_main.c
-+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
-@@ -8523,6 +8523,11 @@ static int i40e_configure_clsflower(struct i40e_vsi *vsi,
-               return -EOPNOTSUPP;
-       }
-+      if (!tc) {
-+              dev_err(&pf->pdev->dev, "Unable to add filter because of invalid destination");
-+              return -EINVAL;
-+      }
-+
-       if (test_bit(__I40E_RESET_RECOVERY_PENDING, pf->state) ||
-           test_bit(__I40E_RESET_INTR_RECEIVED, pf->state))
-               return -EBUSY;
--- 
-2.35.1
-
diff --git a/queue-5.17/i40e-fix-calculating-the-number-of-queue-pairs.patch b/queue-5.17/i40e-fix-calculating-the-number-of-queue-pairs.patch
deleted file mode 100644 (file)
index 866d03e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From c7015fb8d12a0a2ab173c62f478ded55fea8c31b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 29 Apr 2022 14:40:23 +0200
-Subject: i40e: Fix calculating the number of queue pairs
-
-From: Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
-
-[ Upstream commit 0bb050670ac90a167ecfa3f9590f92966c9a3677 ]
-
-If ADQ is enabled for a VF, then actual number of queue pair
-is a number of currently available traffic classes for this VF.
-
-Without this change the configuration of the Rx/Tx queues
-fails with error.
-
-Fixes: d29e0d233e0d ("i40e: missing input validation on VF message handling by the PF")
-Signed-off-by: Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
-Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
-Tested-by: Bharathi Sreenivas <bharathi.sreenivas@intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
-index 2606e8f0f19b..033ea71763e3 100644
---- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
-+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
-@@ -2282,7 +2282,7 @@ static int i40e_vc_config_queues_msg(struct i40e_vf *vf, u8 *msg)
-       }
-       if (vf->adq_enabled) {
--              for (i = 0; i < I40E_MAX_VF_VSI; i++)
-+              for (i = 0; i < vf->num_tc; i++)
-                       num_qps_all += vf->ch[i].num_qps;
-               if (num_qps_all != qci->num_queue_pairs) {
-                       aq_ret = I40E_ERR_PARAM;
--- 
-2.35.1
-
diff --git a/queue-5.17/i40e-fix-call-trace-in-setup_tx_descriptors.patch b/queue-5.17/i40e-fix-call-trace-in-setup_tx_descriptors.patch
deleted file mode 100644 (file)
index 4a1ef41..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From 4fb3b8a256a525d61a5535f51fff3998a67f924c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 19 May 2022 16:01:45 +0200
-Subject: i40e: Fix call trace in setup_tx_descriptors
-
-From: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
-
-[ Upstream commit fd5855e6b1358e816710afee68a1d2bc685176ca ]
-
-After PF reset and ethtool -t there was call trace in dmesg
-sometimes leading to panic. When there was some time, around 5
-seconds, between reset and test there were no errors.
-
-Problem was that pf reset calls i40e_vsi_close in prep_for_reset
-and ethtool -t calls i40e_vsi_close in diag_test. If there was not
-enough time between those commands the second i40e_vsi_close starts
-before previous i40e_vsi_close was done which leads to crash.
-
-Add check to diag_test if pf is in reset and don't start offline
-tests if it is true.
-Add netif_info("testing failed") into unhappy path of i40e_diag_test()
-
-Fixes: e17bc411aea8 ("i40e: Disable offline diagnostics if VFs are enabled")
-Fixes: 510efb2682b3 ("i40e: Fix ethtool offline diagnostic with netqueues")
-Signed-off-by: Michal Jaron <michalx.jaron@intel.com>
-Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
-Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../net/ethernet/intel/i40e/i40e_ethtool.c    | 25 +++++++++++++------
- 1 file changed, 17 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
-index 091f36adbbe1..9f9b1817c479 100644
---- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
-+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
-@@ -2580,15 +2580,16 @@ static void i40e_diag_test(struct net_device *netdev,
-               set_bit(__I40E_TESTING, pf->state);
-+              if (test_bit(__I40E_RESET_RECOVERY_PENDING, pf->state) ||
-+                  test_bit(__I40E_RESET_INTR_RECEIVED, pf->state)) {
-+                      dev_warn(&pf->pdev->dev,
-+                               "Cannot start offline testing when PF is in reset state.\n");
-+                      goto skip_ol_tests;
-+              }
-+
-               if (i40e_active_vfs(pf) || i40e_active_vmdqs(pf)) {
-                       dev_warn(&pf->pdev->dev,
-                                "Please take active VFs and Netqueues offline and restart the adapter before running NIC diagnostics\n");
--                      data[I40E_ETH_TEST_REG]         = 1;
--                      data[I40E_ETH_TEST_EEPROM]      = 1;
--                      data[I40E_ETH_TEST_INTR]        = 1;
--                      data[I40E_ETH_TEST_LINK]        = 1;
--                      eth_test->flags |= ETH_TEST_FL_FAILED;
--                      clear_bit(__I40E_TESTING, pf->state);
-                       goto skip_ol_tests;
-               }
-@@ -2635,9 +2636,17 @@ static void i40e_diag_test(struct net_device *netdev,
-               data[I40E_ETH_TEST_INTR] = 0;
-       }
--skip_ol_tests:
--
-       netif_info(pf, drv, netdev, "testing finished\n");
-+      return;
-+
-+skip_ol_tests:
-+      data[I40E_ETH_TEST_REG]         = 1;
-+      data[I40E_ETH_TEST_EEPROM]      = 1;
-+      data[I40E_ETH_TEST_INTR]        = 1;
-+      data[I40E_ETH_TEST_LINK]        = 1;
-+      eth_test->flags |= ETH_TEST_FL_FAILED;
-+      clear_bit(__I40E_TESTING, pf->state);
-+      netif_info(pf, drv, netdev, "testing failed\n");
- }
- static void i40e_get_wol(struct net_device *netdev,
--- 
-2.35.1
-
diff --git a/queue-5.17/ice-fix-ptp-tx-timestamp-offset-calculation.patch b/queue-5.17/ice-fix-ptp-tx-timestamp-offset-calculation.patch
deleted file mode 100644 (file)
index 17ff31b..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-From 9df7dadd42aaa2eea30cfd1fe950a784ace3016e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 10 May 2022 13:03:43 +0200
-Subject: ice: Fix PTP TX timestamp offset calculation
-
-From: Michal Michalik <michal.michalik@intel.com>
-
-[ Upstream commit 71a579f0d3777a704355e6f1572dfba92a9b58b2 ]
-
-The offset was being incorrectly calculated for E822 - that led to
-collisions in choosing TX timestamp register location when more than
-one port was trying to use timestamping mechanism.
-
-In E822 one quad is being logically split between ports, so quad 0 is
-having trackers for ports 0-3, quad 1 ports 4-7 etc. Each port should
-have separate memory location for tracking timestamps. Due to error for
-example ports 1 and 2 had been assigned to quad 0 with same offset (0),
-while port 1 should have offset 0 and 1 offset 16.
-
-Fix it by correctly calculating quad offset.
-
-Fixes: 3a7496234d17 ("ice: implement basic E822 PTP support")
-Signed-off-by: Michal Michalik <michal.michalik@intel.com>
-Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/intel/ice/ice_ptp.c |  2 +-
- drivers/net/ethernet/intel/ice/ice_ptp.h | 31 ++++++++++++++++++++++++
- 2 files changed, 32 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
-index 836c67f1aa46..df7ce1f0213b 100644
---- a/drivers/net/ethernet/intel/ice/ice_ptp.c
-+++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
-@@ -2263,7 +2263,7 @@ static int
- ice_ptp_init_tx_e822(struct ice_pf *pf, struct ice_ptp_tx *tx, u8 port)
- {
-       tx->quad = port / ICE_PORTS_PER_QUAD;
--      tx->quad_offset = tx->quad * INDEX_PER_PORT;
-+      tx->quad_offset = (port % ICE_PORTS_PER_QUAD) * INDEX_PER_PORT;
-       tx->len = INDEX_PER_PORT;
-       return ice_ptp_alloc_tx_tracker(tx);
-diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.h b/drivers/net/ethernet/intel/ice/ice_ptp.h
-index afd048d69959..10e396abf130 100644
---- a/drivers/net/ethernet/intel/ice/ice_ptp.h
-+++ b/drivers/net/ethernet/intel/ice/ice_ptp.h
-@@ -49,6 +49,37 @@ struct ice_perout_channel {
-  * To allow multiple ports to access the shared register block independently,
-  * the blocks are split up so that indexes are assigned to each port based on
-  * hardware logical port number.
-+ *
-+ * The timestamp blocks are handled differently for E810- and E822-based
-+ * devices. In E810 devices, each port has its own block of timestamps, while in
-+ * E822 there is a need to logically break the block of registers into smaller
-+ * chunks based on the port number to avoid collisions.
-+ *
-+ * Example for port 5 in E810:
-+ *  +--------+--------+--------+--------+--------+--------+--------+--------+
-+ *  |register|register|register|register|register|register|register|register|
-+ *  | block  | block  | block  | block  | block  | block  | block  | block  |
-+ *  |  for   |  for   |  for   |  for   |  for   |  for   |  for   |  for   |
-+ *  | port 0 | port 1 | port 2 | port 3 | port 4 | port 5 | port 6 | port 7 |
-+ *  +--------+--------+--------+--------+--------+--------+--------+--------+
-+ *                                               ^^
-+ *                                               ||
-+ *                                               |---  quad offset is always 0
-+ *                                               ---- quad number
-+ *
-+ * Example for port 5 in E822:
-+ * +-----------------------------+-----------------------------+
-+ * |  register block for quad 0  |  register block for quad 1  |
-+ * |+------+------+------+------+|+------+------+------+------+|
-+ * ||port 0|port 1|port 2|port 3|||port 0|port 1|port 2|port 3||
-+ * |+------+------+------+------+|+------+------+------+------+|
-+ * +-----------------------------+-------^---------------------+
-+ *                                ^      |
-+ *                                |      --- quad offset*
-+ *                                ---- quad number
-+ *
-+ *   * PHY port 5 is port 1 in quad 1
-+ *
-  */
- /**
--- 
-2.35.1
-
diff --git a/queue-5.17/ice-fix-queue-config-fail-handling.patch b/queue-5.17/ice-fix-queue-config-fail-handling.patch
deleted file mode 100644 (file)
index 2408316..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From 0c00046fa2f46e8515ac306af28f9a6a3a0a4821 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 12:09:04 +0200
-Subject: ice: Fix queue config fail handling
-
-From: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
-
-[ Upstream commit be2af71496a54a7195ac62caba6fab49cfe5006c ]
-
-Disable VF's RX/TX queues, when VIRTCHNL_OP_CONFIG_VSI_QUEUES fail.
-Not disabling them might lead to scenario, where PF driver leaves VF
-queues enabled, when VF's VSI failed queue config.
-In this scenario VF should not have RX/TX queues enabled. If PF failed
-to set up VF's queues, VF will reset due to TX timeouts in VF driver.
-Initialize iterator 'i' to -1, so if error happens prior to configuring
-queues then error path code will not disable queue 0. Loop that
-configures queues will is using same iterator, so error path code will
-only disable queues that were configured.
-
-Fixes: 77ca27c41705 ("ice: add support for virtchnl_queue_select.[tx|rx]_queues bitmap")
-Suggested-by: Slawomir Laba <slawomirx.laba@intel.com>
-Signed-off-by: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
-Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
-Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../net/ethernet/intel/ice/ice_virtchnl_pf.c  | 53 +++++++++----------
- 1 file changed, 26 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
-index 0cc8b7e06b72..6ad5ff4c2ec0 100644
---- a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
-+++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
-@@ -3580,35 +3580,27 @@ static int ice_vc_cfg_irq_map_msg(struct ice_vf *vf, u8 *msg)
-  */
- static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
- {
--      enum virtchnl_status_code v_ret = VIRTCHNL_STATUS_SUCCESS;
-       struct virtchnl_vsi_queue_config_info *qci =
-           (struct virtchnl_vsi_queue_config_info *)msg;
-       struct virtchnl_queue_pair_info *qpi;
-       struct ice_pf *pf = vf->pf;
-       struct ice_vsi *vsi;
--      int i, q_idx;
-+      int i = -1, q_idx;
--      if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) {
--              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+      if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states))
-               goto error_param;
--      }
--      if (!ice_vc_isvalid_vsi_id(vf, qci->vsi_id)) {
--              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+      if (!ice_vc_isvalid_vsi_id(vf, qci->vsi_id))
-               goto error_param;
--      }
-       vsi = ice_get_vf_vsi(vf);
--      if (!vsi) {
--              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+      if (!vsi)
-               goto error_param;
--      }
-       if (qci->num_queue_pairs > ICE_MAX_RSS_QS_PER_VF ||
-           qci->num_queue_pairs > min_t(u16, vsi->alloc_txq, vsi->alloc_rxq)) {
-               dev_err(ice_pf_to_dev(pf), "VF-%d requesting more than supported number of queues: %d\n",
-                       vf->vf_id, min_t(u16, vsi->alloc_txq, vsi->alloc_rxq));
--              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-               goto error_param;
-       }
-@@ -3621,7 +3613,6 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
-                   !ice_vc_isvalid_ring_len(qpi->txq.ring_len) ||
-                   !ice_vc_isvalid_ring_len(qpi->rxq.ring_len) ||
-                   !ice_vc_isvalid_q_id(vf, qci->vsi_id, qpi->txq.queue_id)) {
--                      v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-                       goto error_param;
-               }
-@@ -3631,7 +3622,6 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
-                * for selected "vsi"
-                */
-               if (q_idx >= vsi->alloc_txq || q_idx >= vsi->alloc_rxq) {
--                      v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-                       goto error_param;
-               }
-@@ -3641,14 +3631,13 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
-                       vsi->tx_rings[i]->count = qpi->txq.ring_len;
-                       /* Disable any existing queue first */
--                      if (ice_vf_vsi_dis_single_txq(vf, vsi, q_idx)) {
--                              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+                      if (ice_vf_vsi_dis_single_txq(vf, vsi, q_idx))
-                               goto error_param;
--                      }
-                       /* Configure a queue with the requested settings */
-                       if (ice_vsi_cfg_single_txq(vsi, vsi->tx_rings, q_idx)) {
--                              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+                              dev_warn(ice_pf_to_dev(pf), "VF-%d failed to configure TX queue %d\n",
-+                                       vf->vf_id, i);
-                               goto error_param;
-                       }
-               }
-@@ -3662,17 +3651,13 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
-                       if (qpi->rxq.databuffer_size != 0 &&
-                           (qpi->rxq.databuffer_size > ((16 * 1024) - 128) ||
--                           qpi->rxq.databuffer_size < 1024)) {
--                              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+                           qpi->rxq.databuffer_size < 1024))
-                               goto error_param;
--                      }
-                       vsi->rx_buf_len = qpi->rxq.databuffer_size;
-                       vsi->rx_rings[i]->rx_buf_len = vsi->rx_buf_len;
-                       if (qpi->rxq.max_pkt_size > max_frame_size ||
--                          qpi->rxq.max_pkt_size < 64) {
--                              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+                          qpi->rxq.max_pkt_size < 64)
-                               goto error_param;
--                      }
-                       vsi->max_frame = qpi->rxq.max_pkt_size;
-                       /* add space for the port VLAN since the VF driver is not
-@@ -3682,16 +3667,30 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
-                               vsi->max_frame += VLAN_HLEN;
-                       if (ice_vsi_cfg_single_rxq(vsi, q_idx)) {
--                              v_ret = VIRTCHNL_STATUS_ERR_PARAM;
-+                              dev_warn(ice_pf_to_dev(pf), "VF-%d failed to configure RX queue %d\n",
-+                                       vf->vf_id, i);
-                               goto error_param;
-                       }
-               }
-       }
-+      /* send the response to the VF */
-+      return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_CONFIG_VSI_QUEUES,
-+                                   VIRTCHNL_STATUS_SUCCESS, NULL, 0);
- error_param:
-+      /* disable whatever we can */
-+      for (; i >= 0; i--) {
-+              if (ice_vsi_ctrl_one_rx_ring(vsi, false, i, true))
-+                      dev_err(ice_pf_to_dev(pf), "VF-%d could not disable RX queue %d\n",
-+                              vf->vf_id, i);
-+              if (ice_vf_vsi_dis_single_txq(vf, vsi, i))
-+                      dev_err(ice_pf_to_dev(pf), "VF-%d could not disable TX queue %d\n",
-+                              vf->vf_id, i);
-+      }
-+
-       /* send the response to the VF */
--      return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_CONFIG_VSI_QUEUES, v_ret,
--                                   NULL, 0);
-+      return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_CONFIG_VSI_QUEUES,
-+                                   VIRTCHNL_STATUS_ERR_PARAM, NULL, 0);
- }
- /**
--- 
-2.35.1
-
diff --git a/queue-5.17/init-initialize-noop_backing_dev_info-early.patch b/queue-5.17/init-initialize-noop_backing_dev_info-early.patch
deleted file mode 100644 (file)
index b170b6c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From 74e172d1614c2fb3ee7ecc84e7bc3eac24258d8d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 15:22:29 +0200
-Subject: init: Initialize noop_backing_dev_info early
-
-From: Jan Kara <jack@suse.cz>
-
-[ Upstream commit 4bca7e80b6455772b4bf3f536dcbc19aac424d6a ]
-
-noop_backing_dev_info is used by superblocks of various
-pseudofilesystems such as kdevtmpfs. After commit 10e14073107d
-("writeback: Fix inode->i_io_list not be protected by inode->i_lock
-error") this broke because __mark_inode_dirty() started to access more
-fields from noop_backing_dev_info and this led to crashes inside
-locked_inode_to_wb_and_lock_list() called from __mark_inode_dirty().
-Fix the problem by initializing noop_backing_dev_info before the
-filesystems get mounted.
-
-Fixes: 10e14073107d ("writeback: Fix inode->i_io_list not be protected by inode->i_lock error")
-Reported-and-tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
-Reported-and-tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
-Reported-and-tested-by: Guenter Roeck <linux@roeck-us.net>
-Reviewed-by: Christoph Hellwig <hch@lst.de>
-Signed-off-by: Jan Kara <jack@suse.cz>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/base/init.c         |  2 ++
- include/linux/backing-dev.h |  2 ++
- mm/backing-dev.c            | 11 ++---------
- 3 files changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/base/init.c b/drivers/base/init.c
-index a9f57c22fb9e..dab8aa5d2888 100644
---- a/drivers/base/init.c
-+++ b/drivers/base/init.c
-@@ -8,6 +8,7 @@
- #include <linux/init.h>
- #include <linux/memory.h>
- #include <linux/of.h>
-+#include <linux/backing-dev.h>
- #include "base.h"
-@@ -20,6 +21,7 @@
- void __init driver_init(void)
- {
-       /* These are the core pieces */
-+      bdi_init(&noop_backing_dev_info);
-       devtmpfs_init();
-       devices_init();
-       buses_init();
-diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
-index 483979c1b9f4..677fe99cc637 100644
---- a/include/linux/backing-dev.h
-+++ b/include/linux/backing-dev.h
-@@ -121,6 +121,8 @@ int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio);
- extern struct backing_dev_info noop_backing_dev_info;
-+int bdi_init(struct backing_dev_info *bdi);
-+
- /**
-  * writeback_in_progress - determine whether there is writeback in progress
-  * @wb: bdi_writeback of interest
-diff --git a/mm/backing-dev.c b/mm/backing-dev.c
-index eae96dfe0261..a48c66c3bf5f 100644
---- a/mm/backing-dev.c
-+++ b/mm/backing-dev.c
-@@ -230,20 +230,13 @@ static __init int bdi_class_init(void)
- }
- postcore_initcall(bdi_class_init);
--static int bdi_init(struct backing_dev_info *bdi);
--
- static int __init default_bdi_init(void)
- {
--      int err;
--
-       bdi_wq = alloc_workqueue("writeback", WQ_MEM_RECLAIM | WQ_UNBOUND |
-                                WQ_SYSFS, 0);
-       if (!bdi_wq)
-               return -ENOMEM;
--
--      err = bdi_init(&noop_backing_dev_info);
--
--      return err;
-+      return 0;
- }
- subsys_initcall(default_bdi_init);
-@@ -782,7 +775,7 @@ static void cgwb_remove_from_bdi_list(struct bdi_writeback *wb)
- #endif        /* CONFIG_CGROUP_WRITEBACK */
--static int bdi_init(struct backing_dev_info *bdi)
-+int bdi_init(struct backing_dev_info *bdi)
- {
-       int ret;
--- 
-2.35.1
-
diff --git a/queue-5.17/input-soc_button_array-also-add-lenovo-yoga-tablet2-.patch b/queue-5.17/input-soc_button_array-also-add-lenovo-yoga-tablet2-.patch
deleted file mode 100644 (file)
index a1adb86..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From 7b33d68c71c38864aab9fa1464c38baa4f8d4c0b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 7 Jun 2022 12:10:52 -0700
-Subject: Input: soc_button_array - also add Lenovo Yoga Tablet2 1051F to
- dmi_use_low_level_irq
-
-From: Marius Hoch <mail@mariushoch.de>
-
-[ Upstream commit 6ab2e51898cd4343bbdf8587af8ce8fbabddbcb5 ]
-
-Commit 223f61b8c5ad ("Input: soc_button_array - add Lenovo Yoga Tablet2
-1051L to the dmi_use_low_level_irq list") added the 1051L to this list
-already, but the same problem applies to the 1051F. As there are no
-further 1051 variants (just the F/L), we can just DMI match 1051.
-
-Tested on a Lenovo Yoga Tablet2 1051F: Without this patch the
-home-button stops working after a wakeup from suspend.
-
-Signed-off-by: Marius Hoch <mail@mariushoch.de>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Link: https://lore.kernel.org/r/20220603120246.3065-1-mail@mariushoch.de
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/input/misc/soc_button_array.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
-index cb6ec59a045d..efffcf0ebd3b 100644
---- a/drivers/input/misc/soc_button_array.c
-+++ b/drivers/input/misc/soc_button_array.c
-@@ -85,13 +85,13 @@ static const struct dmi_system_id dmi_use_low_level_irq[] = {
-       },
-       {
-               /*
--               * Lenovo Yoga Tab2 1051L, something messes with the home-button
-+               * Lenovo Yoga Tab2 1051F/1051L, something messes with the home-button
-                * IRQ settings, leading to a non working home-button.
-                */
-               .matches = {
-                       DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-                       DMI_MATCH(DMI_PRODUCT_NAME, "60073"),
--                      DMI_MATCH(DMI_PRODUCT_VERSION, "1051L"),
-+                      DMI_MATCH(DMI_PRODUCT_VERSION, "1051"),
-               },
-       },
-       {} /* Terminating entry */
--- 
-2.35.1
-
diff --git a/queue-5.17/io_uring-fix-races-with-buffer-table-unregister.patch b/queue-5.17/io_uring-fix-races-with-buffer-table-unregister.patch
deleted file mode 100644 (file)
index 1b2f50f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0286ab47c5d95c81bec9373b423e3d2e0940f3e4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 13 Jun 2022 06:30:06 +0100
-Subject: io_uring: fix races with buffer table unregister
-
-From: Pavel Begunkov <asml.silence@gmail.com>
-
-[ Upstream commit d11d31fc5d8a96f707facee0babdcffaafa38de2 ]
-
-Fixed buffer table quiesce might unlock ->uring_lock, potentially
-letting new requests to be submitted, don't allow those requests to
-use the table as they will race with unregistration.
-
-Reported-and-tested-by: van fantasy <g1042620637@gmail.com>
-Fixes: bd54b6fe3316ec ("io_uring: implement fixed buffers registration similar to fixed files")
-Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/io_uring.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/fs/io_uring.c b/fs/io_uring.c
-index 61d1376e4d9c..f4db5fa2f332 100644
---- a/fs/io_uring.c
-+++ b/fs/io_uring.c
-@@ -9074,12 +9074,19 @@ static void __io_sqe_buffers_unregister(struct io_ring_ctx *ctx)
- static int io_sqe_buffers_unregister(struct io_ring_ctx *ctx)
- {
-+      unsigned nr = ctx->nr_user_bufs;
-       int ret;
-       if (!ctx->buf_data)
-               return -ENXIO;
-+      /*
-+       * Quiesce may unlock ->uring_lock, and while it's not held
-+       * prevent new requests using the table.
-+       */
-+      ctx->nr_user_bufs = 0;
-       ret = io_rsrc_ref_quiesce(ctx->buf_data, ctx);
-+      ctx->nr_user_bufs = nr;
-       if (!ret)
-               __io_sqe_buffers_unregister(ctx);
-       return ret;
--- 
-2.35.1
-
diff --git a/queue-5.17/io_uring-fix-races-with-file-table-unregister.patch b/queue-5.17/io_uring-fix-races-with-file-table-unregister.patch
deleted file mode 100644 (file)
index 929fa42..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 33e7fb0f20c393157ee5eebc5934f240629e242a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 13 Jun 2022 06:32:44 +0100
-Subject: io_uring: fix races with file table unregister
-
-From: Pavel Begunkov <asml.silence@gmail.com>
-
-[ Upstream commit b0380bf6dad4601d92025841e2b7a135d566c6e3 ]
-
-Fixed file table quiesce might unlock ->uring_lock, potentially letting
-new requests to be submitted, don't allow those requests to use the
-table as they will race with unregistration.
-
-Reported-and-tested-by: van fantasy <g1042620637@gmail.com>
-Fixes: 05f3fb3c53975 ("io_uring: avoid ring quiesce for fixed file set unregister and update")
-Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/io_uring.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/fs/io_uring.c b/fs/io_uring.c
-index 0bd592af1bf7..61d1376e4d9c 100644
---- a/fs/io_uring.c
-+++ b/fs/io_uring.c
-@@ -8098,11 +8098,19 @@ static void __io_sqe_files_unregister(struct io_ring_ctx *ctx)
- static int io_sqe_files_unregister(struct io_ring_ctx *ctx)
- {
-+      unsigned nr = ctx->nr_user_files;
-       int ret;
-       if (!ctx->file_data)
-               return -ENXIO;
-+
-+      /*
-+       * Quiesce may unlock ->uring_lock, and while it's not held
-+       * prevent new requests using the table.
-+       */
-+      ctx->nr_user_files = 0;
-       ret = io_rsrc_ref_quiesce(ctx->file_data, ctx);
-+      ctx->nr_user_files = nr;
-       if (!ret)
-               __io_sqe_files_unregister(ctx);
-       return ret;
--- 
-2.35.1
-
diff --git a/queue-5.17/ipv6-fix-signed-integer-overflow-in-l2tp_ip6_sendmsg.patch b/queue-5.17/ipv6-fix-signed-integer-overflow-in-l2tp_ip6_sendmsg.patch
deleted file mode 100644 (file)
index fdb2488..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From 223e18e45ecdb5b8fd122717f51fafcfaca8e44e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 7 Jun 2022 20:00:28 +0800
-Subject: ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg
-
-From: Wang Yufen <wangyufen@huawei.com>
-
-[ Upstream commit f638a84afef3dfe10554c51820c16e39a278c915 ]
-
-When len >= INT_MAX - transhdrlen, ulen = len + transhdrlen will be
-overflow. To fix, we can follow what udpv6 does and subtract the
-transhdrlen from the max.
-
-Signed-off-by: Wang Yufen <wangyufen@huawei.com>
-Link: https://lore.kernel.org/r/20220607120028.845916-2-wangyufen@huawei.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/l2tp/l2tp_ip6.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
-index 96f975777438..d54dbd01d86f 100644
---- a/net/l2tp/l2tp_ip6.c
-+++ b/net/l2tp/l2tp_ip6.c
-@@ -502,14 +502,15 @@ static int l2tp_ip6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
-       struct ipcm6_cookie ipc6;
-       int addr_len = msg->msg_namelen;
-       int transhdrlen = 4; /* zero session-id */
--      int ulen = len + transhdrlen;
-+      int ulen;
-       int err;
-       /* Rough check on arithmetic overflow,
-        * better check is made in ip6_append_data().
-        */
--      if (len > INT_MAX)
-+      if (len > INT_MAX - transhdrlen)
-               return -EMSGSIZE;
-+      ulen = len + transhdrlen;
-       /* Mirror BSD error message compatibility */
-       if (msg->msg_flags & MSG_OOB)
--- 
-2.35.1
-
diff --git a/queue-5.17/irqchip-gic-realview-fix-refcount-leak-in-realview_g.patch b/queue-5.17/irqchip-gic-realview-fix-refcount-leak-in-realview_g.patch
deleted file mode 100644 (file)
index d290424..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 86acb6ceecbb11ef7e9c05aad1f8baed2de7b3c4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 12:09:25 +0400
-Subject: irqchip/gic/realview: Fix refcount leak in realview_gic_of_init
-
-From: Miaoqian Lin <linmq006@gmail.com>
-
-[ Upstream commit f4b98e314888cc51486421bcf6d52852452ea48b ]
-
-of_find_matching_node_and_match() returns a node pointer with refcount
-incremented, we should use of_node_put() on it when not need anymore.
-Add missing of_node_put() to avoid refcount leak.
-
-Fixes: 82b0a434b436 ("irqchip/gic/realview: Support more RealView DCC variants")
-Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220601080930.31005-2-linmq006@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-gic-realview.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/irqchip/irq-gic-realview.c b/drivers/irqchip/irq-gic-realview.c
-index b4c1924f0255..38fab02ffe9d 100644
---- a/drivers/irqchip/irq-gic-realview.c
-+++ b/drivers/irqchip/irq-gic-realview.c
-@@ -57,6 +57,7 @@ realview_gic_of_init(struct device_node *node, struct device_node *parent)
-       /* The PB11MPCore GIC needs to be configured in the syscon */
-       map = syscon_node_to_regmap(np);
-+      of_node_put(np);
-       if (!IS_ERR(map)) {
-               /* new irq mode with no DCC */
-               regmap_write(map, REALVIEW_SYS_LOCK_OFFSET,
--- 
-2.35.1
-
diff --git a/queue-5.17/irqchip-gic-v3-fix-error-handling-in-gic_populate_pp.patch b/queue-5.17/irqchip-gic-v3-fix-error-handling-in-gic_populate_pp.patch
deleted file mode 100644 (file)
index 2a4fd0d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 67923c709a5632d2c5e358cfd52fec44fcaf4110 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 12:09:28 +0400
-Subject: irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions
-
-From: Miaoqian Lin <linmq006@gmail.com>
-
-[ Upstream commit ec8401a429ffee34ccf38cebf3443f8d5ae6cb0d ]
-
-of_get_child_by_name() returns a node pointer with refcount
-incremented, we should use of_node_put() on it when not need anymore.
-When kcalloc fails, it missing of_node_put() and results in refcount
-leak. Fix this by goto out_put_node label.
-
-Fixes: 52085d3f2028 ("irqchip/gic-v3: Dynamically allocate PPI partition descriptors")
-Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220601080930.31005-5-linmq006@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-gic-v3.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
-index 09abc8a4759e..3ac4442c2abe 100644
---- a/drivers/irqchip/irq-gic-v3.c
-+++ b/drivers/irqchip/irq-gic-v3.c
-@@ -1922,7 +1922,7 @@ static void __init gic_populate_ppi_partitions(struct device_node *gic_node)
-       gic_data.ppi_descs = kcalloc(gic_data.ppi_nr, sizeof(*gic_data.ppi_descs), GFP_KERNEL);
-       if (!gic_data.ppi_descs)
--              return;
-+              goto out_put_node;
-       nr_parts = of_get_child_count(parts_node);
--- 
-2.35.1
-
diff --git a/queue-5.17/irqchip-gic-v3-fix-refcount-leak-in-gic_populate_ppi.patch b/queue-5.17/irqchip-gic-v3-fix-refcount-leak-in-gic_populate_ppi.patch
deleted file mode 100644 (file)
index 52752a4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From cdeb0d9de5f9213f3b09e4e324c9305968eaad4a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 12:09:29 +0400
-Subject: irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
-
-From: Miaoqian Lin <linmq006@gmail.com>
-
-[ Upstream commit fa1ad9d4cc47ca2470cd904ad4519f05d7e43a2b ]
-
-of_find_node_by_phandle() returns a node pointer with refcount
-incremented, we should use of_node_put() on it when not need anymore.
-Add missing of_node_put() to avoid refcount leak.
-
-Fixes: e3825ba1af3a ("irqchip/gic-v3: Add support for partitioned PPIs")
-Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220601080930.31005-6-linmq006@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-gic-v3.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
-index 3ac4442c2abe..88f2b7a0db78 100644
---- a/drivers/irqchip/irq-gic-v3.c
-+++ b/drivers/irqchip/irq-gic-v3.c
-@@ -1963,12 +1963,15 @@ static void __init gic_populate_ppi_partitions(struct device_node *gic_node)
-                               continue;
-                       cpu = of_cpu_node_to_id(cpu_node);
--                      if (WARN_ON(cpu < 0))
-+                      if (WARN_ON(cpu < 0)) {
-+                              of_node_put(cpu_node);
-                               continue;
-+                      }
-                       pr_cont("%pOF[%d] ", cpu_node, cpu);
-                       cpumask_set_cpu(cpu, &part->mask);
-+                      of_node_put(cpu_node);
-               }
-               pr_cont("}\n");
--- 
-2.35.1
-
diff --git a/queue-5.17/irqchip-realtek-rtl-fix-refcount-leak-in-map_interru.patch b/queue-5.17/irqchip-realtek-rtl-fix-refcount-leak-in-map_interru.patch
deleted file mode 100644 (file)
index 42b0a94..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 85594b746a209a36736e6a3d51e9ee10aaf38c5a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 12:09:30 +0400
-Subject: irqchip/realtek-rtl: Fix refcount leak in map_interrupts
-
-From: Miaoqian Lin <linmq006@gmail.com>
-
-[ Upstream commit eff4780f83d0ae3e5b6c02ff5d999dc4c1c5c8ce ]
-
-of_find_node_by_phandle() returns a node pointer with refcount
-incremented, we should use of_node_put() on it when not need anymore.
-This function doesn't call of_node_put() in error path.
-Call of_node_put() directly after of_property_read_u32() to cover
-both normal path and error path.
-
-Fixes: 9f3a0f34b84a ("irqchip: Add support for Realtek RTL838x/RTL839x interrupt controller")
-Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220601080930.31005-7-linmq006@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-realtek-rtl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/irqchip/irq-realtek-rtl.c b/drivers/irqchip/irq-realtek-rtl.c
-index 50a56820c99b..56bf502d9c67 100644
---- a/drivers/irqchip/irq-realtek-rtl.c
-+++ b/drivers/irqchip/irq-realtek-rtl.c
-@@ -134,9 +134,9 @@ static int __init map_interrupts(struct device_node *node, struct irq_domain *do
-               if (!cpu_ictl)
-                       return -EINVAL;
-               ret = of_property_read_u32(cpu_ictl, "#interrupt-cells", &tmp);
-+              of_node_put(cpu_ictl);
-               if (ret || tmp != 1)
-                       return -EINVAL;
--              of_node_put(cpu_ictl);
-               cpu_int = be32_to_cpup(imap + 2);
-               if (cpu_int > 7 || cpu_int < 2)
--- 
-2.35.1
-
diff --git a/queue-5.17/mellanox-mlx5-avoid-uninitialized-variable-warning-w.patch b/queue-5.17/mellanox-mlx5-avoid-uninitialized-variable-warning-w.patch
deleted file mode 100644 (file)
index c2de649..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From d12644a10fb28c7dd81d4340ea8ef736d3d8cc23 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 Jun 2022 10:03:28 -0700
-Subject: mellanox: mlx5: avoid uninitialized variable warning with gcc-12
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-[ Upstream commit 842c3b3ddc5f4d17275edbaa09e23d712bf8b915 ]
-
-gcc-12 started warning about 'tracker' being used uninitialized:
-
-  drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c: In function ‘mlx5_do_bond’:
-  drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c:786:28: warning: ‘tracker’ is used uninitialized [-Wuninitialized]
-    786 |         struct lag_tracker tracker;
-        |                            ^~~~~~~
-
-which seems to be because it doesn't track how the use (and
-initialization) is bound by the 'do_bond' flag.
-
-But admittedly that 'do_bond' usage is fairly complicated, and involves
-passing it around as an argument to helper functions, so it's somewhat
-understandable that gcc doesn't see how that all works.
-
-This function could be rewritten to make the use of that tracker
-variable more obviously safe, but for now I'm just adding the forced
-initialization of it.
-
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
-index d4629f9bdab1..b3ba74352b58 100644
---- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
-+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
-@@ -485,7 +485,7 @@ static void mlx5_do_bond(struct mlx5_lag *ldev)
- {
-       struct mlx5_core_dev *dev0 = ldev->pf[MLX5_LAG_P1].dev;
-       struct mlx5_core_dev *dev1 = ldev->pf[MLX5_LAG_P2].dev;
--      struct lag_tracker tracker;
-+      struct lag_tracker tracker = { };
-       bool do_bond, roce_lag;
-       int err;
--- 
-2.35.1
-
diff --git a/queue-5.17/mips-loongson-3-fix-compile-mips-cpu_hwmon-as-module.patch b/queue-5.17/mips-loongson-3-fix-compile-mips-cpu_hwmon-as-module.patch
deleted file mode 100644 (file)
index f6f0e75..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From eb93ea8f664a3a62252a400463baececf9bc378b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 8 Jun 2022 09:12:29 +0800
-Subject: MIPS: Loongson-3: fix compile mips cpu_hwmon as module build error.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Yupeng Li <liyupeng@zbhlos.com>
-
-[ Upstream commit 41e456400212803704e82691716e1d7b0865114a ]
-
-  set cpu_hwmon as a module build with loongson_sysconf, loongson_chiptemp
-  undefined error,fix cpu_hwmon compile options to be bool.Some kernel
-  compilation error information is as follows:
-
-  Checking missing-syscalls for N32
-  CALL    scripts/checksyscalls.sh
-  Checking missing-syscalls for O32
-  CALL    scripts/checksyscalls.sh
-  CALL    scripts/checksyscalls.sh
-  CHK     include/generated/compile.h
-  CC [M]  drivers/platform/mips/cpu_hwmon.o
-  Building modules, stage 2.
-  MODPOST 200 modules
-ERROR: "loongson_sysconf" [drivers/platform/mips/cpu_hwmon.ko] undefined!
-ERROR: "loongson_chiptemp" [drivers/platform/mips/cpu_hwmon.ko] undefined!
-make[1]: *** [scripts/Makefile.modpost:92:__modpost] 错误 1
-make: *** [Makefile:1261:modules] 错误 2
-
-Signed-off-by: Yupeng Li <liyupeng@zbhlos.com>
-Reviewed-by: Guenter Roeck <linux@roeck-us.net>
-Reviewed-by: Huacai Chen <chenhuacai@kernel.org>
-Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/mips/Kconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/platform/mips/Kconfig b/drivers/platform/mips/Kconfig
-index d421e1482395..6b51ad01f791 100644
---- a/drivers/platform/mips/Kconfig
-+++ b/drivers/platform/mips/Kconfig
-@@ -17,7 +17,7 @@ menuconfig MIPS_PLATFORM_DEVICES
- if MIPS_PLATFORM_DEVICES
- config CPU_HWMON
--      tristate "Loongson-3 CPU HWMon Driver"
-+      bool "Loongson-3 CPU HWMon Driver"
-       depends on MACH_LOONGSON64
-       select HWMON
-       default y
--- 
-2.35.1
-
diff --git a/queue-5.17/misc-atmel-ssc-fix-irq-check-in-ssc_probe.patch b/queue-5.17/misc-atmel-ssc-fix-irq-check-in-ssc_probe.patch
deleted file mode 100644 (file)
index d54228f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 977ce07e7b80fbcdf258700815c486a5d65a08e5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 16:30:26 +0400
-Subject: misc: atmel-ssc: Fix IRQ check in ssc_probe
-
-From: Miaoqian Lin <linmq006@gmail.com>
-
-[ Upstream commit 1c245358ce0b13669f6d1625f7a4e05c41f28980 ]
-
-platform_get_irq() returns negative error number instead 0 on failure.
-And the doc of platform_get_irq() provides a usage example:
-
-    int irq = platform_get_irq(pdev, 0);
-    if (irq < 0)
-        return irq;
-
-Fix the check of return value to catch errors correctly.
-
-Fixes: eb1f2930609b ("Driver for the Atmel on-chip SSC on AT32AP and AT91")
-Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
-Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
-Link: https://lore.kernel.org/r/20220601123026.7119-1-linmq006@gmail.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/misc/atmel-ssc.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c
-index d6cd5537126c..69f9b0336410 100644
---- a/drivers/misc/atmel-ssc.c
-+++ b/drivers/misc/atmel-ssc.c
-@@ -232,9 +232,9 @@ static int ssc_probe(struct platform_device *pdev)
-       clk_disable_unprepare(ssc->clk);
-       ssc->irq = platform_get_irq(pdev, 0);
--      if (!ssc->irq) {
-+      if (ssc->irq < 0) {
-               dev_dbg(&pdev->dev, "could not get irq\n");
--              return -ENXIO;
-+              return ssc->irq;
-       }
-       mutex_lock(&user_lock);
--- 
-2.35.1
-
diff --git a/queue-5.17/mlxsw-spectrum_cnt-reorder-counter-pools.patch b/queue-5.17/mlxsw-spectrum_cnt-reorder-counter-pools.patch
deleted file mode 100644 (file)
index a3f7cc8..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From 3e58796aa3c384b1175c8771959218078844af19 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 13 Jun 2022 15:50:17 +0300
-Subject: mlxsw: spectrum_cnt: Reorder counter pools
-
-From: Petr Machata <petrm@nvidia.com>
-
-[ Upstream commit 4b7a632ac4e7101ceefee8484d5c2ca505d347b3 ]
-
-Both RIF and ACL flow counters use a 24-bit SW-managed counter address to
-communicate which counter they want to bind.
-
-In a number of Spectrum FW releases, binding a RIF counter is broken and
-slices the counter index to 16 bits. As a result, on Spectrum-2 and above,
-no more than about 410 RIF counters can be effectively used. This
-translates to 205 netdevices for which L3 HW stats can be enabled. (This
-does not happen on Spectrum-1, because there are fewer counters available
-overall and the counter index never exceeds 16 bits.)
-
-Binding counters to ACLs does not have this issue. Therefore reorder the
-counter allocation scheme so that RIF counters come first and therefore get
-lower indices that are below the 16-bit barrier.
-
-Fixes: 98e60dce4da1 ("Merge branch 'mlxsw-Introduce-initial-Spectrum-2-support'")
-Reported-by: Maksym Yaremchuk <maksymy@nvidia.com>
-Signed-off-by: Petr Machata <petrm@nvidia.com>
-Signed-off-by: Ido Schimmel <idosch@nvidia.com>
-Link: https://lore.kernel.org/r/20220613125017.2018162-1-idosch@nvidia.com
-Signed-off-by: Paolo Abeni <pabeni@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h
-index a68d931090dd..15c8d4de8350 100644
---- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h
-+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h
-@@ -8,8 +8,8 @@
- #include "spectrum.h"
- enum mlxsw_sp_counter_sub_pool_id {
--      MLXSW_SP_COUNTER_SUB_POOL_FLOW,
-       MLXSW_SP_COUNTER_SUB_POOL_RIF,
-+      MLXSW_SP_COUNTER_SUB_POOL_FLOW,
- };
- int mlxsw_sp_counter_alloc(struct mlxsw_sp *mlxsw_sp,
--- 
-2.35.1
-
diff --git a/queue-5.17/net-ax25-fix-deadlock-caused-by-skb_recv_datagram-in.patch b/queue-5.17/net-ax25-fix-deadlock-caused-by-skb_recv_datagram-in.patch
deleted file mode 100644 (file)
index 33b2220..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From fe07aea6af8ba29d8c8b535cc63d20b77a1cec62 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 14 Jun 2022 17:25:57 +0800
-Subject: net: ax25: Fix deadlock caused by skb_recv_datagram in ax25_recvmsg
-
-From: Duoming Zhou <duoming@zju.edu.cn>
-
-[ Upstream commit 219b51a6f040fa5367adadd7d58c4dda0896a01d ]
-
-The skb_recv_datagram() in ax25_recvmsg() will hold lock_sock
-and block until it receives a packet from the remote. If the client
-doesn`t connect to server and calls read() directly, it will not
-receive any packets forever. As a result, the deadlock will happen.
-
-The fail log caused by deadlock is shown below:
-
-[  369.606973] INFO: task ax25_deadlock:157 blocked for more than 245 seconds.
-[  369.608919] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
-[  369.613058] Call Trace:
-[  369.613315]  <TASK>
-[  369.614072]  __schedule+0x2f9/0xb20
-[  369.615029]  schedule+0x49/0xb0
-[  369.615734]  __lock_sock+0x92/0x100
-[  369.616763]  ? destroy_sched_domains_rcu+0x20/0x20
-[  369.617941]  lock_sock_nested+0x6e/0x70
-[  369.618809]  ax25_bind+0xaa/0x210
-[  369.619736]  __sys_bind+0xca/0xf0
-[  369.620039]  ? do_futex+0xae/0x1b0
-[  369.620387]  ? __x64_sys_futex+0x7c/0x1c0
-[  369.620601]  ? fpregs_assert_state_consistent+0x19/0x40
-[  369.620613]  __x64_sys_bind+0x11/0x20
-[  369.621791]  do_syscall_64+0x3b/0x90
-[  369.622423]  entry_SYSCALL_64_after_hwframe+0x46/0xb0
-[  369.623319] RIP: 0033:0x7f43c8aa8af7
-[  369.624301] RSP: 002b:00007f43c8197ef8 EFLAGS: 00000246 ORIG_RAX: 0000000000000031
-[  369.625756] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f43c8aa8af7
-[  369.626724] RDX: 0000000000000010 RSI: 000055768e2021d0 RDI: 0000000000000005
-[  369.628569] RBP: 00007f43c8197f00 R08: 0000000000000011 R09: 00007f43c8198700
-[  369.630208] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff845e6afe
-[  369.632240] R13: 00007fff845e6aff R14: 00007f43c8197fc0 R15: 00007f43c8198700
-
-This patch replaces skb_recv_datagram() with an open-coded variant of it
-releasing the socket lock before the __skb_wait_for_more_packets() call
-and re-acquiring it after such call in order that other functions that
-need socket lock could be executed.
-
-what's more, the socket lock will be released only when recvmsg() will
-block and that should produce nicer overall behavior.
-
-Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
-Suggested-by: Thomas Osterried <thomas@osterried.de>
-Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
-Reported-by: Thomas Habets <thomas@@habets.se>
-Acked-by: Paolo Abeni <pabeni@redhat.com>
-Reviewed-by: Eric Dumazet <edumazet@google.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/ax25/af_ax25.c | 34 ++++++++++++++++++++++++++++------
- 1 file changed, 28 insertions(+), 6 deletions(-)
-
-diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
-index 289f355e1853..4c7030ed8d33 100644
---- a/net/ax25/af_ax25.c
-+++ b/net/ax25/af_ax25.c
-@@ -1661,9 +1661,12 @@ static int ax25_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
-                       int flags)
- {
-       struct sock *sk = sock->sk;
--      struct sk_buff *skb;
-+      struct sk_buff *skb, *last;
-+      struct sk_buff_head *sk_queue;
-       int copied;
-       int err = 0;
-+      int off = 0;
-+      long timeo;
-       lock_sock(sk);
-       /*
-@@ -1675,11 +1678,29 @@ static int ax25_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
-               goto out;
-       }
--      /* Now we can treat all alike */
--      skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
--                              flags & MSG_DONTWAIT, &err);
--      if (skb == NULL)
--              goto out;
-+      /*  We need support for non-blocking reads. */
-+      sk_queue = &sk->sk_receive_queue;
-+      skb = __skb_try_recv_datagram(sk, sk_queue, flags, &off, &err, &last);
-+      /* If no packet is available, release_sock(sk) and try again. */
-+      if (!skb) {
-+              if (err != -EAGAIN)
-+                      goto out;
-+              release_sock(sk);
-+              timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT);
-+              while (timeo && !__skb_wait_for_more_packets(sk, sk_queue, &err,
-+                                                           &timeo, last)) {
-+                      skb = __skb_try_recv_datagram(sk, sk_queue, flags, &off,
-+                                                    &err, &last);
-+                      if (skb)
-+                              break;
-+
-+                      if (err != -EAGAIN)
-+                              goto done;
-+              }
-+              if (!skb)
-+                      goto done;
-+              lock_sock(sk);
-+      }
-       if (!sk_to_ax25(sk)->pidincl)
-               skb_pull(skb, 1);               /* Remove PID */
-@@ -1726,6 +1747,7 @@ static int ax25_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
- out:
-       release_sock(sk);
-+done:
-       return err;
- }
--- 
-2.35.1
-
diff --git a/queue-5.17/net-bgmac-fix-an-erroneous-kfree-in-bgmac_remove.patch b/queue-5.17/net-bgmac-fix-an-erroneous-kfree-in-bgmac_remove.patch
deleted file mode 100644 (file)
index a94a692..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 9a781ea267afc90d4752b6719c21d3396b96cfce Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 13 Jun 2022 22:53:50 +0200
-Subject: net: bgmac: Fix an erroneous kfree() in bgmac_remove()
-
-From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
-
-[ Upstream commit d7dd6eccfbc95ac47a12396f84e7e1b361db654b ]
-
-'bgmac' is part of a managed resource allocated with bgmac_alloc(). It
-should not be freed explicitly.
-
-Remove the erroneous kfree() from the .remove() function.
-
-Fixes: 34a5102c3235 ("net: bgmac: allocate struct bgmac just once & don't copy it")
-Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
-Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
-Link: https://lore.kernel.org/r/a026153108dd21239036a032b95c25b5cece253b.1655153616.git.christophe.jaillet@wanadoo.fr
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/broadcom/bgmac-bcma.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/broadcom/bgmac-bcma.c b/drivers/net/ethernet/broadcom/bgmac-bcma.c
-index e6f48786949c..02bd3cf9a260 100644
---- a/drivers/net/ethernet/broadcom/bgmac-bcma.c
-+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c
-@@ -332,7 +332,6 @@ static void bgmac_remove(struct bcma_device *core)
-       bcma_mdio_mii_unregister(bgmac->mii_bus);
-       bgmac_enet_remove(bgmac);
-       bcma_set_drvdata(core, NULL);
--      kfree(bgmac);
- }
- static struct bcma_driver bgmac_bcma_driver = {
--- 
-2.35.1
-
diff --git a/queue-5.17/net-ethernet-mtk_eth_soc-fix-misuse-of-mem-alloc-int.patch b/queue-5.17/net-ethernet-mtk_eth_soc-fix-misuse-of-mem-alloc-int.patch
deleted file mode 100644 (file)
index d6e7db7..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-From af6f2210e3f150bdc4c3ecca3b2b986079e85f77 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 8 Jun 2022 20:46:53 +0800
-Subject: net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface
- netdev[napi]_alloc_frag
-
-From: Chen Lin <chen45464546@163.com>
-
-[ Upstream commit 2f2c0d2919a14002760f89f4e02960c735a316d2 ]
-
-When rx_flag == MTK_RX_FLAGS_HWLRO,
-rx_data_len = MTK_MAX_LRO_RX_LENGTH(4096 * 3) > PAGE_SIZE.
-netdev_alloc_frag is for alloction of page fragment only.
-Reference to other drivers and Documentation/vm/page_frags.rst
-
-Branch to use __get_free_pages when ring->frag_size > PAGE_SIZE.
-
-Signed-off-by: Chen Lin <chen45464546@163.com>
-Link: https://lore.kernel.org/r/1654692413-2598-1-git-send-email-chen45464546@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 21 +++++++++++++++++++--
- 1 file changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index a50090e62c8f..c075670bc562 100644
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -778,6 +778,17 @@ static inline bool mtk_rx_get_desc(struct mtk_rx_dma *rxd,
-       return true;
- }
-+static void *mtk_max_lro_buf_alloc(gfp_t gfp_mask)
-+{
-+      unsigned int size = mtk_max_frag_size(MTK_MAX_LRO_RX_LENGTH);
-+      unsigned long data;
-+
-+      data = __get_free_pages(gfp_mask | __GFP_COMP | __GFP_NOWARN,
-+                              get_order(size));
-+
-+      return (void *)data;
-+}
-+
- /* the qdma core needs scratch memory to be setup */
- static int mtk_init_fq_dma(struct mtk_eth *eth)
- {
-@@ -1269,7 +1280,10 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
-                       goto release_desc;
-               /* alloc new buffer */
--              new_data = napi_alloc_frag(ring->frag_size);
-+              if (ring->frag_size <= PAGE_SIZE)
-+                      new_data = napi_alloc_frag(ring->frag_size);
-+              else
-+                      new_data = mtk_max_lro_buf_alloc(GFP_ATOMIC);
-               if (unlikely(!new_data)) {
-                       netdev->stats.rx_dropped++;
-                       goto release_desc;
-@@ -1683,7 +1697,10 @@ static int mtk_rx_alloc(struct mtk_eth *eth, int ring_no, int rx_flag)
-               return -ENOMEM;
-       for (i = 0; i < rx_dma_size; i++) {
--              ring->data[i] = netdev_alloc_frag(ring->frag_size);
-+              if (ring->frag_size <= PAGE_SIZE)
-+                      ring->data[i] = netdev_alloc_frag(ring->frag_size);
-+              else
-+                      ring->data[i] = mtk_max_lro_buf_alloc(GFP_KERNEL);
-               if (!ring->data[i])
-                       return -ENOMEM;
-       }
--- 
-2.35.1
-
diff --git a/queue-5.17/net-hns3-don-t-push-link-state-to-vf-if-unalive.patch b/queue-5.17/net-hns3-don-t-push-link-state-to-vf-if-unalive.patch
deleted file mode 100644 (file)
index cfc9108..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From 0a844a90330e069f74c38d0f23427735f8530419 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 11 Jun 2022 20:25:25 +0800
-Subject: net: hns3: don't push link state to VF if unalive
-
-From: Jian Shen <shenjian15@huawei.com>
-
-[ Upstream commit 283847e3ef6dbf79bf67083b5ce7b8033e8b6f34 ]
-
-It's unnecessary to push link state to unalive VF, and the VF will
-query link state from PF when it being start works.
-
-Fixes: 18b6e31f8bf4 ("net: hns3: PF add support for pushing link status to VFs")
-Signed-off-by: Jian Shen <shenjian15@huawei.com>
-Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-index 55dd3f5abc48..0c6c467d0905 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-@@ -3375,6 +3375,12 @@ static int hclge_set_vf_link_state(struct hnae3_handle *handle, int vf,
-       link_state_old = vport->vf_info.link_state;
-       vport->vf_info.link_state = link_state;
-+      /* return success directly if the VF is unalive, VF will
-+       * query link state itself when it starts work.
-+       */
-+      if (!test_bit(HCLGE_VPORT_STATE_ALIVE, &vport->state))
-+              return 0;
-+
-       ret = hclge_push_vf_link_status(vport);
-       if (ret) {
-               vport->vf_info.link_state = link_state_old;
--- 
-2.35.1
-
diff --git a/queue-5.17/net-hns3-fix-pf-rss-size-initialization-bug.patch b/queue-5.17/net-hns3-fix-pf-rss-size-initialization-bug.patch
deleted file mode 100644 (file)
index b67db39..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2c3cac0e9f996679700a6a9d178b86da84904f9f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 11 Jun 2022 20:25:28 +0800
-Subject: net: hns3: fix PF rss size initialization bug
-
-From: Jie Wang <wangjie125@huawei.com>
-
-[ Upstream commit 71b215f36dca1a3d5d1c576b2099e6d7ea03047e ]
-
-Currently hns3 driver misuses the VF rss size to initialize the PF rss size
-in hclge_tm_vport_tc_info_update. So this patch fix it by checking the
-vport id before initialization.
-
-Fixes: 7347255ea389 ("net: hns3: refactor PF rss get APIs with new common rss get APIs")
-Signed-off-by: Jie Wang <wangjie125@huawei.com>
-Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-index 9fb0417c959e..6c31770842fa 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-@@ -681,7 +681,9 @@ static void hclge_tm_vport_tc_info_update(struct hclge_vport *vport)
-       kinfo->num_tqps = hclge_vport_get_tqp_num(vport);
-       vport->dwrr = 100;  /* 100 percent as init */
-       vport->bw_limit = hdev->tm_info.pg_info[0].bw_limit;
--      hdev->rss_cfg.rss_size = kinfo->rss_size;
-+
-+      if (vport->vport_id == PF_VPORT_ID)
-+              hdev->rss_cfg.rss_size = kinfo->rss_size;
-       /* when enable mqprio, the tc_info has been updated. */
-       if (kinfo->tc_info.mqprio_active)
--- 
-2.35.1
-
diff --git a/queue-5.17/net-hns3-fix-tm-port-shapping-of-fibre-port-is-incor.patch b/queue-5.17/net-hns3-fix-tm-port-shapping-of-fibre-port-is-incor.patch
deleted file mode 100644 (file)
index c4da7ff..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From 80d7ec1ebd6cef190cf681441e0df90c80585266 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 11 Jun 2022 20:25:29 +0800
-Subject: net: hns3: fix tm port shapping of fibre port is incorrect after
- driver initialization
-
-From: Guangbin Huang <huangguangbin2@huawei.com>
-
-[ Upstream commit 12a3670887725df364cc3e030cf3bede6f13b364 ]
-
-Currently in driver initialization process, driver will set shapping
-parameters of tm port to default speed read from firmware. However, the
-speed of SFP module may not be default speed, so shapping parameters of
-tm port may be incorrect.
-
-To fix this problem, driver sets new shapping parameters for tm port
-after getting exact speed of SFP module in this case.
-
-Fixes: 88d10bd6f730 ("net: hns3: add support for multiple media type")
-Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c   | 11 ++++++++---
- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c |  2 +-
- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h |  1 +
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-index 0c6c467d0905..95f1f1e89950 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-@@ -3267,7 +3267,7 @@ static int hclge_tp_port_init(struct hclge_dev *hdev)
- static int hclge_update_port_info(struct hclge_dev *hdev)
- {
-       struct hclge_mac *mac = &hdev->hw.mac;
--      int speed = HCLGE_MAC_SPEED_UNKNOWN;
-+      int speed;
-       int ret;
-       /* get the port info from SFP cmd if not copper port */
-@@ -3278,10 +3278,13 @@ static int hclge_update_port_info(struct hclge_dev *hdev)
-       if (!hdev->support_sfp_query)
-               return 0;
--      if (hdev->ae_dev->dev_version >= HNAE3_DEVICE_VERSION_V2)
-+      if (hdev->ae_dev->dev_version >= HNAE3_DEVICE_VERSION_V2) {
-+              speed = mac->speed;
-               ret = hclge_get_sfp_info(hdev, mac);
--      else
-+      } else {
-+              speed = HCLGE_MAC_SPEED_UNKNOWN;
-               ret = hclge_get_sfp_speed(hdev, &speed);
-+      }
-       if (ret == -EOPNOTSUPP) {
-               hdev->support_sfp_query = false;
-@@ -3293,6 +3296,8 @@ static int hclge_update_port_info(struct hclge_dev *hdev)
-       if (hdev->ae_dev->dev_version >= HNAE3_DEVICE_VERSION_V2) {
-               if (mac->speed_type == QUERY_ACTIVE_SPEED) {
-                       hclge_update_port_capability(hdev, mac);
-+                      if (mac->speed != speed)
-+                              (void)hclge_tm_port_shaper_cfg(hdev);
-                       return 0;
-               }
-               return hclge_cfg_mac_speed_dup(hdev, mac->speed,
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-index 6c31770842fa..084e190602d6 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-@@ -420,7 +420,7 @@ static int hclge_tm_pg_shapping_cfg(struct hclge_dev *hdev,
-       return hclge_cmd_send(&hdev->hw, &desc, 1);
- }
--static int hclge_tm_port_shaper_cfg(struct hclge_dev *hdev)
-+int hclge_tm_port_shaper_cfg(struct hclge_dev *hdev)
- {
-       struct hclge_port_shapping_cmd *shap_cfg_cmd;
-       struct hclge_shaper_ir_para ir_para;
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
-index 619cc30a2dfc..d943943912f7 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h
-@@ -237,6 +237,7 @@ int hclge_pause_addr_cfg(struct hclge_dev *hdev, const u8 *mac_addr);
- void hclge_pfc_rx_stats_get(struct hclge_dev *hdev, u64 *stats);
- void hclge_pfc_tx_stats_get(struct hclge_dev *hdev, u64 *stats);
- int hclge_tm_qs_shaper_cfg(struct hclge_vport *vport, int max_tx_rate);
-+int hclge_tm_port_shaper_cfg(struct hclge_dev *hdev);
- int hclge_tm_get_qset_num(struct hclge_dev *hdev, u16 *qset_num);
- int hclge_tm_get_pri_num(struct hclge_dev *hdev, u8 *pri_num);
- int hclge_tm_get_qset_map_pri(struct hclge_dev *hdev, u16 qset_id, u8 *priority,
--- 
-2.35.1
-
diff --git a/queue-5.17/net-hns3-restore-tm-priority-qset-to-default-setting.patch b/queue-5.17/net-hns3-restore-tm-priority-qset-to-default-setting.patch
deleted file mode 100644 (file)
index 5db11d2..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-From 74c1fd6c3e43bf6557d72c539c0645398ce9e19d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 11 Jun 2022 20:25:27 +0800
-Subject: net: hns3: restore tm priority/qset to default settings when tc
- disabled
-
-From: Guangbin Huang <huangguangbin2@huawei.com>
-
-[ Upstream commit e93530ae0e5d8fcf2d908933d206e0c93bc3c09b ]
-
-Currently, settings parameters of schedule mode, dwrr, shaper of tm
-priority or qset of one tc are only be set when tc is enabled, they are
-not restored to the default settings when tc is disabled. It confuses
-users when they cat tm_priority or tm_qset files of debugfs. So this
-patch fixes it.
-
-Fixes: 848440544b41 ("net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver")
-Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/hisilicon/hns3/hnae3.h   |  1 +
- .../ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 95 +++++++++++++------
- 2 files changed, 65 insertions(+), 31 deletions(-)
-
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hnae3.h b/drivers/net/ethernet/hisilicon/hns3/hnae3.h
-index 8184a954f648..3e343ea15ba5 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hnae3.h
-+++ b/drivers/net/ethernet/hisilicon/hns3/hnae3.h
-@@ -764,6 +764,7 @@ struct hnae3_tc_info {
-       u8 prio_tc[HNAE3_MAX_USER_PRIO]; /* TC indexed by prio */
-       u16 tqp_count[HNAE3_MAX_TC];
-       u16 tqp_offset[HNAE3_MAX_TC];
-+      u8 max_tc; /* Total number of TCs */
-       u8 num_tc; /* Total number of enabled TCs */
-       bool mqprio_active;
- };
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-index 089f4444b7e3..9fb0417c959e 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
-@@ -282,8 +282,8 @@ static int hclge_tm_pg_to_pri_map_cfg(struct hclge_dev *hdev,
-       return hclge_cmd_send(&hdev->hw, &desc, 1);
- }
--static int hclge_tm_qs_to_pri_map_cfg(struct hclge_dev *hdev,
--                                    u16 qs_id, u8 pri)
-+static int hclge_tm_qs_to_pri_map_cfg(struct hclge_dev *hdev, u16 qs_id, u8 pri,
-+                                    bool link_vld)
- {
-       struct hclge_qs_to_pri_link_cmd *map;
-       struct hclge_desc desc;
-@@ -294,7 +294,7 @@ static int hclge_tm_qs_to_pri_map_cfg(struct hclge_dev *hdev,
-       map->qs_id = cpu_to_le16(qs_id);
-       map->priority = pri;
--      map->link_vld = HCLGE_TM_QS_PRI_LINK_VLD_MSK;
-+      map->link_vld = link_vld ? HCLGE_TM_QS_PRI_LINK_VLD_MSK : 0;
-       return hclge_cmd_send(&hdev->hw, &desc, 1);
- }
-@@ -642,11 +642,13 @@ static void hclge_tm_update_kinfo_rss_size(struct hclge_vport *vport)
-        * one tc for VF for simplicity. VF's vport_id is non zero.
-        */
-       if (vport->vport_id) {
-+              kinfo->tc_info.max_tc = 1;
-               kinfo->tc_info.num_tc = 1;
-               vport->qs_offset = HNAE3_MAX_TC +
-                                  vport->vport_id - HCLGE_VF_VPORT_START_NUM;
-               vport_max_rss_size = hdev->vf_rss_size_max;
-       } else {
-+              kinfo->tc_info.max_tc = hdev->tc_max;
-               kinfo->tc_info.num_tc =
-                       min_t(u16, vport->alloc_tqps, hdev->tm_info.num_tc);
-               vport->qs_offset = 0;
-@@ -714,14 +716,22 @@ static void hclge_tm_vport_info_update(struct hclge_dev *hdev)
- static void hclge_tm_tc_info_init(struct hclge_dev *hdev)
- {
--      u8 i;
-+      u8 i, tc_sch_mode;
-+      u32 bw_limit;
-+
-+      for (i = 0; i < hdev->tc_max; i++) {
-+              if (i < hdev->tm_info.num_tc) {
-+                      tc_sch_mode = HCLGE_SCH_MODE_DWRR;
-+                      bw_limit = hdev->tm_info.pg_info[0].bw_limit;
-+              } else {
-+                      tc_sch_mode = HCLGE_SCH_MODE_SP;
-+                      bw_limit = 0;
-+              }
--      for (i = 0; i < hdev->tm_info.num_tc; i++) {
-               hdev->tm_info.tc_info[i].tc_id = i;
--              hdev->tm_info.tc_info[i].tc_sch_mode = HCLGE_SCH_MODE_DWRR;
-+              hdev->tm_info.tc_info[i].tc_sch_mode = tc_sch_mode;
-               hdev->tm_info.tc_info[i].pgid = 0;
--              hdev->tm_info.tc_info[i].bw_limit =
--                      hdev->tm_info.pg_info[0].bw_limit;
-+              hdev->tm_info.tc_info[i].bw_limit = bw_limit;
-       }
-       for (i = 0; i < HNAE3_MAX_USER_PRIO; i++)
-@@ -926,10 +936,13 @@ static int hclge_tm_pri_q_qs_cfg_tc_base(struct hclge_dev *hdev)
-       for (k = 0; k < hdev->num_alloc_vport; k++) {
-               struct hnae3_knic_private_info *kinfo = &vport[k].nic.kinfo;
--              for (i = 0; i < kinfo->tc_info.num_tc; i++) {
-+              for (i = 0; i < kinfo->tc_info.max_tc; i++) {
-+                      u8 pri = i < kinfo->tc_info.num_tc ? i : 0;
-+                      bool link_vld = i < kinfo->tc_info.num_tc;
-+
-                       ret = hclge_tm_qs_to_pri_map_cfg(hdev,
-                                                        vport[k].qs_offset + i,
--                                                       i);
-+                                                       pri, link_vld);
-                       if (ret)
-                               return ret;
-               }
-@@ -949,7 +962,7 @@ static int hclge_tm_pri_q_qs_cfg_vnet_base(struct hclge_dev *hdev)
-               for (i = 0; i < HNAE3_MAX_TC; i++) {
-                       ret = hclge_tm_qs_to_pri_map_cfg(hdev,
-                                                        vport[k].qs_offset + i,
--                                                       k);
-+                                                       k, true);
-                       if (ret)
-                               return ret;
-               }
-@@ -989,33 +1002,39 @@ static int hclge_tm_pri_tc_base_shaper_cfg(struct hclge_dev *hdev)
- {
-       u32 max_tm_rate = hdev->ae_dev->dev_specs.max_tm_rate;
-       struct hclge_shaper_ir_para ir_para;
--      u32 shaper_para;
-+      u32 shaper_para_c, shaper_para_p;
-       int ret;
-       u32 i;
--      for (i = 0; i < hdev->tm_info.num_tc; i++) {
-+      for (i = 0; i < hdev->tc_max; i++) {
-               u32 rate = hdev->tm_info.tc_info[i].bw_limit;
--              ret = hclge_shaper_para_calc(rate, HCLGE_SHAPER_LVL_PRI,
--                                           &ir_para, max_tm_rate);
--              if (ret)
--                      return ret;
-+              if (rate) {
-+                      ret = hclge_shaper_para_calc(rate, HCLGE_SHAPER_LVL_PRI,
-+                                                   &ir_para, max_tm_rate);
-+                      if (ret)
-+                              return ret;
-+
-+                      shaper_para_c = hclge_tm_get_shapping_para(0, 0, 0,
-+                                                                 HCLGE_SHAPER_BS_U_DEF,
-+                                                                 HCLGE_SHAPER_BS_S_DEF);
-+                      shaper_para_p = hclge_tm_get_shapping_para(ir_para.ir_b,
-+                                                                 ir_para.ir_u,
-+                                                                 ir_para.ir_s,
-+                                                                 HCLGE_SHAPER_BS_U_DEF,
-+                                                                 HCLGE_SHAPER_BS_S_DEF);
-+              } else {
-+                      shaper_para_c = 0;
-+                      shaper_para_p = 0;
-+              }
--              shaper_para = hclge_tm_get_shapping_para(0, 0, 0,
--                                                       HCLGE_SHAPER_BS_U_DEF,
--                                                       HCLGE_SHAPER_BS_S_DEF);
-               ret = hclge_tm_pri_shapping_cfg(hdev, HCLGE_TM_SHAP_C_BUCKET, i,
--                                              shaper_para, rate);
-+                                              shaper_para_c, rate);
-               if (ret)
-                       return ret;
--              shaper_para = hclge_tm_get_shapping_para(ir_para.ir_b,
--                                                       ir_para.ir_u,
--                                                       ir_para.ir_s,
--                                                       HCLGE_SHAPER_BS_U_DEF,
--                                                       HCLGE_SHAPER_BS_S_DEF);
-               ret = hclge_tm_pri_shapping_cfg(hdev, HCLGE_TM_SHAP_P_BUCKET, i,
--                                              shaper_para, rate);
-+                                              shaper_para_p, rate);
-               if (ret)
-                       return ret;
-       }
-@@ -1125,7 +1144,7 @@ static int hclge_tm_pri_tc_base_dwrr_cfg(struct hclge_dev *hdev)
-       int ret;
-       u32 i, k;
--      for (i = 0; i < hdev->tm_info.num_tc; i++) {
-+      for (i = 0; i < hdev->tc_max; i++) {
-               pg_info =
-                       &hdev->tm_info.pg_info[hdev->tm_info.tc_info[i].pgid];
-               dwrr = pg_info->tc_dwrr[i];
-@@ -1135,9 +1154,15 @@ static int hclge_tm_pri_tc_base_dwrr_cfg(struct hclge_dev *hdev)
-                       return ret;
-               for (k = 0; k < hdev->num_alloc_vport; k++) {
-+                      struct hnae3_knic_private_info *kinfo = &vport[k].nic.kinfo;
-+
-+                      if (i >= kinfo->tc_info.max_tc)
-+                              continue;
-+
-+                      dwrr = i < kinfo->tc_info.num_tc ? vport[k].dwrr : 0;
-                       ret = hclge_tm_qs_weight_cfg(
-                               hdev, vport[k].qs_offset + i,
--                              vport[k].dwrr);
-+                              dwrr);
-                       if (ret)
-                               return ret;
-               }
-@@ -1303,6 +1328,7 @@ static int hclge_tm_schd_mode_tc_base_cfg(struct hclge_dev *hdev, u8 pri_id)
- {
-       struct hclge_vport *vport = hdev->vport;
-       int ret;
-+      u8 mode;
-       u16 i;
-       ret = hclge_tm_pri_schd_mode_cfg(hdev, pri_id);
-@@ -1310,9 +1336,16 @@ static int hclge_tm_schd_mode_tc_base_cfg(struct hclge_dev *hdev, u8 pri_id)
-               return ret;
-       for (i = 0; i < hdev->num_alloc_vport; i++) {
-+              struct hnae3_knic_private_info *kinfo = &vport[i].nic.kinfo;
-+
-+              if (pri_id >= kinfo->tc_info.max_tc)
-+                      continue;
-+
-+              mode = pri_id < kinfo->tc_info.num_tc ? HCLGE_SCH_MODE_DWRR :
-+                     HCLGE_SCH_MODE_SP;
-               ret = hclge_tm_qs_schd_mode_cfg(hdev,
-                                               vport[i].qs_offset + pri_id,
--                                              HCLGE_SCH_MODE_DWRR);
-+                                              mode);
-               if (ret)
-                       return ret;
-       }
-@@ -1353,7 +1386,7 @@ static int hclge_tm_lvl34_schd_mode_cfg(struct hclge_dev *hdev)
-       u8 i;
-       if (hdev->tx_sch_mode == HCLGE_FLAG_TC_BASE_SCH_MODE) {
--              for (i = 0; i < hdev->tm_info.num_tc; i++) {
-+              for (i = 0; i < hdev->tc_max; i++) {
-                       ret = hclge_tm_schd_mode_tc_base_cfg(hdev, i);
-                       if (ret)
-                               return ret;
--- 
-2.35.1
-
diff --git a/queue-5.17/net-hns3-set-port-base-vlan-tbl_sta-to-false-before-.patch b/queue-5.17/net-hns3-set-port-base-vlan-tbl_sta-to-false-before-.patch
deleted file mode 100644 (file)
index d6fc934..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From a7838424a6ad4e7f422f0dbc3b615d181682f41c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 11 Jun 2022 20:25:24 +0800
-Subject: net: hns3: set port base vlan tbl_sta to false before removing old
- vlan
-
-From: Guangbin Huang <huangguangbin2@huawei.com>
-
-[ Upstream commit 9eda7d8bcbdb6909f202edeedff51948f1cad1e5 ]
-
-When modify port base vlan, the port base vlan tbl_sta needs to set to
-false before removing old vlan, to indicate this operation is not finish.
-
-Fixes: c0f46de30c96 ("net: hns3: fix port base vlan add fail when concurrent with reset")
-Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-index e96bc61a0a87..55dd3f5abc48 100644
---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
-@@ -10127,6 +10127,7 @@ static int hclge_modify_port_base_vlan_tag(struct hclge_vport *vport,
-       if (ret)
-               return ret;
-+      vport->port_base_vlan_cfg.tbl_sta = false;
-       /* remove old VLAN tag */
-       if (old_info->vlan_tag == 0)
-               ret = hclge_set_vf_vlan_common(hdev, vport->vport_id,
--- 
-2.35.1
-
diff --git a/queue-5.17/netfs-gcc-12-temporarily-disable-wattribute-warning-.patch b/queue-5.17/netfs-gcc-12-temporarily-disable-wattribute-warning-.patch
deleted file mode 100644 (file)
index b36ba15..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From 6da7b503dcef8f4a029a4924c5318860224d8133 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 Jun 2022 11:29:36 -0700
-Subject: netfs: gcc-12: temporarily disable '-Wattribute-warning' for now
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-[ Upstream commit 507160f46c55913955d272ebf559d63809a8e560 ]
-
-This is a pure band-aid so that I can continue merging stuff from people
-while some of the gcc-12 fallout gets sorted out.
-
-In particular, gcc-12 is very unhappy about the kinds of pointer
-arithmetic tricks that netfs does, and that makes the fortify checks
-trigger in afs and ceph:
-
-  In function ‘fortify_memset_chk’,
-      inlined from ‘netfs_i_context_init’ at include/linux/netfs.h:327:2,
-      inlined from ‘afs_set_netfs_context’ at fs/afs/inode.c:61:2,
-      inlined from ‘afs_root_iget’ at fs/afs/inode.c:543:2:
-  include/linux/fortify-string.h:258:25: warning: call to ‘__write_overflow_field’ declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning]
-    258 |                         __write_overflow_field(p_size_field, size);
-        |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-and the reason is that netfs_i_context_init() is passed a 'struct inode'
-pointer, and then it does
-
-        struct netfs_i_context *ctx = netfs_i_context(inode);
-
-        memset(ctx, 0, sizeof(*ctx));
-
-where that netfs_i_context() function just does pointer arithmetic on
-the inode pointer, knowing that the netfs_i_context is laid out
-immediately after it in memory.
-
-This is all truly disgusting, since the whole "netfs_i_context is laid
-out immediately after it in memory" is not actually remotely true in
-general, but is just made to be that way for afs and ceph.
-
-See for example fs/cifs/cifsglob.h:
-
-  struct cifsInodeInfo {
-        struct {
-                /* These must be contiguous */
-                struct inode    vfs_inode;      /* the VFS's inode record */
-                struct netfs_i_context netfs_ctx; /* Netfslib context */
-        };
-       [...]
-
-and realize that this is all entirely wrong, and the pointer arithmetic
-that netfs_i_context() is doing is also very very wrong and wouldn't
-give the right answer if netfs_ctx had different alignment rules from a
-'struct inode', for example).
-
-Anyway, that's just a long-winded way to say "the gcc-12 warning is
-actually quite reasonable, and our code happens to work but is pretty
-disgusting".
-
-This is getting fixed properly, but for now I made the mistake of
-thinking "the week right after the merge window tends to be calm for me
-as people take a breather" and I did a sustem upgrade.  And I got gcc-12
-as a result, so to continue merging fixes from people and not have the
-end result drown in warnings, I am fixing all these gcc-12 issues I hit.
-
-Including with these kinds of temporary fixes.
-
-Cc: Kees Cook <keescook@chromium.org>
-Cc: David Howells <dhowells@redhat.com>
-Link: https://lore.kernel.org/all/AEEBCF5D-8402-441D-940B-105AA718C71F@chromium.org/
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/afs/inode.c  | 3 +++
- fs/ceph/inode.c | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/fs/afs/inode.c b/fs/afs/inode.c
-index 0d6c0885b2d7..6b44940e7bef 100644
---- a/fs/afs/inode.c
-+++ b/fs/afs/inode.c
-@@ -25,6 +25,9 @@
- #include "internal.h"
- #include "afs_fs.h"
-+// Temporary: netfs does disgusting things with inode pointers
-+#pragma GCC diagnostic ignored "-Wattribute-warning"
-+
- static const struct inode_operations afs_symlink_inode_operations = {
-       .get_link       = page_get_link,
- };
-diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
-index c092dce0485c..51584854b176 100644
---- a/fs/ceph/inode.c
-+++ b/fs/ceph/inode.c
-@@ -20,6 +20,9 @@
- #include "cache.h"
- #include <linux/ceph/decode.h>
-+// Temporary: netfs does disgusting things with inode pointers
-+#pragma GCC diagnostic ignored "-Wattribute-warning"
-+
- /*
-  * Ceph inode operations
-  *
--- 
-2.35.1
-
diff --git a/queue-5.17/nfc-nfcmrvl-fix-memory-leak-in-nfcmrvl_play_deferred.patch b/queue-5.17/nfc-nfcmrvl-fix-memory-leak-in-nfcmrvl_play_deferred.patch
deleted file mode 100644 (file)
index 8f36290..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-From cd30e87ab59202fde25522f626f7cf14e2fce25b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 7 Jun 2022 16:32:30 +0800
-Subject: nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred
-
-From: Xiaohui Zhang <xiaohuizhang@ruc.edu.cn>
-
-[ Upstream commit 8a4d480702b71184fabcf379b80bf7539716752e ]
-
-Similar to the handling of play_deferred in commit 19cfe912c37b
-("Bluetooth: btusb: Fix memory leak in play_deferred"), we thought
-a patch might be needed here as well.
-
-Currently usb_submit_urb is called directly to submit deferred tx
-urbs after unanchor them.
-
-So the usb_giveback_urb_bh would failed to unref it in usb_unanchor_urb
-and cause memory leak.
-
-Put those urbs in tx_anchor to avoid the leak, and also fix the error
-handling.
-
-Signed-off-by: Xiaohui Zhang <xiaohuizhang@ruc.edu.cn>
-Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
-Link: https://lore.kernel.org/r/20220607083230.6182-1-xiaohuizhang@ruc.edu.cn
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/nfc/nfcmrvl/usb.c | 16 ++++++++++++++--
- 1 file changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/nfc/nfcmrvl/usb.c b/drivers/nfc/nfcmrvl/usb.c
-index a99aedff795d..ea7309453096 100644
---- a/drivers/nfc/nfcmrvl/usb.c
-+++ b/drivers/nfc/nfcmrvl/usb.c
-@@ -388,13 +388,25 @@ static void nfcmrvl_play_deferred(struct nfcmrvl_usb_drv_data *drv_data)
-       int err;
-       while ((urb = usb_get_from_anchor(&drv_data->deferred))) {
-+              usb_anchor_urb(urb, &drv_data->tx_anchor);
-+
-               err = usb_submit_urb(urb, GFP_ATOMIC);
--              if (err)
-+              if (err) {
-+                      kfree(urb->setup_packet);
-+                      usb_unanchor_urb(urb);
-+                      usb_free_urb(urb);
-                       break;
-+              }
-               drv_data->tx_in_flight++;
-+              usb_free_urb(urb);
-+      }
-+
-+      /* Cleanup the rest deferred urbs. */
-+      while ((urb = usb_get_from_anchor(&drv_data->deferred))) {
-+              kfree(urb->setup_packet);
-+              usb_free_urb(urb);
-       }
--      usb_scuttle_anchored_urbs(&drv_data->deferred);
- }
- static int nfcmrvl_resume(struct usb_interface *intf)
--- 
-2.35.1
-
diff --git a/queue-5.17/nvme-add-device-name-to-warning-in-uuid_show.patch b/queue-5.17/nvme-add-device-name-to-warning-in-uuid_show.patch
deleted file mode 100644 (file)
index dc476f0..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From b27e09c4de32c81313a0ef9531f478aa5477d467 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 7 Jun 2022 17:55:55 +0200
-Subject: nvme: add device name to warning in uuid_show()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Thomas Weißschuh <linux@weissschuh.net>
-
-[ Upstream commit 1fc766b5c08417248e0008bca14c3572ac0f1c26 ]
-
-This provides more context to users.
-
-Old message:
-
-[   00.000000] No UUID available providing old NGUID
-
-New message:
-
-[   00.000000] block nvme0n1: No UUID available providing old NGUID
-
-Fixes: d934f9848a77 ("nvme: provide UUID value to userspace")
-Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
-Signed-off-by: Christoph Hellwig <hch@lst.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/nvme/host/core.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
-index e086440a2042..cec0d4256204 100644
---- a/drivers/nvme/host/core.c
-+++ b/drivers/nvme/host/core.c
-@@ -3246,8 +3246,8 @@ static ssize_t uuid_show(struct device *dev, struct device_attribute *attr,
-        * we have no UUID set
-        */
-       if (uuid_is_null(&ids->uuid)) {
--              printk_ratelimited(KERN_WARNING
--                                 "No UUID available providing old NGUID\n");
-+              dev_warn_ratelimited(dev,
-+                      "No UUID available providing old NGUID\n");
-               return sysfs_emit(buf, "%pU\n", ids->nguid);
-       }
-       return sysfs_emit(buf, "%pU\n", &ids->uuid);
--- 
-2.35.1
-
diff --git a/queue-5.17/platform-x86-gigabyte-wmi-add-support-for-b450m-ds3h.patch b/queue-5.17/platform-x86-gigabyte-wmi-add-support-for-b450m-ds3h.patch
deleted file mode 100644 (file)
index 24d3850..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From d7683f4c469bf49a4efc380d2c029f6ac467b87b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 8 Jun 2022 23:20:28 +0200
-Subject: platform/x86: gigabyte-wmi: Add support for B450M DS3H-CF
-
-From: August Wikerfors <git@augustwikerfors.se>
-
-[ Upstream commit c6bc7e8ee90845556a90faf8b043cbefd77b8903 ]
-
-Tested and works on my system.
-
-Signed-off-by: August Wikerfors <git@augustwikerfors.se>
-Link: https://lore.kernel.org/r/20220608212028.28307-1-git@augustwikerfors.se
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/gigabyte-wmi.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/platform/x86/gigabyte-wmi.c b/drivers/platform/x86/gigabyte-wmi.c
-index ad4f789309d6..ebd15c1d13ec 100644
---- a/drivers/platform/x86/gigabyte-wmi.c
-+++ b/drivers/platform/x86/gigabyte-wmi.c
-@@ -140,6 +140,7 @@ static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev)
-       }}
- static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
-+      DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M DS3H-CF"),
-       DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B450M S2H V2"),
-       DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE AX V2"),
-       DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("B550 AORUS ELITE"),
--- 
-2.35.1
-
diff --git a/queue-5.17/platform-x86-gigabyte-wmi-add-z690m-aorus-elite-ax-d.patch b/queue-5.17/platform-x86-gigabyte-wmi-add-z690m-aorus-elite-ax-d.patch
deleted file mode 100644 (file)
index 03271e1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8c17db813bf091fb966d4c906ad77c8189f572a6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 6 Jun 2022 19:15:13 +0200
-Subject: platform/x86: gigabyte-wmi: Add Z690M AORUS ELITE AX DDR4 support
-
-From: Piotr Chmura <chmooreck@gmail.com>
-
-[ Upstream commit 8a041afe3e774bedd3e0a9b96f65e48a1299a595 ]
-
-Add dmi_system_id of Gigabyte Z690M AORUS ELITE AX DDR4 board.
-Tested on my PC.
-
-Signed-off-by: Piotr Chmura <chmooreck@gmail.com>
-Link: https://lore.kernel.org/r/bd83567e-ebf5-0b31-074b-5f6dc7f7c147@gmail.com
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/gigabyte-wmi.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/platform/x86/gigabyte-wmi.c b/drivers/platform/x86/gigabyte-wmi.c
-index 658bab4b7964..ad4f789309d6 100644
---- a/drivers/platform/x86/gigabyte-wmi.c
-+++ b/drivers/platform/x86/gigabyte-wmi.c
-@@ -153,6 +153,7 @@ static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {
-       DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 GAMING X"),
-       DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 I AORUS PRO WIFI"),
-       DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("X570 UD"),
-+      DMI_EXACT_MATCH_GIGABYTE_BOARD_NAME("Z690M AORUS ELITE AX DDR4"),
-       { }
- };
--- 
-2.35.1
-
diff --git a/queue-5.17/platform-x86-intel-fix-pmt_crashlog-array-reference.patch b/queue-5.17/platform-x86-intel-fix-pmt_crashlog-array-reference.patch
deleted file mode 100644 (file)
index ce96cc4..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 315862ed324167deb2f667ad9fcdb95be65183cc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 26 May 2022 16:31:40 -0400
-Subject: platform/x86/intel: Fix pmt_crashlog array reference
-
-From: David Arcari <darcari@redhat.com>
-
-[ Upstream commit 66cb3a2d7ad0d0e9af4d3430a4f2a32ffb9ac098 ]
-
-The probe function pmt_crashlog_probe() may incorrectly reference
-the 'priv->entry array' as it uses 'i' to reference the array instead
-of 'priv->num_entries' as it should.  This is similar to the problem
-that was addressed in pmt_telemetry_probe via commit 2cdfa0c20d58
-("platform/x86/intel: Fix 'rmmod pmt_telemetry' panic").
-
-Cc: "David E. Box" <david.e.box@linux.intel.com>
-Cc: Hans de Goede <hdegoede@redhat.com>
-Cc: Mark Gross <markgross@kernel.org>
-Cc: linux-kernel@vger.kernel.org
-Signed-off-by: David Arcari <darcari@redhat.com>
-Reviewed-by: David E. Box <david.e.box@linux.intel.com>
-Link: https://lore.kernel.org/r/20220526203140.339120-1-darcari@redhat.com
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/platform/x86/intel/pmt/crashlog.c b/drivers/platform/x86/intel/pmt/crashlog.c
-index 34daf9df168b..ace1239bc0a0 100644
---- a/drivers/platform/x86/intel/pmt/crashlog.c
-+++ b/drivers/platform/x86/intel/pmt/crashlog.c
-@@ -282,7 +282,7 @@ static int pmt_crashlog_probe(struct auxiliary_device *auxdev,
-       auxiliary_set_drvdata(auxdev, priv);
-       for (i = 0; i < intel_vsec_dev->num_resources; i++) {
--              struct intel_pmt_entry *entry = &priv->entry[i].entry;
-+              struct intel_pmt_entry *entry = &priv->entry[priv->num_entries].entry;
-               ret = intel_pmt_dev_create(entry, &pmt_crashlog_ns, intel_vsec_dev, i);
-               if (ret < 0)
--- 
-2.35.1
-
diff --git a/queue-5.17/platform-x86-intel-hid-add-surface-go-to-vgbs-allow-.patch b/queue-5.17/platform-x86-intel-hid-add-surface-go-to-vgbs-allow-.patch
deleted file mode 100644 (file)
index 2b1dacf..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From cfcb9254b3057216131de5b6d57f4e407264c033 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 7 Jun 2022 14:36:54 -0700
-Subject: platform/x86/intel: hid: Add Surface Go to VGBS allow list
-
-From: Duke Lee <krnhotwings@gmail.com>
-
-[ Upstream commit d4fe9cc4ff8656704b58cfd9363d7c3c9d65e519 ]
-
-The Surface Go reports Chassis Type 9 (Laptop,) so the device needs to be
-added to dmi_vgbs_allow_list to enable tablet mode when an attached Type
-Cover is folded back.
-
-BugLink: https://github.com/linux-surface/linux-surface/issues/837
-Signed-off-by: Duke Lee <krnhotwings@gmail.com>
-Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
-Link: https://lore.kernel.org/r/20220607213654.5567-1-krnhotwings@gmail.com
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/intel/hid.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
-index 5c39d40a701b..75f01f3d109c 100644
---- a/drivers/platform/x86/intel/hid.c
-+++ b/drivers/platform/x86/intel/hid.c
-@@ -122,6 +122,12 @@ static const struct dmi_system_id dmi_vgbs_allow_list[] = {
-                       DMI_MATCH(DMI_PRODUCT_NAME, "HP Spectre x360 Convertible 15-df0xxx"),
-               },
-       },
-+      {
-+              .matches = {
-+                      DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
-+                      DMI_MATCH(DMI_PRODUCT_NAME, "Surface Go"),
-+              },
-+      },
-       { }
- };
--- 
-2.35.1
-
diff --git a/queue-5.17/pnfs-avoid-a-live-lock-condition-in-pnfs_update_layo.patch b/queue-5.17/pnfs-avoid-a-live-lock-condition-in-pnfs_update_layo.patch
deleted file mode 100644 (file)
index dcc6d21..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From cc4c0b462400191154a292a6f892454fe0b02f2e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 31 May 2022 11:03:07 -0400
-Subject: pNFS: Avoid a live lock condition in pnfs_update_layout()
-
-From: Trond Myklebust <trond.myklebust@hammerspace.com>
-
-[ Upstream commit 880265c77ac415090090d1fe72a188fee71cb458 ]
-
-If we're about to send the first layoutget for an empty layout, we want
-to make sure that we drain out the existing pending layoutget calls
-first. The reason is that these layouts may have been already implicitly
-returned to the server by a recall to which the client gave a
-NFS4ERR_NOMATCHING_LAYOUT response.
-
-The problem is that wait_var_event_killable() could in principle see the
-plh_outstanding count go back to '1' when the first process to wake up
-starts sending a new layoutget. If it fails to get a layout, then this
-loop can continue ad infinitum...
-
-Fixes: 0b77f97a7e42 ("NFSv4/pnfs: Fix layoutget behaviour after invalidation")
-Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/nfs/callback_proc.c |  1 +
- fs/nfs/pnfs.c          | 15 +++++++++------
- fs/nfs/pnfs.h          |  1 +
- 3 files changed, 11 insertions(+), 6 deletions(-)
-
-diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
-index 6464dde03705..ea8176287c0a 100644
---- a/fs/nfs/callback_proc.c
-+++ b/fs/nfs/callback_proc.c
-@@ -288,6 +288,7 @@ static u32 initiate_file_draining(struct nfs_client *clp,
-               rv = NFS4_OK;
-               break;
-       case -ENOENT:
-+              set_bit(NFS_LAYOUT_DRAIN, &lo->plh_flags);
-               /* Embrace your forgetfulness! */
-               rv = NFS4ERR_NOMATCHING_LAYOUT;
-diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
-index 9b2549222391..7217f3eeb069 100644
---- a/fs/nfs/pnfs.c
-+++ b/fs/nfs/pnfs.c
-@@ -469,6 +469,7 @@ pnfs_mark_layout_stateid_invalid(struct pnfs_layout_hdr *lo,
-               pnfs_clear_lseg_state(lseg, lseg_list);
-       pnfs_clear_layoutreturn_info(lo);
-       pnfs_free_returned_lsegs(lo, lseg_list, &range, 0);
-+      set_bit(NFS_LAYOUT_DRAIN, &lo->plh_flags);
-       if (test_bit(NFS_LAYOUT_RETURN, &lo->plh_flags) &&
-           !test_and_set_bit(NFS_LAYOUT_RETURN_LOCK, &lo->plh_flags))
-               pnfs_clear_layoutreturn_waitbit(lo);
-@@ -1917,8 +1918,9 @@ static void nfs_layoutget_begin(struct pnfs_layout_hdr *lo)
- static void nfs_layoutget_end(struct pnfs_layout_hdr *lo)
- {
--      if (atomic_dec_and_test(&lo->plh_outstanding))
--              wake_up_var(&lo->plh_outstanding);
-+      if (atomic_dec_and_test(&lo->plh_outstanding) &&
-+          test_and_clear_bit(NFS_LAYOUT_DRAIN, &lo->plh_flags))
-+              wake_up_bit(&lo->plh_flags, NFS_LAYOUT_DRAIN);
- }
- static bool pnfs_is_first_layoutget(struct pnfs_layout_hdr *lo)
-@@ -2025,11 +2027,11 @@ pnfs_update_layout(struct inode *ino,
-        * If the layout segment list is empty, but there are outstanding
-        * layoutget calls, then they might be subject to a layoutrecall.
-        */
--      if ((list_empty(&lo->plh_segs) || !pnfs_layout_is_valid(lo)) &&
-+      if (test_bit(NFS_LAYOUT_DRAIN, &lo->plh_flags) &&
-           atomic_read(&lo->plh_outstanding) != 0) {
-               spin_unlock(&ino->i_lock);
--              lseg = ERR_PTR(wait_var_event_killable(&lo->plh_outstanding,
--                                      !atomic_read(&lo->plh_outstanding)));
-+              lseg = ERR_PTR(wait_on_bit(&lo->plh_flags, NFS_LAYOUT_DRAIN,
-+                                         TASK_KILLABLE));
-               if (IS_ERR(lseg))
-                       goto out_put_layout_hdr;
-               pnfs_put_layout_hdr(lo);
-@@ -2413,7 +2415,8 @@ pnfs_layout_process(struct nfs4_layoutget *lgp)
-               goto out_forget;
-       }
--      if (!pnfs_layout_is_valid(lo) && !pnfs_is_first_layoutget(lo))
-+      if (test_bit(NFS_LAYOUT_DRAIN, &lo->plh_flags) &&
-+          !pnfs_is_first_layoutget(lo))
-               goto out_forget;
-       if (nfs4_stateid_match_other(&lo->plh_stateid, &res->stateid)) {
-diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
-index 07f11489e4e9..f331f067691b 100644
---- a/fs/nfs/pnfs.h
-+++ b/fs/nfs/pnfs.h
-@@ -105,6 +105,7 @@ enum {
-       NFS_LAYOUT_FIRST_LAYOUTGET,     /* Serialize first layoutget */
-       NFS_LAYOUT_INODE_FREEING,       /* The inode is being freed */
-       NFS_LAYOUT_HASHED,              /* The layout visible */
-+      NFS_LAYOUT_DRAIN,
- };
- enum layoutdriver_policy_flags {
--- 
-2.35.1
-
diff --git a/queue-5.17/pnfs-don-t-keep-retrying-if-the-server-replied-nfs4e.patch b/queue-5.17/pnfs-don-t-keep-retrying-if-the-server-replied-nfs4e.patch
deleted file mode 100644 (file)
index 215b85b..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From c8620ff4753b1ad84499662c9887d449f752cdc7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 31 May 2022 11:03:06 -0400
-Subject: pNFS: Don't keep retrying if the server replied
- NFS4ERR_LAYOUTUNAVAILABLE
-
-From: Trond Myklebust <trond.myklebust@hammerspace.com>
-
-[ Upstream commit fe44fb23d6ccde4c914c44ef74ab8d9d9ba02bea ]
-
-If the server tells us that a pNFS layout is not available for a
-specific file, then we should not keep pounding it with further
-layoutget requests.
-
-Fixes: 183d9e7b112a ("pnfs: rework LAYOUTGET retry handling")
-Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/nfs/pnfs.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
-index 1b4dd8b828de..9b2549222391 100644
---- a/fs/nfs/pnfs.c
-+++ b/fs/nfs/pnfs.c
-@@ -2152,6 +2152,12 @@ pnfs_update_layout(struct inode *ino,
-               case -ERECALLCONFLICT:
-               case -EAGAIN:
-                       break;
-+              case -ENODATA:
-+                      /* The server returned NFS4ERR_LAYOUTUNAVAILABLE */
-+                      pnfs_layout_set_fail_bit(
-+                              lo, pnfs_iomode_to_fail_bit(iomode));
-+                      lseg = NULL;
-+                      goto out_put_layout_hdr;
-               default:
-                       if (!nfs_error_is_fatal(PTR_ERR(lseg))) {
-                               pnfs_layout_clear_fail_bit(lo, pnfs_iomode_to_fail_bit(iomode));
--- 
-2.35.1
-
diff --git a/queue-5.17/powerpc-kasan-silence-kasan-warnings-in-__get_wchan.patch b/queue-5.17/powerpc-kasan-silence-kasan-warnings-in-__get_wchan.patch
deleted file mode 100644 (file)
index 39ea909..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From e7c722e63a90125ab24fc73323bf5ca0393b08bc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 20 Jan 2022 20:44:18 -0500
-Subject: powerpc/kasan: Silence KASAN warnings in __get_wchan()
-
-From: He Ying <heying24@huawei.com>
-
-[ Upstream commit a1b29ba2f2c171b9bea73be993bfdf0a62d37d15 ]
-
-The following KASAN warning was reported in our kernel.
-
-  BUG: KASAN: stack-out-of-bounds in get_wchan+0x188/0x250
-  Read of size 4 at addr d216f958 by task ps/14437
-
-  CPU: 3 PID: 14437 Comm: ps Tainted: G           O      5.10.0 #1
-  Call Trace:
-  [daa63858] [c0654348] dump_stack+0x9c/0xe4 (unreliable)
-  [daa63888] [c035cf0c] print_address_description.constprop.3+0x8c/0x570
-  [daa63908] [c035d6bc] kasan_report+0x1ac/0x218
-  [daa63948] [c00496e8] get_wchan+0x188/0x250
-  [daa63978] [c0461ec8] do_task_stat+0xce8/0xe60
-  [daa63b98] [c0455ac8] proc_single_show+0x98/0x170
-  [daa63bc8] [c03cab8c] seq_read_iter+0x1ec/0x900
-  [daa63c38] [c03cb47c] seq_read+0x1dc/0x290
-  [daa63d68] [c037fc94] vfs_read+0x164/0x510
-  [daa63ea8] [c03808e4] ksys_read+0x144/0x1d0
-  [daa63f38] [c005b1dc] ret_from_syscall+0x0/0x38
-  --- interrupt: c00 at 0x8fa8f4
-      LR = 0x8fa8cc
-
-  The buggy address belongs to the page:
-  page:98ebcdd2 refcount:0 mapcount:0 mapping:00000000 index:0x2 pfn:0x1216f
-  flags: 0x0()
-  raw: 00000000 00000000 01010122 00000000 00000002 00000000 ffffffff 00000000
-  raw: 00000000
-  page dumped because: kasan: bad access detected
-
-  Memory state around the buggy address:
-   d216f800: 00 00 00 00 00 f1 f1 f1 f1 00 00 00 00 00 00 00
-   d216f880: f2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-  >d216f900: 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00
-                                            ^
-   d216f980: f2 f2 f2 f2 f2 f2 f2 00 00 00 00 00 00 00 00 00
-   d216fa00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-
-After looking into this issue, I find the buggy address belongs
-to the task stack region. It seems KASAN has something wrong.
-I look into the code of __get_wchan in x86 architecture and
-find the same issue has been resolved by the commit
-f7d27c35ddff ("x86/mm, kasan: Silence KASAN warnings in get_wchan()").
-The solution could be applied to powerpc architecture too.
-
-As Andrey Ryabinin said, get_wchan() is racy by design, it may
-access volatile stack of running task, thus it may access
-redzone in a stack frame and cause KASAN to warn about this.
-
-Use READ_ONCE_NOCHECK() to silence these warnings.
-
-Reported-by: Wanming Hu <huwanming@huaweil.com>
-Signed-off-by: He Ying <heying24@huawei.com>
-Signed-off-by: Chen Jingwen <chenjingwen6@huawei.com>
-Reviewed-by: Kees Cook <keescook@chromium.org>
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://lore.kernel.org/r/20220121014418.155675-1-heying24@huawei.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/powerpc/kernel/process.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
-index 984813a4d5dc..a75d20f23dac 100644
---- a/arch/powerpc/kernel/process.c
-+++ b/arch/powerpc/kernel/process.c
-@@ -2160,12 +2160,12 @@ static unsigned long ___get_wchan(struct task_struct *p)
-               return 0;
-       do {
--              sp = *(unsigned long *)sp;
-+              sp = READ_ONCE_NOCHECK(*(unsigned long *)sp);
-               if (!validate_sp(sp, p, STACK_FRAME_OVERHEAD) ||
-                   task_is_running(p))
-                       return 0;
-               if (count > 0) {
--                      ip = ((unsigned long *)sp)[STACK_FRAME_LR_SAVE];
-+                      ip = READ_ONCE_NOCHECK(((unsigned long *)sp)[STACK_FRAME_LR_SAVE]);
-                       if (!in_sched_functions(ip))
-                               return ip;
-               }
--- 
-2.35.1
-
diff --git a/queue-5.17/quota-prevent-memory-allocation-recursion-while-hold.patch b/queue-5.17/quota-prevent-memory-allocation-recursion-while-hold.patch
deleted file mode 100644 (file)
index 4983332..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From f137f366f83551e7634a02ef8d5ee2fcd4dad144 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 5 Jun 2022 15:38:13 +0100
-Subject: quota: Prevent memory allocation recursion while holding dq_lock
-
-From: Matthew Wilcox (Oracle) <willy@infradead.org>
-
-[ Upstream commit 537e11cdc7a6b3ce94fa25ed41306193df9677b7 ]
-
-As described in commit 02117b8ae9c0 ("f2fs: Set GF_NOFS in
-read_cache_page_gfp while doing f2fs_quota_read"), we must not enter
-filesystem reclaim while holding the dq_lock.  Prevent this more generally
-by using memalloc_nofs_save() while holding the lock.
-
-Link: https://lore.kernel.org/r/20220605143815.2330891-2-willy@infradead.org
-Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
-Signed-off-by: Jan Kara <jack@suse.cz>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/quota/dquot.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
-index a74aef99bd3d..09d1307959d0 100644
---- a/fs/quota/dquot.c
-+++ b/fs/quota/dquot.c
-@@ -79,6 +79,7 @@
- #include <linux/capability.h>
- #include <linux/quotaops.h>
- #include <linux/blkdev.h>
-+#include <linux/sched/mm.h>
- #include "../internal.h" /* ugh */
- #include <linux/uaccess.h>
-@@ -425,9 +426,11 @@ EXPORT_SYMBOL(mark_info_dirty);
- int dquot_acquire(struct dquot *dquot)
- {
-       int ret = 0, ret2 = 0;
-+      unsigned int memalloc;
-       struct quota_info *dqopt = sb_dqopt(dquot->dq_sb);
-       mutex_lock(&dquot->dq_lock);
-+      memalloc = memalloc_nofs_save();
-       if (!test_bit(DQ_READ_B, &dquot->dq_flags)) {
-               ret = dqopt->ops[dquot->dq_id.type]->read_dqblk(dquot);
-               if (ret < 0)
-@@ -458,6 +461,7 @@ int dquot_acquire(struct dquot *dquot)
-       smp_mb__before_atomic();
-       set_bit(DQ_ACTIVE_B, &dquot->dq_flags);
- out_iolock:
-+      memalloc_nofs_restore(memalloc);
-       mutex_unlock(&dquot->dq_lock);
-       return ret;
- }
-@@ -469,9 +473,11 @@ EXPORT_SYMBOL(dquot_acquire);
- int dquot_commit(struct dquot *dquot)
- {
-       int ret = 0;
-+      unsigned int memalloc;
-       struct quota_info *dqopt = sb_dqopt(dquot->dq_sb);
-       mutex_lock(&dquot->dq_lock);
-+      memalloc = memalloc_nofs_save();
-       if (!clear_dquot_dirty(dquot))
-               goto out_lock;
-       /* Inactive dquot can be only if there was error during read/init
-@@ -481,6 +487,7 @@ int dquot_commit(struct dquot *dquot)
-       else
-               ret = -EIO;
- out_lock:
-+      memalloc_nofs_restore(memalloc);
-       mutex_unlock(&dquot->dq_lock);
-       return ret;
- }
-@@ -492,9 +499,11 @@ EXPORT_SYMBOL(dquot_commit);
- int dquot_release(struct dquot *dquot)
- {
-       int ret = 0, ret2 = 0;
-+      unsigned int memalloc;
-       struct quota_info *dqopt = sb_dqopt(dquot->dq_sb);
-       mutex_lock(&dquot->dq_lock);
-+      memalloc = memalloc_nofs_save();
-       /* Check whether we are not racing with some other dqget() */
-       if (dquot_is_busy(dquot))
-               goto out_dqlock;
-@@ -510,6 +519,7 @@ int dquot_release(struct dquot *dquot)
-       }
-       clear_bit(DQ_ACTIVE_B, &dquot->dq_flags);
- out_dqlock:
-+      memalloc_nofs_restore(memalloc);
-       mutex_unlock(&dquot->dq_lock);
-       return ret;
- }
--- 
-2.35.1
-
diff --git a/queue-5.17/random-credit-cpu-and-bootloader-seeds-by-default.patch b/queue-5.17/random-credit-cpu-and-bootloader-seeds-by-default.patch
deleted file mode 100644 (file)
index 7710883..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-From 9ada2297e0f5a5c9487fe669a2759912a1b8772a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 5 Jun 2022 18:30:46 +0200
-Subject: random: credit cpu and bootloader seeds by default
-
-From: Jason A. Donenfeld <Jason@zx2c4.com>
-
-[ Upstream commit 846bb97e131d7938847963cca00657c995b1fce1 ]
-
-This commit changes the default Kconfig values of RANDOM_TRUST_CPU and
-RANDOM_TRUST_BOOTLOADER to be Y by default. It does not change any
-existing configs or change any kernel behavior. The reason for this is
-several fold.
-
-As background, I recently had an email thread with the kernel
-maintainers of Fedora/RHEL, Debian, Ubuntu, Gentoo, Arch, NixOS, Alpine,
-SUSE, and Void as recipients. I noted that some distros trust RDRAND,
-some trust EFI, and some trust both, and I asked why or why not. There
-wasn't really much of a "debate" but rather an interesting discussion of
-what the historical reasons have been for this, and it came up that some
-distros just missed the introduction of the bootloader Kconfig knob,
-while another didn't want to enable it until there was a boot time
-switch to turn it off for more concerned users (which has since been
-added). The result of the rather uneventful discussion is that every
-major Linux distro enables these two options by default.
-
-While I didn't have really too strong of an opinion going into this
-thread -- and I mostly wanted to learn what the distros' thinking was
-one way or another -- ultimately I think their choice was a decent
-enough one for a default option (which can be disabled at boot time).
-I'll try to summarize the pros and cons:
-
-Pros:
-
-- The RNG machinery gets initialized super quickly, and there's no
-  messing around with subsequent blocking behavior.
-
-- The bootloader mechanism is used by kexec in order for the prior
-  kernel to initialize the RNG of the next kernel, which increases
-  the entropy available to early boot daemons of the next kernel.
-
-- Previous objections related to backdoors centered around
-  Dual_EC_DRBG-like kleptographic systems, in which observing some
-  amount of the output stream enables an adversary holding the right key
-  to determine the entire output stream.
-
-  This used to be a partially justified concern, because RDRAND output
-  was mixed into the output stream in varying ways, some of which may
-  have lacked pre-image resistance (e.g. XOR or an LFSR).
-
-  But this is no longer the case. Now, all usage of RDRAND and
-  bootloader seeds go through a cryptographic hash function. This means
-  that the CPU would have to compute a hash pre-image, which is not
-  considered to be feasible (otherwise the hash function would be
-  terribly broken).
-
-- More generally, if the CPU is backdoored, the RNG is probably not the
-  realistic vector of choice for an attacker.
-
-- These CPU or bootloader seeds are far from being the only source of
-  entropy. Rather, there is generally a pretty huge amount of entropy,
-  not all of which is credited, especially on CPUs that support
-  instructions like RDRAND. In other words, assuming RDRAND outputs all
-  zeros, an attacker would *still* have to accurately model every single
-  other entropy source also in use.
-
-- The RNG now reseeds itself quite rapidly during boot, starting at 2
-  seconds, then 4, then 8, then 16, and so forth, so that other sources
-  of entropy get used without much delay.
-
-- Paranoid users can set random.trust_{cpu,bootloader}=no in the kernel
-  command line, and paranoid system builders can set the Kconfig options
-  to N, so there's no reduction or restriction of optionality.
-
-- It's a practical default.
-
-- All the distros have it set this way. Microsoft and Apple trust it
-  too. Bandwagon.
-
-Cons:
-
-- RDRAND *could* still be backdoored with something like a fixed key or
-  limited space serial number seed or another indexable scheme like
-  that. (However, it's hard to imagine threat models where the CPU is
-  backdoored like this, yet people are still okay making *any*
-  computations with it or connecting it to networks, etc.)
-
-- RDRAND *could* be defective, rather than backdoored, and produce
-  garbage that is in one way or another insufficient for crypto.
-
-- Suggesting a *reduction* in paranoia, as this commit effectively does,
-  may cause some to question my personal integrity as a "security
-  person".
-
-- Bootloader seeds and RDRAND are generally very difficult if not all
-  together impossible to audit.
-
-Keep in mind that this doesn't actually change any behavior. This
-is just a change in the default Kconfig value. The distros already are
-shipping kernels that set things this way.
-
-Ard made an additional argument in [1]:
-
-    We're at the mercy of firmware and micro-architecture anyway, given
-    that we are also relying on it to ensure that every instruction in
-    the kernel's executable image has been faithfully copied to memory,
-    and that the CPU implements those instructions as documented. So I
-    don't think firmware or ISA bugs related to RNGs deserve special
-    treatment - if they are broken, we should quirk around them like we
-    usually do. So enabling these by default is a step in the right
-    direction IMHO.
-
-In [2], Phil pointed out that having this disabled masked a bug that CI
-otherwise would have caught:
-
-    A clean 5.15.45 boots cleanly, whereas a downstream kernel shows the
-    static key warning (but it does go on to boot). The significant
-    difference is that our defconfigs set CONFIG_RANDOM_TRUST_BOOTLOADER=y
-    defining that on top of multi_v7_defconfig demonstrates the issue on
-    a clean 5.15.45. Conversely, not setting that option in a
-    downstream kernel build avoids the warning
-
-[1] https://lore.kernel.org/lkml/CAMj1kXGi+ieviFjXv9zQBSaGyyzeGW_VpMpTLJK8PJb2QHEQ-w@mail.gmail.com/
-[2] https://lore.kernel.org/lkml/c47c42e3-1d56-5859-a6ad-976a1a3381c6@raspberrypi.com/
-
-Cc: Theodore Ts'o <tytso@mit.edu>
-Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
-Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/char/Kconfig | 50 +++++++++++++++++++++++++++-----------------
- 1 file changed, 31 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
-index 55f48375e3fe..d454428f4981 100644
---- a/drivers/char/Kconfig
-+++ b/drivers/char/Kconfig
-@@ -428,28 +428,40 @@ config ADI
-         driver include crash and makedumpfile.
- config RANDOM_TRUST_CPU
--      bool "Trust the CPU manufacturer to initialize Linux's CRNG"
-+      bool "Initialize RNG using CPU RNG instructions"
-+      default y
-       depends on ARCH_RANDOM
--      default n
-       help
--      Assume that CPU manufacturer (e.g., Intel or AMD for RDSEED or
--      RDRAND, IBM for the S390 and Power PC architectures) is trustworthy
--      for the purposes of initializing Linux's CRNG.  Since this is not
--      something that can be independently audited, this amounts to trusting
--      that CPU manufacturer (perhaps with the insistence or mandate
--      of a Nation State's intelligence or law enforcement agencies)
--      has not installed a hidden back door to compromise the CPU's
--      random number generation facilities. This can also be configured
--      at boot with "random.trust_cpu=on/off".
-+        Initialize the RNG using random numbers supplied by the CPU's
-+        RNG instructions (e.g. RDRAND), if supported and available. These
-+        random numbers are never used directly, but are rather hashed into
-+        the main input pool, and this happens regardless of whether or not
-+        this option is enabled. Instead, this option controls whether the
-+        they are credited and hence can initialize the RNG. Additionally,
-+        other sources of randomness are always used, regardless of this
-+        setting.  Enabling this implies trusting that the CPU can supply high
-+        quality and non-backdoored random numbers.
-+
-+        Say Y here unless you have reason to mistrust your CPU or believe
-+        its RNG facilities may be faulty. This may also be configured at
-+        boot time with "random.trust_cpu=on/off".
- config RANDOM_TRUST_BOOTLOADER
--      bool "Trust the bootloader to initialize Linux's CRNG"
--      help
--      Some bootloaders can provide entropy to increase the kernel's initial
--      device randomness. Say Y here to assume the entropy provided by the
--      booloader is trustworthy so it will be added to the kernel's entropy
--      pool. Otherwise, say N here so it will be regarded as device input that
--      only mixes the entropy pool. This can also be configured at boot with
--      "random.trust_bootloader=on/off".
-+      bool "Initialize RNG using bootloader-supplied seed"
-+      default y
-+      help
-+        Initialize the RNG using a seed supplied by the bootloader or boot
-+        environment (e.g. EFI or a bootloader-generated device tree). This
-+        seed is not used directly, but is rather hashed into the main input
-+        pool, and this happens regardless of whether or not this option is
-+        enabled. Instead, this option controls whether the seed is credited
-+        and hence can initialize the RNG. Additionally, other sources of
-+        randomness are always used, regardless of this setting. Enabling
-+        this implies trusting that the bootloader can supply high quality and
-+        non-backdoored seeds.
-+
-+        Say Y here unless you have reason to mistrust your bootloader or
-+        believe its RNG facilities may be faulty. This may also be configured
-+        at boot time with "random.trust_bootloader=on/off".
- endmenu
--- 
-2.35.1
-
diff --git a/queue-5.17/sched-fix-balance_push-vs-__sched_setscheduler.patch b/queue-5.17/sched-fix-balance_push-vs-__sched_setscheduler.patch
deleted file mode 100644 (file)
index 02dffd6..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From d012cd36f2c7ee792c44e7b9b1d1802f00ec3fcd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 7 Jun 2022 22:41:55 +0200
-Subject: sched: Fix balance_push() vs __sched_setscheduler()
-
-From: Peter Zijlstra <peterz@infradead.org>
-
-[ Upstream commit 04193d590b390ec7a0592630f46d559ec6564ba1 ]
-
-The purpose of balance_push() is to act as a filter on task selection
-in the case of CPU hotplug, specifically when taking the CPU out.
-
-It does this by (ab)using the balance callback infrastructure, with
-the express purpose of keeping all the unlikely/odd cases in a single
-place.
-
-In order to serve its purpose, the balance_push_callback needs to be
-(exclusively) on the callback list at all times (noting that the
-callback always places itself back on the list the moment it runs,
-also noting that when the CPU goes down, regular balancing concerns
-are moot, so ignoring them is fine).
-
-And here-in lies the problem, __sched_setscheduler()'s use of
-splice_balance_callbacks() takes the callbacks off the list across a
-lock-break, making it possible for, an interleaving, __schedule() to
-see an empty list and not get filtered.
-
-Fixes: ae7927023243 ("sched: Optimize finish_lock_switch()")
-Reported-by: Jing-Ting Wu <jing-ting.wu@mediatek.com>
-Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
-Tested-by: Jing-Ting Wu <jing-ting.wu@mediatek.com>
-Link: https://lkml.kernel.org/r/20220519134706.GH2578@worktop.programming.kicks-ass.net
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/sched/core.c  | 36 +++++++++++++++++++++++++++++++++---
- kernel/sched/sched.h |  5 +++++
- 2 files changed, 38 insertions(+), 3 deletions(-)
-
-diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index a6722496ed5f..11b6f2fc8bee 100644
---- a/kernel/sched/core.c
-+++ b/kernel/sched/core.c
-@@ -4678,25 +4678,55 @@ static void do_balance_callbacks(struct rq *rq, struct callback_head *head)
- static void balance_push(struct rq *rq);
-+/*
-+ * balance_push_callback is a right abuse of the callback interface and plays
-+ * by significantly different rules.
-+ *
-+ * Where the normal balance_callback's purpose is to be ran in the same context
-+ * that queued it (only later, when it's safe to drop rq->lock again),
-+ * balance_push_callback is specifically targeted at __schedule().
-+ *
-+ * This abuse is tolerated because it places all the unlikely/odd cases behind
-+ * a single test, namely: rq->balance_callback == NULL.
-+ */
- struct callback_head balance_push_callback = {
-       .next = NULL,
-       .func = (void (*)(struct callback_head *))balance_push,
- };
--static inline struct callback_head *splice_balance_callbacks(struct rq *rq)
-+static inline struct callback_head *
-+__splice_balance_callbacks(struct rq *rq, bool split)
- {
-       struct callback_head *head = rq->balance_callback;
-+      if (likely(!head))
-+              return NULL;
-+
-       lockdep_assert_rq_held(rq);
--      if (head)
-+      /*
-+       * Must not take balance_push_callback off the list when
-+       * splice_balance_callbacks() and balance_callbacks() are not
-+       * in the same rq->lock section.
-+       *
-+       * In that case it would be possible for __schedule() to interleave
-+       * and observe the list empty.
-+       */
-+      if (split && head == &balance_push_callback)
-+              head = NULL;
-+      else
-               rq->balance_callback = NULL;
-       return head;
- }
-+static inline struct callback_head *splice_balance_callbacks(struct rq *rq)
-+{
-+      return __splice_balance_callbacks(rq, true);
-+}
-+
- static void __balance_callbacks(struct rq *rq)
- {
--      do_balance_callbacks(rq, splice_balance_callbacks(rq));
-+      do_balance_callbacks(rq, __splice_balance_callbacks(rq, false));
- }
- static inline void balance_callbacks(struct rq *rq, struct callback_head *head)
-diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index 8c0dfeadef70..9c0b33a89cfd 100644
---- a/kernel/sched/sched.h
-+++ b/kernel/sched/sched.h
-@@ -1699,6 +1699,11 @@ queue_balance_callback(struct rq *rq,
- {
-       lockdep_assert_rq_held(rq);
-+      /*
-+       * Don't (re)queue an already queued item; nor queue anything when
-+       * balance_push() is active, see the comment with
-+       * balance_push_callback.
-+       */
-       if (unlikely(head->next || rq->balance_callback == &balance_push_callback))
-               return;
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-ipr-fix-missing-incorrect-resource-cleanup-in-e.patch b/queue-5.17/scsi-ipr-fix-missing-incorrect-resource-cleanup-in-e.patch
deleted file mode 100644 (file)
index 7800b36..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From 2c25428eb7d88f8ea1bcffe36b32a3b17ce1f3d7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 29 May 2022 23:34:53 +0800
-Subject: scsi: ipr: Fix missing/incorrect resource cleanup in error case
-
-From: Chengguang Xu <cgxu519@mykernel.net>
-
-[ Upstream commit d64c491911322af1dcada98e5b9ee0d87e8c8fee ]
-
-Fix missing resource cleanup (when '(--i) == 0') for error case in
-ipr_alloc_mem() and skip incorrect resource cleanup (when '(--i) == 0') for
-error case in ipr_request_other_msi_irqs() because variable i started from
-1.
-
-Link: https://lore.kernel.org/r/20220529153456.4183738-4-cgxu519@mykernel.net
-Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
-Acked-by: Brian King <brking@linux.vnet.ibm.com>
-Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/ipr.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
-index 104bee9b3a9d..00593d8953f1 100644
---- a/drivers/scsi/ipr.c
-+++ b/drivers/scsi/ipr.c
-@@ -9795,7 +9795,7 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
-                                       GFP_KERNEL);
-               if (!ioa_cfg->hrrq[i].host_rrq)  {
--                      while (--i > 0)
-+                      while (--i >= 0)
-                               dma_free_coherent(&pdev->dev,
-                                       sizeof(u32) * ioa_cfg->hrrq[i].size,
-                                       ioa_cfg->hrrq[i].host_rrq,
-@@ -10068,7 +10068,7 @@ static int ipr_request_other_msi_irqs(struct ipr_ioa_cfg *ioa_cfg,
-                       ioa_cfg->vectors_info[i].desc,
-                       &ioa_cfg->hrrq[i]);
-               if (rc) {
--                      while (--i >= 0)
-+                      while (--i > 0)
-                               free_irq(pci_irq_vector(pdev, i),
-                                       &ioa_cfg->hrrq[i]);
-                       return rc;
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-lpfc-allow-reduced-polling-rate-for-nvme_admin_.patch b/queue-5.17/scsi-lpfc-allow-reduced-polling-rate-for-nvme_admin_.patch
deleted file mode 100644 (file)
index 9e86fd8..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-From 60237779a29c4d6b0b44f8dbbd9fe3077c056b26 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 3 Jun 2022 10:43:28 -0700
-Subject: scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd
- completion
-
-From: James Smart <jsmart2021@gmail.com>
-
-[ Upstream commit 2e7e9c0c1ec05f18d320ecc8a31eec59d2af1af9 ]
-
-NVMe Asynchronous Event Request commands have no command timeout value per
-specifications.
-
-Set WQE option to allow a reduced FLUSH polling rate for I/O error
-detection specifically for nvme_admin_async_event commands.
-
-Link: https://lore.kernel.org/r/20220603174329.63777-9-jsmart2021@gmail.com
-Co-developed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: James Smart <jsmart2021@gmail.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_hw4.h  |  3 +++
- drivers/scsi/lpfc/lpfc_nvme.c | 11 +++++++++--
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h
-index 6ec42991d2ab..f7095888b715 100644
---- a/drivers/scsi/lpfc/lpfc_hw4.h
-+++ b/drivers/scsi/lpfc/lpfc_hw4.h
-@@ -4452,6 +4452,9 @@ struct wqe_common {
- #define wqe_sup_SHIFT         6
- #define wqe_sup_MASK          0x00000001
- #define wqe_sup_WORD          word11
-+#define wqe_ffrq_SHIFT         6
-+#define wqe_ffrq_MASK          0x00000001
-+#define wqe_ffrq_WORD          word11
- #define wqe_wqec_SHIFT        7
- #define wqe_wqec_MASK         0x00000001
- #define wqe_wqec_WORD         word11
-diff --git a/drivers/scsi/lpfc/lpfc_nvme.c b/drivers/scsi/lpfc/lpfc_nvme.c
-index df73abb59407..b981c3a2b366 100644
---- a/drivers/scsi/lpfc/lpfc_nvme.c
-+++ b/drivers/scsi/lpfc/lpfc_nvme.c
-@@ -1193,7 +1193,8 @@ lpfc_nvme_prep_io_cmd(struct lpfc_vport *vport,
- {
-       struct lpfc_hba *phba = vport->phba;
-       struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd;
--      struct lpfc_iocbq *pwqeq = &(lpfc_ncmd->cur_iocbq);
-+      struct nvme_common_command *sqe;
-+      struct lpfc_iocbq *pwqeq = &lpfc_ncmd->cur_iocbq;
-       union lpfc_wqe128 *wqe = &pwqeq->wqe;
-       uint32_t req_len;
-@@ -1250,8 +1251,14 @@ lpfc_nvme_prep_io_cmd(struct lpfc_vport *vport,
-               cstat->control_requests++;
-       }
--      if (pnode->nlp_nvme_info & NLP_NVME_NSLER)
-+      if (pnode->nlp_nvme_info & NLP_NVME_NSLER) {
-               bf_set(wqe_erp, &wqe->generic.wqe_com, 1);
-+              sqe = &((struct nvme_fc_cmd_iu *)
-+                      nCmd->cmdaddr)->sqe.common;
-+              if (sqe->opcode == nvme_admin_async_event)
-+                      bf_set(wqe_ffrq, &wqe->generic.wqe_com, 1);
-+      }
-+
-       /*
-        * Finish initializing those WQE fields that are independent
-        * of the nvme_cmnd request_buffer
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-lpfc-fix-port-stuck-in-bypassed-state-after-lip.patch b/queue-5.17/scsi-lpfc-fix-port-stuck-in-bypassed-state-after-lip.patch
deleted file mode 100644 (file)
index 2bbf44f..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From 08b1f507fca169badb2e93cef8622830aca62a59 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 3 Jun 2022 10:43:26 -0700
-Subject: scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT
- topology
-
-From: James Smart <jsmart2021@gmail.com>
-
-[ Upstream commit 336d63615466b4c06b9401c987813fd19bdde39b ]
-
-After issuing a LIP, a specific target vendor does not ACC the FLOGI that
-lpfc sends.  However, it does send its own FLOGI that lpfc ACCs.  The
-target then establishes the port IDs by sending a PLOGI.  lpfc PLOGI_ACCs
-and starts the RPI registration for DID 0x000001.  The target then sends a
-LOGO to the fabric DID.  lpfc is currently treating the LOGO from the
-fabric DID as a link down and cleans up all the ndlps.  The ndlp for DID
-0x000001 is put back into NPR and discovery stops, leaving the port in
-stuck in bypassed mode.
-
-Change lpfc behavior such that if a LOGO is received for the fabric DID in
-PT2PT topology skip the lpfc_linkdown_port() routine and just move the
-fabric DID back to NPR.
-
-Link: https://lore.kernel.org/r/20220603174329.63777-7-jsmart2021@gmail.com
-Co-developed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: James Smart <jsmart2021@gmail.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_nportdisc.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
-index fdf5e777bf11..2bd35a7424c2 100644
---- a/drivers/scsi/lpfc/lpfc_nportdisc.c
-+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
-@@ -810,7 +810,8 @@ lpfc_rcv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
-               lpfc_nvmet_invalidate_host(phba, ndlp);
-       if (ndlp->nlp_DID == Fabric_DID) {
--              if (vport->port_state <= LPFC_FDISC)
-+              if (vport->port_state <= LPFC_FDISC ||
-+                  vport->fc_flag & FC_PT2PT)
-                       goto out;
-               lpfc_linkdown_port(vport);
-               spin_lock_irq(shost->host_lock);
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-lpfc-resolve-null-ptr-dereference-after-an-els-.patch b/queue-5.17/scsi-lpfc-resolve-null-ptr-dereference-after-an-els-.patch
deleted file mode 100644 (file)
index 2e107a0..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-From 7ffa03ea2601ab90d0458e8b70aa77d18d0f70bc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 3 Jun 2022 10:43:25 -0700
-Subject: scsi: lpfc: Resolve NULL ptr dereference after an ELS LOGO is aborted
-
-From: James Smart <jsmart2021@gmail.com>
-
-[ Upstream commit b1b3440f437b75fb2a9b0cfe58df461e40eca474 ]
-
-A use-after-free crash can occur after an ELS LOGO is aborted.
-
-Specifically, a nodelist structure is freed and then
-ndlp->vport->cfg_log_verbose is dereferenced in lpfc_nlp_get() when the
-discovery state machine is mistakenly called a second time with
-NLP_EVT_DEVICE_RM argument.
-
-Rework lpfc_cmpl_els_logo() to prevent the duplicate calls to release a
-nodelist structure.
-
-Link: https://lore.kernel.org/r/20220603174329.63777-6-jsmart2021@gmail.com
-Co-developed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: James Smart <jsmart2021@gmail.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_els.c | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
-index 8d416019f59f..62ad2bdaa3be 100644
---- a/drivers/scsi/lpfc/lpfc_els.c
-+++ b/drivers/scsi/lpfc/lpfc_els.c
-@@ -2962,18 +2962,10 @@ lpfc_cmpl_els_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
-               spin_unlock_irq(&ndlp->lock);
-               lpfc_disc_state_machine(vport, ndlp, cmdiocb,
-                                       NLP_EVT_DEVICE_RM);
--              lpfc_els_free_iocb(phba, cmdiocb);
--              lpfc_nlp_put(ndlp);
--
--              /* Presume the node was released. */
--              return;
-+              goto out_rsrc_free;
-       }
- out:
--      /* Driver is done with the IO.  */
--      lpfc_els_free_iocb(phba, cmdiocb);
--      lpfc_nlp_put(ndlp);
--
-       /* At this point, the LOGO processing is complete. NOTE: For a
-        * pt2pt topology, we are assuming the NPortID will only change
-        * on link up processing. For a LOGO / PLOGI initiated by the
-@@ -3000,6 +2992,10 @@ lpfc_cmpl_els_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
-                                ndlp->nlp_DID, irsp->ulpStatus,
-                                irsp->un.ulpWord[4], irsp->ulpTimeout,
-                                vport->num_disc_nodes);
-+
-+              lpfc_els_free_iocb(phba, cmdiocb);
-+              lpfc_nlp_put(ndlp);
-+
-               lpfc_disc_start(vport);
-               return;
-       }
-@@ -3016,6 +3012,10 @@ lpfc_cmpl_els_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
-               lpfc_disc_state_machine(vport, ndlp, cmdiocb,
-                                       NLP_EVT_DEVICE_RM);
-       }
-+out_rsrc_free:
-+      /* Driver is done with the I/O. */
-+      lpfc_els_free_iocb(phba, cmdiocb);
-+      lpfc_nlp_put(ndlp);
- }
- /**
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-mpt3sas-fix-out-of-bounds-compiler-warning.patch b/queue-5.17/scsi-mpt3sas-fix-out-of-bounds-compiler-warning.patch
deleted file mode 100644 (file)
index 315625b..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From 1daf8ce69e501befd0d97252cb85d905a20e1fbb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 31 May 2022 22:09:27 +0200
-Subject: scsi: mpt3sas: Fix out-of-bounds compiler warning
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Helge Deller <deller@gmx.de>
-
-[ Upstream commit 120f1d95efb1cdb6fe023c84e38ba06d8f78cd03 ]
-
-I'm facing this warning when building for the parisc64 architecture:
-
-drivers/scsi/mpt3sas/mpt3sas_base.c: In function ‘_base_make_ioc_operational’:
-drivers/scsi/mpt3sas/mpt3sas_base.c:5396:40: warning: array subscript ‘Mpi2SasIOUnitPage1_t {aka struct _MPI2_CONFIG_PAGE_SASIOUNIT_1}[0]’ is partly outside array bounds of ‘unsigned char[20]’ [-Warray-bounds]
- 5396 |             (le16_to_cpu(sas_iounit_pg1->SASWideMaxQueueDepth)) ?
-drivers/scsi/mpt3sas/mpt3sas_base.c:5382:26: note: referencing an object of size 20 allocated by ‘kzalloc’
- 5382 |         sas_iounit_pg1 = kzalloc(sz, GFP_KERNEL);
-      |                          ^~~~~~~~~~~~~~~~~~~~~~~
-
-The problem is, that only 20 bytes are allocated with kmalloc(), which is
-sufficient to hold the bytes which are needed.  Nevertheless, gcc complains
-because the whole Mpi2SasIOUnitPage1_t struct is 32 bytes in size and thus
-doesn't fit into those 20 bytes.
-
-This patch simply allocates all 32 bytes (instead of 20) and thus avoids
-the warning. There is no functional change introduced by this patch.
-
-While touching the code I cleaned up to calculation of max_wideport_qd,
-max_narrowport_qd and max_sata_qd to make it easier readable.
-
-Test successfully tested on a HP C8000 PA-RISC workstation with 64-bit
-kernel.
-
-Link: https://lore.kernel.org/r/YpZ197iZdDZSCzrT@p100
-Signed-off-by: Helge Deller <deller@gmx.de>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/mpt3sas/mpt3sas_base.c | 23 ++++++++++++-----------
- 1 file changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
-index fb5a3a348dbe..5748dfc4066e 100644
---- a/drivers/scsi/mpt3sas/mpt3sas_base.c
-+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
-@@ -5380,6 +5380,7 @@ static int _base_assign_fw_reported_qd(struct MPT3SAS_ADAPTER *ioc)
-       Mpi2ConfigReply_t mpi_reply;
-       Mpi2SasIOUnitPage1_t *sas_iounit_pg1 = NULL;
-       Mpi26PCIeIOUnitPage1_t pcie_iounit_pg1;
-+      u16 depth;
-       int sz;
-       int rc = 0;
-@@ -5391,7 +5392,7 @@ static int _base_assign_fw_reported_qd(struct MPT3SAS_ADAPTER *ioc)
-               goto out;
-       /* sas iounit page 1 */
-       sz = offsetof(Mpi2SasIOUnitPage1_t, PhyData);
--      sas_iounit_pg1 = kzalloc(sz, GFP_KERNEL);
-+      sas_iounit_pg1 = kzalloc(sizeof(Mpi2SasIOUnitPage1_t), GFP_KERNEL);
-       if (!sas_iounit_pg1) {
-               pr_err("%s: failure at %s:%d/%s()!\n",
-                   ioc->name, __FILE__, __LINE__, __func__);
-@@ -5404,16 +5405,16 @@ static int _base_assign_fw_reported_qd(struct MPT3SAS_ADAPTER *ioc)
-                   ioc->name, __FILE__, __LINE__, __func__);
-               goto out;
-       }
--      ioc->max_wideport_qd =
--          (le16_to_cpu(sas_iounit_pg1->SASWideMaxQueueDepth)) ?
--          le16_to_cpu(sas_iounit_pg1->SASWideMaxQueueDepth) :
--          MPT3SAS_SAS_QUEUE_DEPTH;
--      ioc->max_narrowport_qd =
--          (le16_to_cpu(sas_iounit_pg1->SASNarrowMaxQueueDepth)) ?
--          le16_to_cpu(sas_iounit_pg1->SASNarrowMaxQueueDepth) :
--          MPT3SAS_SAS_QUEUE_DEPTH;
--      ioc->max_sata_qd = (sas_iounit_pg1->SATAMaxQDepth) ?
--          sas_iounit_pg1->SATAMaxQDepth : MPT3SAS_SATA_QUEUE_DEPTH;
-+
-+      depth = le16_to_cpu(sas_iounit_pg1->SASWideMaxQueueDepth);
-+      ioc->max_wideport_qd = (depth ? depth : MPT3SAS_SAS_QUEUE_DEPTH);
-+
-+      depth = le16_to_cpu(sas_iounit_pg1->SASNarrowMaxQueueDepth);
-+      ioc->max_narrowport_qd = (depth ? depth : MPT3SAS_SAS_QUEUE_DEPTH);
-+
-+      depth = sas_iounit_pg1->SATAMaxQDepth;
-+      ioc->max_sata_qd = (depth ? depth : MPT3SAS_SATA_QUEUE_DEPTH);
-+
-       /* pcie iounit page 1 */
-       rc = mpt3sas_config_get_pcie_iounit_pg1(ioc, &mpi_reply,
-           &pcie_iounit_pg1, sizeof(Mpi26PCIeIOUnitPage1_t));
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-pmcraid-fix-missing-resource-cleanup-in-error-c.patch b/queue-5.17/scsi-pmcraid-fix-missing-resource-cleanup-in-error-c.patch
deleted file mode 100644 (file)
index f8cb356..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From a2a6324feb79282c311adf70c788118a39ad151d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 29 May 2022 23:34:55 +0800
-Subject: scsi: pmcraid: Fix missing resource cleanup in error case
-
-From: Chengguang Xu <cgxu519@mykernel.net>
-
-[ Upstream commit ec1e8adcbdf661c57c395bca342945f4f815add7 ]
-
-Fix missing resource cleanup (when '(--i) == 0') for error case in
-pmcraid_register_interrupt_handler().
-
-Link: https://lore.kernel.org/r/20220529153456.4183738-6-cgxu519@mykernel.net
-Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
-Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/pmcraid.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
-index 928532180d32..71f829bd130e 100644
---- a/drivers/scsi/pmcraid.c
-+++ b/drivers/scsi/pmcraid.c
-@@ -4522,7 +4522,7 @@ pmcraid_register_interrupt_handler(struct pmcraid_instance *pinstance)
-       return 0;
- out_unwind:
--      while (--i > 0)
-+      while (--i >= 0)
-               free_irq(pci_irq_vector(pdev, i), &pinstance->hrrq_vector[i]);
-       pci_free_irq_vectors(pdev);
-       return rc;
--- 
-2.35.1
-
diff --git a/queue-5.17/scsi-vmw_pvscsi-expand-vcpuhint-to-16-bits.patch b/queue-5.17/scsi-vmw_pvscsi-expand-vcpuhint-to-16-bits.patch
deleted file mode 100644 (file)
index 0ff9f64..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From d2605c584edc9abfaa9a0504591f4111b10cf7d1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 08:57:00 +0000
-Subject: scsi: vmw_pvscsi: Expand vcpuHint to 16 bits
-
-From: Wentao Wang <wwentao@vmware.com>
-
-[ Upstream commit cf71d59c2eceadfcde0fb52e237990a0909880d7 ]
-
-vcpuHint has been expanded to 16 bit on host to enable routing to more
-CPUs. Guest side should align with the change. This change has been tested
-with hosts with 8-bit and 16-bit vcpuHint, on both platforms host side can
-get correct value.
-
-Link: https://lore.kernel.org/r/EF35F4D5-5DCC-42C5-BCC4-29DF1729B24C@vmware.com
-Signed-off-by: Wentao Wang <wwentao@vmware.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/vmw_pvscsi.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/vmw_pvscsi.h b/drivers/scsi/vmw_pvscsi.h
-index 51a82f7803d3..9d16cf925483 100644
---- a/drivers/scsi/vmw_pvscsi.h
-+++ b/drivers/scsi/vmw_pvscsi.h
-@@ -331,8 +331,8 @@ struct PVSCSIRingReqDesc {
-       u8      tag;
-       u8      bus;
-       u8      target;
--      u8      vcpuHint;
--      u8      unused[59];
-+      u16     vcpuHint;
-+      u8      unused[58];
- } __packed;
- /*
--- 
-2.35.1
-
diff --git a/queue-5.17/series b/queue-5.17/series
deleted file mode 100644 (file)
index 9b3a0ea..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-powerpc-kasan-silence-kasan-warnings-in-__get_wchan.patch
-asoc-nau8822-add-operation-for-internal-pll-off-and-.patch
-drm-amd-display-read-golden-settings-table-from-vbio.patch
-drm-amdkfd-use-mmget_not_zero-in-mmu-notifier.patch
-dma-debug-make-things-less-spammy-under-memory-press.patch
-asoc-cs42l52-fix-tlv-scales-for-mixer-controls.patch
-asoc-cs35l36-update-digital-volume-tlv.patch
-asoc-cs53l30-correct-number-of-volume-levels-on-sx-c.patch
-asoc-cs42l52-correct-tlv-for-bypass-volume.patch
-asoc-cs42l56-correct-typo-in-minimum-level-for-sx-vo.patch
-asoc-cs42l51-correct-minimum-value-for-sx-volume-con.patch
-drm-amdkfd-add-pinned-bos-to-kfd_bo_list.patch
-ata-libata-core-fix-null-pointer-deref-in-ata_host_a.patch
-quota-prevent-memory-allocation-recursion-while-hold.patch
-asoc-wm8962-fix-suspend-while-playing-music.patch
-asoc-es8328-fix-event-generation-for-deemphasis-cont.patch
-asoc-wm_adsp-fix-event-generation-for-wm_adsp_fw_put.patch
-input-soc_button_array-also-add-lenovo-yoga-tablet2-.patch
-scsi-vmw_pvscsi-expand-vcpuhint-to-16-bits.patch
-scsi-lpfc-resolve-null-ptr-dereference-after-an-els-.patch
-scsi-lpfc-fix-port-stuck-in-bypassed-state-after-lip.patch
-scsi-lpfc-allow-reduced-polling-rate-for-nvme_admin_.patch
-scsi-mpt3sas-fix-out-of-bounds-compiler-warning.patch
-scsi-ipr-fix-missing-incorrect-resource-cleanup-in-e.patch
-scsi-pmcraid-fix-missing-resource-cleanup-in-error-c.patch
-alsa-hda-realtek-add-hw8326-support.patch
-virtio-mmio-fix-missing-put_device-when-vm_cmdline_p.patch
-nfc-nfcmrvl-fix-memory-leak-in-nfcmrvl_play_deferred.patch
-ipv6-fix-signed-integer-overflow-in-l2tp_ip6_sendmsg.patch
-net-ethernet-mtk_eth_soc-fix-misuse-of-mem-alloc-int.patch
-gcc-12-disable-wdangling-pointer-warning-for-now.patch
-mellanox-mlx5-avoid-uninitialized-variable-warning-w.patch
-gcc-12-disable-warray-bounds-universally-for-now.patch
-netfs-gcc-12-temporarily-disable-wattribute-warning-.patch
-mips-loongson-3-fix-compile-mips-cpu_hwmon-as-module.patch
-random-credit-cpu-and-bootloader-seeds-by-default.patch
-gpio-dwapb-don-t-print-error-on-eprobe_defer.patch
-platform-x86-intel-fix-pmt_crashlog-array-reference.patch
-platform-x86-gigabyte-wmi-add-z690m-aorus-elite-ax-d.patch
-platform-x86-gigabyte-wmi-add-support-for-b450m-ds3h.patch
-platform-x86-intel-hid-add-surface-go-to-vgbs-allow-.patch
-staging-r8188eu-fix-rtw_alloc_hwxmits-error-detectio.patch
-staging-r8188eu-fix-warning-of-array-overflow-in-ioc.patch
-pnfs-don-t-keep-retrying-if-the-server-replied-nfs4e.patch
-pnfs-avoid-a-live-lock-condition-in-pnfs_update_layo.patch
-sunrpc-set-cl_max_connect-when-cloning-an-rpc_clnt.patch
-clocksource-hyper-v-unexport-__init-annotated-hv_ini.patch
-i40e-fix-adding-adq-filter-to-tc0.patch
-i40e-fix-calculating-the-number-of-queue-pairs.patch
-i40e-fix-call-trace-in-setup_tx_descriptors.patch
-drivers-hv-vmbus-release-cpu-lock-in-error-case.patch
-tty-goldfish-fix-free_irq-on-remove.patch
-misc-atmel-ssc-fix-irq-check-in-ssc_probe.patch
-io_uring-fix-races-with-file-table-unregister.patch
-io_uring-fix-races-with-buffer-table-unregister.patch
-drm-i915-reset-fix-error_state_read-ptr-offset-use.patch
-net-hns3-set-port-base-vlan-tbl_sta-to-false-before-.patch
-net-hns3-don-t-push-link-state-to-vf-if-unalive.patch
-net-hns3-restore-tm-priority-qset-to-default-setting.patch
-net-hns3-fix-pf-rss-size-initialization-bug.patch
-net-hns3-fix-tm-port-shapping-of-fibre-port-is-incor.patch
-nvme-add-device-name-to-warning-in-uuid_show.patch
-mlxsw-spectrum_cnt-reorder-counter-pools.patch
-ice-fix-ptp-tx-timestamp-offset-calculation.patch
-ice-fix-queue-config-fail-handling.patch
-net-bgmac-fix-an-erroneous-kfree-in-bgmac_remove.patch
-net-ax25-fix-deadlock-caused-by-skb_recv_datagram-in.patch
-arm64-ftrace-fix-branch-range-checks.patch
-arm64-ftrace-consistently-handle-plts.patch
-certs-blacklist_hashes.c-fix-const-confusion-in-cert.patch
-init-initialize-noop_backing_dev_info-early.patch
-block-fix-handling-of-offline-queues-in-blk_mq_alloc.patch
-faddr2line-fix-overlapping-text-section-failures-the.patch
-i2c-npcm7xx-add-check-for-platform_driver_register.patch
-irqchip-gic-realview-fix-refcount-leak-in-realview_g.patch
-irqchip-gic-v3-fix-error-handling-in-gic_populate_pp.patch
-irqchip-gic-v3-fix-refcount-leak-in-gic_populate_ppi.patch
-irqchip-realtek-rtl-fix-refcount-leak-in-map_interru.patch
-sched-fix-balance_push-vs-__sched_setscheduler.patch
-i2c-designware-use-standard-optional-ref-clock-imple.patch
diff --git a/queue-5.17/staging-r8188eu-fix-rtw_alloc_hwxmits-error-detectio.patch b/queue-5.17/staging-r8188eu-fix-rtw_alloc_hwxmits-error-detectio.patch
deleted file mode 100644 (file)
index 7fca72b..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From c8791afb585e78ea84596ad0c12daf345a2d990f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 21 May 2022 21:47:41 +0100
-Subject: staging: r8188eu: fix rtw_alloc_hwxmits error detection for now
-
-From: Phillip Potter <phil@philpotter.co.uk>
-
-[ Upstream commit 5b7419ae1d208cab1e2826d473d8dab045aa75c7 ]
-
-In _rtw_init_xmit_priv, we use the res variable to store the error
-return from the newly converted rtw_alloc_hwxmits function. Sadly, the
-calling function interprets res using _SUCCESS and _FAIL still, meaning
-we change the semantics of the variable, even in the success case.
-
-This leads to the following on boot:
-r8188eu 1-2:1.0: _rtw_init_xmit_priv failed
-
-In the long term, we should reverse these semantics, but for now, this
-fixes the driver. Also, inside rtw_alloc_hwxmits remove the if blocks,
-as HWXMIT_ENTRY is always 4.
-
-Fixes: f94b47c6bde6 ("staging: r8188eu: add check for kzalloc")
-Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
-Link: https://lore.kernel.org/r/20220521204741.921-1-phil@philpotter.co.uk
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/staging/r8188eu/core/rtw_xmit.c | 20 +++++---------------
- 1 file changed, 5 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/staging/r8188eu/core/rtw_xmit.c b/drivers/staging/r8188eu/core/rtw_xmit.c
-index f4e9f6102539..cc176ee29257 100644
---- a/drivers/staging/r8188eu/core/rtw_xmit.c
-+++ b/drivers/staging/r8188eu/core/rtw_xmit.c
-@@ -179,8 +179,7 @@ s32        _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter)
-       pxmitpriv->free_xmit_extbuf_cnt = num_xmit_extbuf;
--      res = rtw_alloc_hwxmits(padapter);
--      if (res) {
-+      if (rtw_alloc_hwxmits(padapter)) {
-               res = _FAIL;
-               goto exit;
-       }
-@@ -1514,19 +1513,10 @@ int rtw_alloc_hwxmits(struct adapter *padapter)
-       hwxmits = pxmitpriv->hwxmits;
--      if (pxmitpriv->hwxmit_entry == 5) {
--              hwxmits[0] .sta_queue = &pxmitpriv->bm_pending;
--              hwxmits[1] .sta_queue = &pxmitpriv->vo_pending;
--              hwxmits[2] .sta_queue = &pxmitpriv->vi_pending;
--              hwxmits[3] .sta_queue = &pxmitpriv->bk_pending;
--              hwxmits[4] .sta_queue = &pxmitpriv->be_pending;
--      } else if (pxmitpriv->hwxmit_entry == 4) {
--              hwxmits[0] .sta_queue = &pxmitpriv->vo_pending;
--              hwxmits[1] .sta_queue = &pxmitpriv->vi_pending;
--              hwxmits[2] .sta_queue = &pxmitpriv->be_pending;
--              hwxmits[3] .sta_queue = &pxmitpriv->bk_pending;
--      } else {
--      }
-+      hwxmits[0].sta_queue = &pxmitpriv->vo_pending;
-+      hwxmits[1].sta_queue = &pxmitpriv->vi_pending;
-+      hwxmits[2].sta_queue = &pxmitpriv->be_pending;
-+      hwxmits[3].sta_queue = &pxmitpriv->bk_pending;
-       return 0;
- }
--- 
-2.35.1
-
diff --git a/queue-5.17/staging-r8188eu-fix-warning-of-array-overflow-in-ioc.patch b/queue-5.17/staging-r8188eu-fix-warning-of-array-overflow-in-ioc.patch
deleted file mode 100644 (file)
index f95e650..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From c17dc52ec879a5fc755157321dc74a6a810a8623 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 30 May 2022 20:31:03 -0500
-Subject: staging: r8188eu: Fix warning of array overflow in ioctl_linux.c
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Larry Finger <Larry.Finger@lwfinger.net>
-
-[ Upstream commit 96f0a54e8e65a765b3a4ad4b53751581f23279f3 ]
-
-Building with -Warray-bounds results in the following warning plus others
-related to the same problem:
-
-CC [M]  drivers/staging/r8188eu/os_dep/ioctl_linux.o
-In function ‘wpa_set_encryption’,
-    inlined from ‘rtw_wx_set_enc_ext’ at drivers/staging/r8188eu/os_dep/ioctl_linux.c:1868:9:
-drivers/staging/r8188eu/os_dep/ioctl_linux.c:412:41: warning: array subscript ‘struct ndis_802_11_wep[0]’ is partly outside array bounds of ‘void[25]’ [-Warray-bounds]
-  412 |                         pwep->KeyLength = wep_key_len;
-      |                         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
-In file included from drivers/staging/r8188eu/os_dep/../include/osdep_service.h:19,
-                 from drivers/staging/r8188eu/os_dep/ioctl_linux.c:4:
-In function ‘kmalloc’,
-    inlined from ‘kzalloc’ at ./include/linux/slab.h:733:9,
-    inlined from ‘wpa_set_encryption’ at drivers/staging/r8188eu/os_dep/ioctl_linux.c:408:11,
-    inlined from ‘rtw_wx_set_enc_ext’ at drivers/staging/r8188eu/os_dep/ioctl_linux.c:1868:9:
-./include/linux/slab.h:605:16: note: object of size [17, 25] allocated by ‘__kmalloc’
-  605 |         return __kmalloc(size, flags);
-      |                ^~~~~~~~~~~~~~~~~~~~~~
-./include/linux/slab.h:600:24: note: object of size [17, 25] allocated by ‘kmem_cache_alloc_trace’
-  600 |                 return kmem_cache_alloc_trace(
-      |                        ^~~~~~~~~~~~~~~~~~~~~~~
-  601 |                                 kmalloc_caches[kmalloc_type(flags)][index],
-      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  602 |                                 flags, size);
-      |                                 ~~~~~~~~~~~~
-
-Although it is unlikely that anyone is still using WEP encryption, the
-size of the allocation needs to be increased just in case.
-
-Fixes commit 2b42bd58b321 ("staging: r8188eu: introduce new os_dep dir for RTL8188eu driver")
-
-Fixes: 2b42bd58b321 ("staging: r8188eu: introduce new os_dep dir for RTL8188eu driver")
-Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
-Cc: Phillip Potter <phil@philpotter.co.uk>
-Cc: Dan Carpenter <dan.carpenter@oracle.com>
-Link: https://lore.kernel.org/r/20220531013103.2175-3-Larry.Finger@lwfinger.net
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/staging/r8188eu/os_dep/ioctl_linux.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/staging/r8188eu/os_dep/ioctl_linux.c b/drivers/staging/r8188eu/os_dep/ioctl_linux.c
-index dac2343569e5..ea20c177d3e4 100644
---- a/drivers/staging/r8188eu/os_dep/ioctl_linux.c
-+++ b/drivers/staging/r8188eu/os_dep/ioctl_linux.c
-@@ -416,7 +416,7 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param,
-               if (wep_key_len > 0) {
-                       wep_key_len = wep_key_len <= 5 ? 5 : 13;
--                      wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial);
-+                      wep_total_len = wep_key_len + sizeof(*pwep);
-                       pwep = kzalloc(wep_total_len, GFP_KERNEL);
-                       if (!pwep)
-                               goto exit;
--- 
-2.35.1
-
diff --git a/queue-5.17/sunrpc-set-cl_max_connect-when-cloning-an-rpc_clnt.patch b/queue-5.17/sunrpc-set-cl_max_connect-when-cloning-an-rpc_clnt.patch
deleted file mode 100644 (file)
index 94bdbf1..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From 31d2c60cc35508a878244fb93b7c18fd6ed71196 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Jun 2022 13:34:49 -0400
-Subject: sunrpc: set cl_max_connect when cloning an rpc_clnt
-
-From: Scott Mayhew <smayhew@redhat.com>
-
-[ Upstream commit 304791255a2dc1c9be7e7c8a6cbdb31b6847b0e5 ]
-
-If the initial attempt at trunking detection using the krb5i auth flavor
-fails with -EACCES, -NFS4ERR_CLID_INUSE, or -NFS4ERR_WRONGSEC, then the
-NFS client tries again using auth_sys, cloning the rpc_clnt in the
-process.  If this second attempt at trunking detection succeeds, then
-the resulting nfs_client->cl_rpcclient winds up having cl_max_connect=0
-and subsequent attempts to add additional transport connections to the
-rpc_clnt will fail with a message similar to the following being logged:
-
-[502044.312640] SUNRPC: reached max allowed number (0) did not add
-transport to server: 192.168.122.3
-
-Signed-off-by: Scott Mayhew <smayhew@redhat.com>
-Fixes: dc48e0abee24 ("SUNRPC enforce creation of no more than max_connect xprts")
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/sunrpc/clnt.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
-index 1dacd669faad..fe119f111eab 100644
---- a/net/sunrpc/clnt.c
-+++ b/net/sunrpc/clnt.c
-@@ -651,6 +651,7 @@ static struct rpc_clnt *__rpc_clone_client(struct rpc_create_args *args,
-       new->cl_discrtry = clnt->cl_discrtry;
-       new->cl_chatty = clnt->cl_chatty;
-       new->cl_principal = clnt->cl_principal;
-+      new->cl_max_connect = clnt->cl_max_connect;
-       return new;
- out_err:
--- 
-2.35.1
-
diff --git a/queue-5.17/tty-goldfish-fix-free_irq-on-remove.patch b/queue-5.17/tty-goldfish-fix-free_irq-on-remove.patch
deleted file mode 100644 (file)
index a7ba162..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From 9a81e9d5a791b87ceb1b9eed3780a89d8166770a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 Jun 2022 16:17:04 +0200
-Subject: tty: goldfish: Fix free_irq() on remove
-
-From: Vincent Whitchurch <vincent.whitchurch@axis.com>
-
-[ Upstream commit 499e13aac6c762e1e828172b0f0f5275651d6512 ]
-
-Pass the correct dev_id to free_irq() to fix this splat when the driver
-is unbound:
-
- WARNING: CPU: 0 PID: 30 at kernel/irq/manage.c:1895 free_irq
- Trying to free already-free IRQ 65
- Call Trace:
-  warn_slowpath_fmt
-  free_irq
-  goldfish_tty_remove
-  platform_remove
-  device_remove
-  device_release_driver_internal
-  device_driver_detach
-  unbind_store
-  drv_attr_store
-  ...
-
-Fixes: 465893e18878e119 ("tty: goldfish: support platform_device with id -1")
-Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
-Link: https://lore.kernel.org/r/20220609141704.1080024-1-vincent.whitchurch@axis.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/tty/goldfish.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/tty/goldfish.c b/drivers/tty/goldfish.c
-index 9355d97ff591..65d8cb55edba 100644
---- a/drivers/tty/goldfish.c
-+++ b/drivers/tty/goldfish.c
-@@ -426,7 +426,7 @@ static int goldfish_tty_remove(struct platform_device *pdev)
-       tty_unregister_device(goldfish_tty_driver, qtty->console.index);
-       iounmap(qtty->base);
-       qtty->base = NULL;
--      free_irq(qtty->irq, pdev);
-+      free_irq(qtty->irq, qtty);
-       tty_port_destroy(&qtty->port);
-       goldfish_tty_current_line_count--;
-       if (goldfish_tty_current_line_count == 0)
--- 
-2.35.1
-
diff --git a/queue-5.17/virtio-mmio-fix-missing-put_device-when-vm_cmdline_p.patch b/queue-5.17/virtio-mmio-fix-missing-put_device-when-vm_cmdline_p.patch
deleted file mode 100644 (file)
index 13db3c8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From c39c7e594ee36792f66074363001f4239ae38b9c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 2 Jun 2022 08:55:42 +0800
-Subject: virtio-mmio: fix missing put_device() when vm_cmdline_parent
- registration failed
-
-From: chengkaitao <pilgrimtao@gmail.com>
-
-[ Upstream commit a58a7f97ba11391d2d0d408e0b24f38d86ae748e ]
-
-The reference must be released when device_register(&vm_cmdline_parent)
-failed. Add the corresponding 'put_device()' in the error handling path.
-
-Signed-off-by: chengkaitao <pilgrimtao@gmail.com>
-Message-Id: <20220602005542.16489-1-chengkaitao@didiglobal.com>
-Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-Acked-by: Jason Wang <jasowang@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/virtio/virtio_mmio.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
-index 56128b9c46eb..1dd396d4bebb 100644
---- a/drivers/virtio/virtio_mmio.c
-+++ b/drivers/virtio/virtio_mmio.c
-@@ -688,6 +688,7 @@ static int vm_cmdline_set(const char *device,
-       if (!vm_cmdline_parent_registered) {
-               err = device_register(&vm_cmdline_parent);
-               if (err) {
-+                      put_device(&vm_cmdline_parent);
-                       pr_err("Failed to register parent device!\n");
-                       return err;
-               }
--- 
-2.35.1
-