From: Greg Kroah-Hartman Date: Mon, 8 Nov 2021 07:10:22 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.4.292~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=37d67c6e99d8a74aa2f8866fdcb2cfd541c54bb6;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: 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.4/revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch b/queue-5.4/revert-x86-kvm-fix-vcpu-id-indexed-array-sizes.patch new file mode 100644 index 00000000000..7b0e14cee1d --- /dev/null +++ b/queue-5.4/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 +@@ -91,7 +91,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.4/series b/queue-5.4/series new file mode 100644 index 00000000000..57fcfd6aca1 --- /dev/null +++ b/queue-5.4/series @@ -0,0 +1,2 @@ +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.4/usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch b/queue-5.4/usb-ehci-handshake-cmd_run-instead-of-sts_halt.patch new file mode 100644 index 00000000000..69d7d162233 --- /dev/null +++ b/queue-5.4/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 +@@ -286,6 +286,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)