From: Greg Kroah-Hartman Date: Mon, 8 Nov 2021 07:12:54 +0000 (+0100) Subject: 5.10-stable patches X-Git-Tag: v4.4.292~34 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba0406c24845cdd2e9bf99093e768b97a0061de9;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: kvm-x86-avoid-warning-with-wbitwise-instead-of-logical.patch revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch --- diff --git a/queue-5.10/kvm-x86-avoid-warning-with-wbitwise-instead-of-logical.patch b/queue-5.10/kvm-x86-avoid-warning-with-wbitwise-instead-of-logical.patch new file mode 100644 index 00000000000..e2482f91275 --- /dev/null +++ b/queue-5.10/kvm-x86-avoid-warning-with-wbitwise-instead-of-logical.patch @@ -0,0 +1,41 @@ +From 3d5e7a28b1ea2d603dea478e58e37ce75b9597ab Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Fri, 15 Oct 2021 04:50:01 -0400 +Subject: KVM: x86: avoid warning with -Wbitwise-instead-of-logical + +From: Paolo Bonzini + +commit 3d5e7a28b1ea2d603dea478e58e37ce75b9597ab upstream. + +This is a new warning in clang top-of-tree (will be clang 14): + +In file included from arch/x86/kvm/mmu/mmu.c:27: +arch/x86/kvm/mmu/spte.h:318:9: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical] + return __is_bad_mt_xwr(rsvd_check, spte) | + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + || +arch/x86/kvm/mmu/spte.h:318:9: note: cast one or both operands to int to silence this warning + +The code is fine, but change it anyway to shut up this clever clogs +of a compiler. + +Reported-by: torvic9@mailbox.org +Signed-off-by: Paolo Bonzini +[nathan: Backport to 5.10, which does not have 961f84457cd4] +Signed-off-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kvm/mmu/mmu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/kvm/mmu/mmu.c ++++ b/arch/x86/kvm/mmu/mmu.c +@@ -3545,7 +3545,7 @@ static bool get_mmio_spte(struct kvm_vcp + * reserved bit and EPT's invalid memtype/XWR checks to avoid + * adding a Jcc in the loop. + */ +- reserved |= __is_bad_mt_xwr(rsvd_check, sptes[level - 1]) | ++ reserved |= __is_bad_mt_xwr(rsvd_check, sptes[level - 1]) || + __is_rsvd_bits_set(rsvd_check, sptes[level - 1], + level); + } diff --git a/queue-5.10/revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch b/queue-5.10/revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch new file mode 100644 index 00000000000..2b045209b45 --- /dev/null +++ b/queue-5.10/revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch @@ -0,0 +1,55 @@ +From 1e254d0d86a0f2efd4190a89d5204b37c18c6381 Mon Sep 17 00:00:00 2001 +From: Juergen Gross +Date: Mon, 13 Sep 2021 15:57:43 +0200 +Subject: Revert "x86/kvm: fix vcpu-id indexed array sizes" + +From: Juergen Gross + +commit 1e254d0d86a0f2efd4190a89d5204b37c18c6381 upstream. + +This reverts commit 76b4f357d0e7d8f6f0013c733e6cba1773c266d3. + +The commit has the wrong reasoning, as KVM_MAX_VCPU_ID is not defining the +maximum allowed vcpu-id as its name suggests, but the number of vcpu-ids. +So revert this patch again. + +Suggested-by: Eduardo Habkost +Signed-off-by: Juergen Gross +Signed-off-by: Paolo Bonzini +Message-Id: <20210913135745.13944-2-jgross@suse.com> +Signed-off-by: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kvm/ioapic.c | 2 +- + arch/x86/kvm/ioapic.h | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/x86/kvm/ioapic.c ++++ b/arch/x86/kvm/ioapic.c +@@ -96,7 +96,7 @@ static unsigned long ioapic_read_indirec + static void rtc_irq_eoi_tracking_reset(struct kvm_ioapic *ioapic) + { + ioapic->rtc_status.pending_eoi = 0; +- bitmap_zero(ioapic->rtc_status.dest_map.map, KVM_MAX_VCPU_ID + 1); ++ bitmap_zero(ioapic->rtc_status.dest_map.map, KVM_MAX_VCPU_ID); + } + + static void kvm_rtc_eoi_tracking_restore_all(struct kvm_ioapic *ioapic); +--- a/arch/x86/kvm/ioapic.h ++++ b/arch/x86/kvm/ioapic.h +@@ -43,13 +43,13 @@ struct kvm_vcpu; + + struct dest_map { + /* vcpu bitmap where IRQ has been sent */ +- DECLARE_BITMAP(map, KVM_MAX_VCPU_ID + 1); ++ DECLARE_BITMAP(map, KVM_MAX_VCPU_ID); + + /* + * Vector sent to a given vcpu, only valid when + * the vcpu's bit in map is set + */ +- u8 vectors[KVM_MAX_VCPU_ID + 1]; ++ u8 vectors[KVM_MAX_VCPU_ID]; + }; + + diff --git a/queue-5.10/series b/queue-5.10/series new file mode 100644 index 00000000000..cedac7bfc5b --- /dev/null +++ b/queue-5.10/series @@ -0,0 +1,3 @@ +kvm-x86-avoid-warning-with-wbitwise-instead-of-logical.patch +revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch +usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch diff --git a/queue-5.10/usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch b/queue-5.10/usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch new file mode 100644 index 00000000000..b2815ff0fdb --- /dev/null +++ b/queue-5.10/usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch @@ -0,0 +1,71 @@ +From 7f2d73788d9067fd4f677ac5f60ffd25945af7af Mon Sep 17 00:00:00 2001 +From: Neal Liu +Date: Fri, 10 Sep 2021 15:36:19 +0800 +Subject: usb: ehci: handshake CMD_RUN instead of STS_HALT + +From: Neal Liu + +commit 7f2d73788d9067fd4f677ac5f60ffd25945af7af upstream. + +For Aspeed, HCHalted status depends on not only Run/Stop but also +ASS/PSS status. +Handshake CMD_RUN on startup instead. + +Tested-by: Tao Ren +Reviewed-by: Tao Ren +Acked-by: Alan Stern +Signed-off-by: Neal Liu +Link: https://lore.kernel.org/r/20210910073619.26095-1-neal_liu@aspeedtech.com +Cc: Joel Stanley +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/host/ehci-hcd.c | 11 ++++++++++- + drivers/usb/host/ehci-platform.c | 6 ++++++ + drivers/usb/host/ehci.h | 1 + + 3 files changed, 17 insertions(+), 1 deletion(-) + +--- a/drivers/usb/host/ehci-hcd.c ++++ b/drivers/usb/host/ehci-hcd.c +@@ -634,7 +634,16 @@ static int ehci_run (struct usb_hcd *hcd + /* Wait until HC become operational */ + ehci_readl(ehci, &ehci->regs->command); /* unblock posted writes */ + msleep(5); +- rc = ehci_handshake(ehci, &ehci->regs->status, STS_HALT, 0, 100 * 1000); ++ ++ /* For Aspeed, STS_HALT also depends on ASS/PSS status. ++ * Check CMD_RUN instead. ++ */ ++ if (ehci->is_aspeed) ++ rc = ehci_handshake(ehci, &ehci->regs->command, CMD_RUN, ++ 1, 100 * 1000); ++ else ++ rc = ehci_handshake(ehci, &ehci->regs->status, STS_HALT, ++ 0, 100 * 1000); + + up_write(&ehci_cf_port_reset_rwsem); + +--- a/drivers/usb/host/ehci-platform.c ++++ b/drivers/usb/host/ehci-platform.c +@@ -294,6 +294,12 @@ static int ehci_platform_probe(struct pl + "has-transaction-translator")) + hcd->has_tt = 1; + ++ if (of_device_is_compatible(dev->dev.of_node, ++ "aspeed,ast2500-ehci") || ++ of_device_is_compatible(dev->dev.of_node, ++ "aspeed,ast2600-ehci")) ++ ehci->is_aspeed = 1; ++ + if (soc_device_match(quirk_poll_match)) + priv->quirk_poll = true; + +--- a/drivers/usb/host/ehci.h ++++ b/drivers/usb/host/ehci.h +@@ -218,6 +218,7 @@ struct ehci_hcd { /* one per controlle + unsigned frame_index_bug:1; /* MosChip (AKA NetMos) */ + unsigned need_oc_pp_cycle:1; /* MPC834X port power */ + unsigned imx28_write_fix:1; /* For Freescale i.MX28 */ ++ unsigned is_aspeed:1; + + /* required for usb32 quirk */ + #define OHCI_CTRL_HCFS (3 << 6)