--- /dev/null
+From 08e34bccfeb81393d4d6d87c1c981e0dd715cd71 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 19 Oct 2021 19:53:59 +0200
+Subject: KVM: s390: clear kicked_mask before sleeping again
+
+From: Halil Pasic <pasic@linux.ibm.com>
+
+[ Upstream commit 9b57e9d5010bbed7c0d9d445085840f7025e6f9a ]
+
+The idea behind kicked mask is that we should not re-kick a vcpu that
+is already in the "kick" process, i.e. that was kicked and is
+is about to be dispatched if certain conditions are met.
+
+The problem with the current implementation is, that it assumes the
+kicked vcpu is going to enter SIE shortly. But under certain
+circumstances, the vcpu we just kicked will be deemed non-runnable and
+will remain in wait state. This can happen, if the interrupt(s) this
+vcpu got kicked to deal with got already cleared (because the interrupts
+got delivered to another vcpu). In this case kvm_arch_vcpu_runnable()
+would return false, and the vcpu would remain in kvm_vcpu_block(),
+but this time with its kicked_mask bit set. So next time around we
+wouldn't kick the vcpu form __airqs_kick_single_vcpu(), but would assume
+that we just kicked it.
+
+Let us make sure the kicked_mask is cleared before we give up on
+re-dispatching the vcpu.
+
+Fixes: 9f30f6216378 ("KVM: s390: add gib_alert_irq_handler()")
+Reported-by: Matthew Rosato <mjrosato@linux.ibm.com>
+Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
+Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Reviewed-by: Michael Mueller <mimu@linux.ibm.com>
+Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
+Link: https://lore.kernel.org/r/20211019175401.3757927-2-pasic@linux.ibm.com
+Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/s390/kvm/kvm-s390.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
+index 8580543c5bc3..46ad1bdd53a2 100644
+--- a/arch/s390/kvm/kvm-s390.c
++++ b/arch/s390/kvm/kvm-s390.c
+@@ -3341,6 +3341,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
+
+ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
+ {
++ clear_bit(vcpu->vcpu_idx, vcpu->kvm->arch.gisa_int.kicked_mask);
+ return kvm_s390_vcpu_has_irq(vcpu, 0);
+ }
+
+--
+2.33.0
+
--- /dev/null
+From 8df43d6dfe9fab4de4f35e5fbad82ed834425d24 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 19 Oct 2021 19:54:00 +0200
+Subject: KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
+
+From: Halil Pasic <pasic@linux.ibm.com>
+
+[ Upstream commit 0e9ff65f455dfd0a8aea5e7843678ab6fe097e21 ]
+
+Changing the deliverable mask in __airqs_kick_single_vcpu() is a bug. If
+one idle vcpu can't take the interrupts we want to deliver, we should
+look for another vcpu that can, instead of saying that we don't want
+to deliver these interrupts by clearing the bits from the
+deliverable_mask.
+
+Fixes: 9f30f6216378 ("KVM: s390: add gib_alert_irq_handler()")
+Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
+Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Reviewed-by: Michael Mueller <mimu@linux.ibm.com>
+Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
+Link: https://lore.kernel.org/r/20211019175401.3757927-3-pasic@linux.ibm.com
+Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/s390/kvm/interrupt.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
+index 16256e17a544..ee9d052476b5 100644
+--- a/arch/s390/kvm/interrupt.c
++++ b/arch/s390/kvm/interrupt.c
+@@ -3053,13 +3053,14 @@ static void __airqs_kick_single_vcpu(struct kvm *kvm, u8 deliverable_mask)
+ int vcpu_idx, online_vcpus = atomic_read(&kvm->online_vcpus);
+ struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
+ struct kvm_vcpu *vcpu;
++ u8 vcpu_isc_mask;
+
+ for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) {
+ vcpu = kvm_get_vcpu(kvm, vcpu_idx);
+ if (psw_ioint_disabled(vcpu))
+ continue;
+- deliverable_mask &= (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
+- if (deliverable_mask) {
++ vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
++ if (deliverable_mask & vcpu_isc_mask) {
+ /* lately kicked but not yet running */
+ if (test_and_set_bit(vcpu_idx, gi->kicked_mask))
+ return;
+--
+2.33.0
+
--- /dev/null
+From 79b2f616e7ab9197da947467a23d9cd04b54803f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 29 Sep 2021 08:38:13 -0700
+Subject: perf script: Fix PERF_SAMPLE_WEIGHT_STRUCT support
+
+From: Kan Liang <kan.liang@linux.intel.com>
+
+[ Upstream commit 27730c8cd60d1574d8337276e7a9d7d2ca92e0d1 ]
+
+-F weight in perf script is broken.
+
+ # ./perf mem record
+ # ./perf script -F weight
+ Samples for 'dummy:HG' event do not have WEIGHT attribute set. Cannot
+print 'weight' field.
+
+The sample type, PERF_SAMPLE_WEIGHT_STRUCT, is an alternative of the
+PERF_SAMPLE_WEIGHT sample type. They share the same space, weight. The
+lower 32 bits are exactly the same for both sample type. The higher 32
+bits may be different for different architecture. For a new kernel on
+x86, the PERF_SAMPLE_WEIGHT_STRUCT is used. For an old kernel or other
+ARCHs, the PERF_SAMPLE_WEIGHT is used.
+
+With -F weight, current perf script will only check the input string
+"weight" with the PERF_SAMPLE_WEIGHT sample type. Because the commit
+ea8d0ed6eae3 ("perf tools: Support PERF_SAMPLE_WEIGHT_STRUCT") didn't
+update the PERF_SAMPLE_WEIGHT_STRUCT sample type for perf script. For a
+new kernel on x86, the check fails.
+
+Use PERF_SAMPLE_WEIGHT_TYPE, which supports both sample types, to
+replace PERF_SAMPLE_WEIGHT
+
+Fixes: ea8d0ed6eae37b01 ("perf tools: Support PERF_SAMPLE_WEIGHT_STRUCT")
+Reported-by: Joe Mario <jmario@redhat.com>
+Reviewed-by: Kajol Jain <kjain@linux.ibm.com>
+Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
+Tested-by: Jiri Olsa <jolsa@redhat.com>
+Tested-by: Joe Mario <jmario@redhat.com>
+Acked-by: Jiri Olsa <jolsa@redhat.com>
+Acked-by: Joe Mario <jmario@redhat.com>
+Cc: Andi Kleen <ak@linux.intel.com>
+Link: https://lore.kernel.org/r/1632929894-102778-1-git-send-email-kan.liang@linux.intel.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/perf/builtin-script.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
+index 064da7f3618d..52ff827ca799 100644
+--- a/tools/perf/builtin-script.c
++++ b/tools/perf/builtin-script.c
+@@ -469,7 +469,7 @@ static int evsel__check_attr(struct evsel *evsel, struct perf_session *session)
+ return -EINVAL;
+
+ if (PRINT_FIELD(WEIGHT) &&
+- evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT, "WEIGHT", PERF_OUTPUT_WEIGHT))
++ evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT_TYPE, "WEIGHT", PERF_OUTPUT_WEIGHT))
+ return -EINVAL;
+
+ if (PRINT_FIELD(SYM) &&
+--
+2.33.0
+
--- /dev/null
+From d9277ae6b8b10b8d8c3fe134e989cc7256b952ef Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 18 Oct 2021 15:28:41 +0900
+Subject: scsi: ufs: ufs-exynos: Correct timeout value setting registers
+
+From: Chanho Park <chanho61.park@samsung.com>
+
+[ Upstream commit 282da7cef078a87b6d5e8ceba8b17e428cf0e37c ]
+
+PA_PWRMODEUSERDATA0 -> DL_FC0PROTTIMEOUTVAL
+PA_PWRMODEUSERDATA1 -> DL_TC0REPLAYTIMEOUTVAL
+PA_PWRMODEUSERDATA2 -> DL_AFC0REQTIMEOUTVAL
+
+Link: https://lore.kernel.org/r/20211018062841.18226-1-chanho61.park@samsung.com
+Fixes: a967ddb22d94 ("scsi: ufs: ufs-exynos: Apply vendor-specific values for three timeouts")
+Cc: Alim Akhtar <alim.akhtar@samsung.com>
+Cc: Kiwoong Kim <kwmad.kim@samsung.com>
+Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
+Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
+Reviewed-by: Avri Altman <avri.altman@wdc.com>
+Signed-off-by: Chanho Park <chanho61.park@samsung.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/ufs/ufs-exynos.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/scsi/ufs/ufs-exynos.c b/drivers/scsi/ufs/ufs-exynos.c
+index 427a2ff7e9da..9cdedbff5b88 100644
+--- a/drivers/scsi/ufs/ufs-exynos.c
++++ b/drivers/scsi/ufs/ufs-exynos.c
+@@ -642,9 +642,9 @@ static int exynos_ufs_pre_pwr_mode(struct ufs_hba *hba,
+ }
+
+ /* setting for three timeout values for traffic class #0 */
+- ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA0), 8064);
+- ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA1), 28224);
+- ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA2), 20160);
++ ufshcd_dme_set(hba, UIC_ARG_MIB(DL_FC0PROTTIMEOUTVAL), 8064);
++ ufshcd_dme_set(hba, UIC_ARG_MIB(DL_TC0REPLAYTIMEOUTVAL), 28224);
++ ufshcd_dme_set(hba, UIC_ARG_MIB(DL_AFC0REQTIMEOUTVAL), 20160);
+
+ return 0;
+ out:
+--
+2.33.0
+
net-hns3-expand-buffer-len-for-some-debugfs-command.patch
virtio-ring-fix-dma-metadata-flags.patch
octeontx2-af-check-whether-ipolicers-exists.patch
+kvm-s390-clear-kicked_mask-before-sleeping-again.patch
+kvm-s390-preserve-deliverable_mask-in-__airqs_kick_s.patch
+scsi-ufs-ufs-exynos-correct-timeout-value-setting-re.patch
+perf-script-fix-perf_sample_weight_struct-support.patch