--- /dev/null
+From 6246f283d5e02ac757bd8d9bacde8fdc54c4582d Mon Sep 17 00:00:00 2001
+From: Jerome Brunet <jbrunet@baylibre.com>
+Date: Mon, 1 Apr 2019 15:03:54 +0200
+Subject: ASoC: dpcm: skip missing substream while applying symmetry
+
+From: Jerome Brunet <jbrunet@baylibre.com>
+
+commit 6246f283d5e02ac757bd8d9bacde8fdc54c4582d upstream.
+
+If for any reason, the backend does not have the requested substream
+(like capture on a playback only backend), the BE will be skipped in
+dpcm_be_dai_startup().
+
+However, dpcm_apply_symmetry() does not skip those BE and will
+dereference the be_substream (NULL) pointer anyway.
+
+Like in dpcm_be_dai_startup(), just skip those BE.
+
+Fixes: 906c7d690c3b ("ASoC: dpcm: Apply symmetry for DPCM")
+Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-pcm.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+--- a/sound/soc/soc-pcm.c
++++ b/sound/soc/soc-pcm.c
+@@ -1895,10 +1895,15 @@ static int dpcm_apply_symmetry(struct sn
+ struct snd_soc_pcm_runtime *be = dpcm->be;
+ struct snd_pcm_substream *be_substream =
+ snd_soc_dpcm_get_substream(be, stream);
+- struct snd_soc_pcm_runtime *rtd = be_substream->private_data;
++ struct snd_soc_pcm_runtime *rtd;
+ struct snd_soc_dai *codec_dai;
+ int i;
+
++ /* A backend may not have the requested substream */
++ if (!be_substream)
++ continue;
++
++ rtd = be_substream->private_data;
+ if (rtd->dai_link->be_hw_params_fixup)
+ continue;
+
--- /dev/null
+From aee48a9ffa5a128bf4e433c57c39e015ea5b0208 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 30 Dec 2018 00:00:22 +0100
+Subject: ASoC: Intel: bytcr_rt5651: Revert "Fix DMIC map headsetmic mapping"
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit aee48a9ffa5a128bf4e433c57c39e015ea5b0208 upstream.
+
+Commit 37c7401e8c1f ("ASoC: Intel: bytcr_rt5651: Fix DMIC map
+headsetmic mapping"), changed the headsetmic mapping from IN3P to IN2P,
+this was based on the observation that all bytcr_rt5651 devices I have
+access to (7 devices) where all using IN3P for the headsetmic. This was
+an attempt to unifify / simplify the mapping, but it was wrong.
+
+None of those devices was actually using a digital internal mic. Now I've
+access to a Point of View TAB-P1006W-232 (v1.0) tabler, which does use a
+DMIC and it does have its headsetmic connected to IN2P, showing that the
+original mapping was correct, so this commit reverts the change changing
+the mapping back to IN2P.
+
+Fixes: 37c7401e8c1f ("ASoC: Intel: bytcr_rt5651: Fix DMIC map ... mapping")
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/intel/boards/bytcr_rt5651.c
++++ b/sound/soc/intel/boards/bytcr_rt5651.c
+@@ -266,7 +266,7 @@ static const struct snd_soc_dapm_route b
+ static const struct snd_soc_dapm_route byt_rt5651_intmic_dmic_map[] = {
+ {"DMIC L1", NULL, "Internal Mic"},
+ {"DMIC R1", NULL, "Internal Mic"},
+- {"IN3P", NULL, "Headset Mic"},
++ {"IN2P", NULL, "Headset Mic"},
+ };
+
+ static const struct snd_soc_dapm_route byt_rt5651_intmic_in1_map[] = {
--- /dev/null
+From 8af6c521cc236534093f9e744cfa004314bfe5ae Mon Sep 17 00:00:00 2001
+From: Jiada Wang <jiada_wang@mentor.com>
+Date: Mon, 25 Feb 2019 12:14:20 +0100
+Subject: ASoC: rsnd: gen: fix SSI9 4/5/6/7 busif related register address
+
+From: Jiada Wang <jiada_wang@mentor.com>
+
+commit 8af6c521cc236534093f9e744cfa004314bfe5ae upstream.
+
+Currently each SSI unit 's busif mode/adinr/dalign address is
+registered by: (in busif4 case)
+RSND_GEN_M_REG(SSI_BUSIF4_MODE, 0x500, 0x80)
+RSND_GEN_M_REG(SSI_BUSIF4_ADINR,0x504, 0x80)
+RSND_GEN_M_REG(SSI_BUSIF4_DALIGN, 0x508, 0x80)
+
+But according to user manual 41.1.4 Register Configuration
+ssi9 4/5/6/7 busif mode/adinr/dalign register address
+( SSI9-[4/5/6/7]_BUSIF_[MODE/ADINR/DALIGN] )
+are out of this rule.
+
+This patch registers ssi9 4/5/6/7 mode/adinr/dalign register
+as single register, and access these registers in case of
+SSI9 BUSIF 4/5/6/7.
+
+Fixes: commit 8c9d75033340 ("ASoC: rsnd: ssiu: Support BUSIF other than BUSIF0")
+Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
+Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
+Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/sh/rcar/gen.c | 24 ++++++++++++++++++++++++
+ sound/soc/sh/rcar/rsnd.h | 27 +++++++++++++++++++++++++++
+ sound/soc/sh/rcar/ssiu.c | 24 +++++++++++-------------
+ 3 files changed, 62 insertions(+), 13 deletions(-)
+
+--- a/sound/soc/sh/rcar/gen.c
++++ b/sound/soc/sh/rcar/gen.c
+@@ -255,6 +255,30 @@ static int rsnd_gen2_probe(struct rsnd_p
+ RSND_GEN_M_REG(SSI_MODE, 0xc, 0x80),
+ RSND_GEN_M_REG(SSI_CTRL, 0x10, 0x80),
+ RSND_GEN_M_REG(SSI_INT_ENABLE, 0x18, 0x80),
++ RSND_GEN_S_REG(SSI9_BUSIF0_MODE, 0x48c),
++ RSND_GEN_S_REG(SSI9_BUSIF0_ADINR, 0x484),
++ RSND_GEN_S_REG(SSI9_BUSIF0_DALIGN, 0x488),
++ RSND_GEN_S_REG(SSI9_BUSIF1_MODE, 0x4a0),
++ RSND_GEN_S_REG(SSI9_BUSIF1_ADINR, 0x4a4),
++ RSND_GEN_S_REG(SSI9_BUSIF1_DALIGN, 0x4a8),
++ RSND_GEN_S_REG(SSI9_BUSIF2_MODE, 0x4c0),
++ RSND_GEN_S_REG(SSI9_BUSIF2_ADINR, 0x4c4),
++ RSND_GEN_S_REG(SSI9_BUSIF2_DALIGN, 0x4c8),
++ RSND_GEN_S_REG(SSI9_BUSIF3_MODE, 0x4e0),
++ RSND_GEN_S_REG(SSI9_BUSIF3_ADINR, 0x4e4),
++ RSND_GEN_S_REG(SSI9_BUSIF3_DALIGN, 0x4e8),
++ RSND_GEN_S_REG(SSI9_BUSIF4_MODE, 0xd80),
++ RSND_GEN_S_REG(SSI9_BUSIF4_ADINR, 0xd84),
++ RSND_GEN_S_REG(SSI9_BUSIF4_DALIGN, 0xd88),
++ RSND_GEN_S_REG(SSI9_BUSIF5_MODE, 0xda0),
++ RSND_GEN_S_REG(SSI9_BUSIF5_ADINR, 0xda4),
++ RSND_GEN_S_REG(SSI9_BUSIF5_DALIGN, 0xda8),
++ RSND_GEN_S_REG(SSI9_BUSIF6_MODE, 0xdc0),
++ RSND_GEN_S_REG(SSI9_BUSIF6_ADINR, 0xdc4),
++ RSND_GEN_S_REG(SSI9_BUSIF6_DALIGN, 0xdc8),
++ RSND_GEN_S_REG(SSI9_BUSIF7_MODE, 0xde0),
++ RSND_GEN_S_REG(SSI9_BUSIF7_ADINR, 0xde4),
++ RSND_GEN_S_REG(SSI9_BUSIF7_DALIGN, 0xde8),
+ };
+
+ static const struct rsnd_regmap_field_conf conf_scu[] = {
+--- a/sound/soc/sh/rcar/rsnd.h
++++ b/sound/soc/sh/rcar/rsnd.h
+@@ -191,6 +191,30 @@ enum rsnd_reg {
+ SSI_SYS_STATUS7,
+ HDMI0_SEL,
+ HDMI1_SEL,
++ SSI9_BUSIF0_MODE,
++ SSI9_BUSIF1_MODE,
++ SSI9_BUSIF2_MODE,
++ SSI9_BUSIF3_MODE,
++ SSI9_BUSIF4_MODE,
++ SSI9_BUSIF5_MODE,
++ SSI9_BUSIF6_MODE,
++ SSI9_BUSIF7_MODE,
++ SSI9_BUSIF0_ADINR,
++ SSI9_BUSIF1_ADINR,
++ SSI9_BUSIF2_ADINR,
++ SSI9_BUSIF3_ADINR,
++ SSI9_BUSIF4_ADINR,
++ SSI9_BUSIF5_ADINR,
++ SSI9_BUSIF6_ADINR,
++ SSI9_BUSIF7_ADINR,
++ SSI9_BUSIF0_DALIGN,
++ SSI9_BUSIF1_DALIGN,
++ SSI9_BUSIF2_DALIGN,
++ SSI9_BUSIF3_DALIGN,
++ SSI9_BUSIF4_DALIGN,
++ SSI9_BUSIF5_DALIGN,
++ SSI9_BUSIF6_DALIGN,
++ SSI9_BUSIF7_DALIGN,
+
+ /* SSI */
+ SSICR,
+@@ -209,6 +233,9 @@ enum rsnd_reg {
+ #define SSI_BUSIF_MODE(i) (SSI_BUSIF0_MODE + (i))
+ #define SSI_BUSIF_ADINR(i) (SSI_BUSIF0_ADINR + (i))
+ #define SSI_BUSIF_DALIGN(i) (SSI_BUSIF0_DALIGN + (i))
++#define SSI9_BUSIF_MODE(i) (SSI9_BUSIF0_MODE + (i))
++#define SSI9_BUSIF_ADINR(i) (SSI9_BUSIF0_ADINR + (i))
++#define SSI9_BUSIF_DALIGN(i) (SSI9_BUSIF0_DALIGN + (i))
+ #define SSI_SYS_STATUS(i) (SSI_SYS_STATUS0 + (i))
+
+
+--- a/sound/soc/sh/rcar/ssiu.c
++++ b/sound/soc/sh/rcar/ssiu.c
+@@ -181,28 +181,26 @@ static int rsnd_ssiu_init_gen2(struct rs
+ if (rsnd_ssi_use_busif(io)) {
+ int id = rsnd_mod_id(mod);
+ int busif = rsnd_mod_id_sub(mod);
++ enum rsnd_reg adinr_reg, mode_reg, dalign_reg;
+
+- /*
+- * FIXME
+- *
+- * We can't support SSI9-4/5/6/7, because its address is
+- * out of calculation rule
+- */
+ if ((id == 9) && (busif >= 4)) {
+- struct device *dev = rsnd_priv_to_dev(priv);
+-
+- dev_err(dev, "This driver doesn't support SSI%d-%d, so far",
+- id, busif);
++ adinr_reg = SSI9_BUSIF_ADINR(busif);
++ mode_reg = SSI9_BUSIF_MODE(busif);
++ dalign_reg = SSI9_BUSIF_DALIGN(busif);
++ } else {
++ adinr_reg = SSI_BUSIF_ADINR(busif);
++ mode_reg = SSI_BUSIF_MODE(busif);
++ dalign_reg = SSI_BUSIF_DALIGN(busif);
+ }
+
+- rsnd_mod_write(mod, SSI_BUSIF_ADINR(busif),
++ rsnd_mod_write(mod, adinr_reg,
+ rsnd_get_adinr_bit(mod, io) |
+ (rsnd_io_is_play(io) ?
+ rsnd_runtime_channel_after_ctu(io) :
+ rsnd_runtime_channel_original(io)));
+- rsnd_mod_write(mod, SSI_BUSIF_MODE(busif),
++ rsnd_mod_write(mod, mode_reg,
+ rsnd_get_busif_shift(io, mod) | 1);
+- rsnd_mod_write(mod, SSI_BUSIF_DALIGN(busif),
++ rsnd_mod_write(mod, dalign_reg,
+ rsnd_get_dalign(mod, io));
+ }
+
--- /dev/null
+From 17d3069ccf06970e2db3f7cbf4335f207524279e Mon Sep 17 00:00:00 2001
+From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
+Date: Fri, 5 Apr 2019 11:19:11 +0200
+Subject: ASoC: stm32: fix sai driver name initialisation
+
+From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
+
+commit 17d3069ccf06970e2db3f7cbf4335f207524279e upstream.
+
+This patch fixes the sai driver structure overwriting which results in
+a cpu dai name equal NULL.
+
+Fixes: 3e086ed ("ASoC: stm32: add SAI driver")
+
+Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/stm/stm32_sai_sub.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/stm/stm32_sai_sub.c
++++ b/sound/soc/stm/stm32_sai_sub.c
+@@ -1394,7 +1394,6 @@ static int stm32_sai_sub_dais_init(struc
+ if (!sai->cpu_dai_drv)
+ return -ENOMEM;
+
+- sai->cpu_dai_drv->name = dev_name(&pdev->dev);
+ if (STM_SAI_IS_PLAYBACK(sai)) {
+ memcpy(sai->cpu_dai_drv, &stm32_sai_playback_dai,
+ sizeof(stm32_sai_playback_dai));
+@@ -1404,6 +1403,7 @@ static int stm32_sai_sub_dais_init(struc
+ sizeof(stm32_sai_capture_dai));
+ sai->cpu_dai_drv->capture.stream_name = sai->cpu_dai_drv->name;
+ }
++ sai->cpu_dai_drv->name = dev_name(&pdev->dev);
+
+ return 0;
+ }
--- /dev/null
+From 5fd812e6f5ae0376134234ceb70e8de541ccb10d Mon Sep 17 00:00:00 2001
+From: Chen-Yu Tsai <wens@csie.org>
+Date: Wed, 13 Feb 2019 15:04:56 +0800
+Subject: ASoC: sunxi: sun50i-codec-analog: Rename hpvcc regulator supply to cpvdd
+
+From: Chen-Yu Tsai <wens@csie.org>
+
+commit 5fd812e6f5ae0376134234ceb70e8de541ccb10d upstream.
+
+The A64 datasheet lists the supply rail for the headphone amp's charge
+pump as "CPVDD". cpvdd-supply is the name of the property for this power
+rail specified in the device tree bindings. "HPVCC" was the name used in
+the A33 datasheet for the same function.
+
+Rename the supply so it matches the datasheet, bindings, and the subject
+from the original commit.
+
+Fixes: ca0412a05756 ("ASoC: sunxi: sun50i-codec-analog: Add support for cpvdd regulator supply")
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/sunxi/sun50i-codec-analog.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/sunxi/sun50i-codec-analog.c
++++ b/sound/soc/sunxi/sun50i-codec-analog.c
+@@ -274,7 +274,7 @@ static const struct snd_soc_dapm_widget
+ * stream widgets at the card level.
+ */
+
+- SND_SOC_DAPM_REGULATOR_SUPPLY("hpvcc", 0, 0),
++ SND_SOC_DAPM_REGULATOR_SUPPLY("cpvdd", 0, 0),
+ SND_SOC_DAPM_MUX("Headphone Source Playback Route",
+ SND_SOC_NOPM, 0, 0, sun50i_codec_hp_src),
+ SND_SOC_DAPM_OUT_DRV("Headphone Amp", SUN50I_ADDA_HP_CTRL,
+@@ -362,7 +362,7 @@ static const struct snd_soc_dapm_route s
+ { "Headphone Source Playback Route", "Mixer", "Left Mixer" },
+ { "Headphone Source Playback Route", "Mixer", "Right Mixer" },
+ { "Headphone Amp", NULL, "Headphone Source Playback Route" },
+- { "Headphone Amp", NULL, "hpvcc" },
++ { "Headphone Amp", NULL, "cpvdd" },
+ { "HP", NULL, "Headphone Amp" },
+
+ /* Microphone Routes */
--- /dev/null
+From 639e5eb3c7d67e407f2a71fccd95323751398f6f Mon Sep 17 00:00:00 2001
+From: Charles Keepax <ckeepax@opensource.cirrus.com>
+Date: Tue, 19 Mar 2019 11:52:04 +0000
+Subject: ASoC: wm_adsp: Correct handling of compressed streams that restart
+
+From: Charles Keepax <ckeepax@opensource.cirrus.com>
+
+commit 639e5eb3c7d67e407f2a71fccd95323751398f6f upstream.
+
+Previously support was added to allow streams to be stopped and
+started again without the DSP being power cycled and this was done
+by clearing the buffer state in trigger start. Another supported
+use-case is using the DSP for a trigger event then opening the
+compressed stream later to receive the audio, unfortunately clearing
+the buffer state in trigger start destroys the data received
+from such a trigger. Correct this issue by moving the call to
+wm_adsp_buffer_clear to be in trigger stop instead.
+
+Fixes: 61fc060c40e6 ("ASoC: wm_adsp: Support streams which can start/stop with DSP active")
+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm_adsp.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/sound/soc/codecs/wm_adsp.c
++++ b/sound/soc/codecs/wm_adsp.c
+@@ -3443,8 +3443,6 @@ int wm_adsp_compr_trigger(struct snd_com
+ }
+ }
+
+- wm_adsp_buffer_clear(compr->buf);
+-
+ /* Trigger the IRQ at one fragment of data */
+ ret = wm_adsp_buffer_write(compr->buf,
+ HOST_BUFFER_FIELD(high_water_mark),
+@@ -3456,6 +3454,7 @@ int wm_adsp_compr_trigger(struct snd_com
+ }
+ break;
+ case SNDRV_PCM_TRIGGER_STOP:
++ wm_adsp_buffer_clear(compr->buf);
+ break;
+ default:
+ ret = -EINVAL;
--- /dev/null
+From b904cb8dff824b79233e82c078837627ebd52717 Mon Sep 17 00:00:00 2001
+From: Sean Christopherson <sean.j.christopherson@intel.com>
+Date: Thu, 25 Apr 2019 19:01:09 -0700
+Subject: KVM: lapic: Check for in-kernel LAPIC before deferencing apic pointer
+
+From: Sean Christopherson <sean.j.christopherson@intel.com>
+
+commit b904cb8dff824b79233e82c078837627ebd52717 upstream.
+
+...to avoid dereferencing a null pointer when querying the per-vCPU
+timer advance.
+
+Fixes: 39497d7660d98 ("KVM: lapic: Track lapic timer advance per vCPU")
+Reported-by: syzbot+f7e65445a40d3e0e4ebf@syzkaller.appspotmail.com
+Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
+Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kvm/lapic.c | 3 ---
+ arch/x86/kvm/x86.c | 3 ++-
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+--- a/arch/x86/kvm/lapic.c
++++ b/arch/x86/kvm/lapic.c
+@@ -1504,9 +1504,6 @@ void wait_lapic_expire(struct kvm_vcpu *
+ u32 timer_advance_ns = apic->lapic_timer.timer_advance_ns;
+ u64 guest_tsc, tsc_deadline, ns;
+
+- if (!lapic_in_kernel(vcpu))
+- return;
+-
+ if (apic->lapic_timer.expired_tscdeadline == 0)
+ return;
+
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -7886,7 +7886,8 @@ static int vcpu_enter_guest(struct kvm_v
+ }
+
+ trace_kvm_entry(vcpu->vcpu_id);
+- if (vcpu->arch.apic->lapic_timer.timer_advance_ns)
++ if (lapic_in_kernel(vcpu) &&
++ vcpu->arch.apic->lapic_timer.timer_advance_ns)
+ wait_lapic_expire(vcpu);
+ guest_enter_irqoff();
+
--- /dev/null
+From 9ce0a07a6f49822238fd4357c02e0dba060a43cc Mon Sep 17 00:00:00 2001
+From: Sean Christopherson <sean.j.christopherson@intel.com>
+Date: Fri, 25 Jan 2019 07:40:55 -0800
+Subject: KVM: nVMX: Remove a rogue "rax" clobber from nested_vmx_check_vmentry_hw()
+
+From: Sean Christopherson <sean.j.christopherson@intel.com>
+
+commit 9ce0a07a6f49822238fd4357c02e0dba060a43cc upstream.
+
+RAX is not touched by nested_vmx_check_vmentry_hw(), directly or
+indirectly (e.g. vmx_vmenter()). Remove it from the clobber list.
+
+Fixes: 52017608da33 ("KVM: nVMX: add option to perform early consistency checks via H/W")
+Reviewed-by: Jim Mattson <jmattson@google.com>
+Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kvm/vmx/nested.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/kvm/vmx/nested.c
++++ b/arch/x86/kvm/vmx/nested.c
+@@ -2793,7 +2793,7 @@ static int nested_vmx_check_vmentry_hw(s
+ [fail]"i"(offsetof(struct vcpu_vmx, fail)),
+ [host_rsp]"i"(offsetof(struct vcpu_vmx, host_rsp)),
+ [wordsize]"i"(sizeof(ulong))
+- : "rax", "cc", "memory"
++ : "cc", "memory"
+ );
+
+ preempt_enable();
--- /dev/null
+From d92935979adba274b1099e67b7f713f6d8413121 Mon Sep 17 00:00:00 2001
+From: Yu Zhang <yu.c.zhang@linux.intel.com>
+Date: Thu, 31 Jan 2019 11:26:39 +0800
+Subject: kvm: vmx: Fix typos in vmentry/vmexit control setting
+
+From: Yu Zhang <yu.c.zhang@linux.intel.com>
+
+commit d92935979adba274b1099e67b7f713f6d8413121 upstream.
+
+Previously, 'commit f99e3daf94ff ("KVM: x86: Add Intel PT
+virtualization work mode")' work mode' offered framework
+to support Intel PT virtualization. However, the patch has
+some typos in vmx_vmentry_ctrl() and vmx_vmexit_ctrl(), e.g.
+used wrong flags and wrong variable, which will cause the
+VM entry failure later.
+
+Fixes: 'commit f99e3daf94ff ("KVM: x86: Add Intel PT virtualization work mode")'
+Signed-off-by: Yu Zhang <yu.c.zhang@linux.intel.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kvm/vmx/vmx.h | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/kvm/vmx/vmx.h
++++ b/arch/x86/kvm/vmx/vmx.h
+@@ -444,7 +444,8 @@ static inline u32 vmx_vmentry_ctrl(void)
+ {
+ u32 vmentry_ctrl = vmcs_config.vmentry_ctrl;
+ if (pt_mode == PT_MODE_SYSTEM)
+- vmentry_ctrl &= ~(VM_EXIT_PT_CONCEAL_PIP | VM_EXIT_CLEAR_IA32_RTIT_CTL);
++ vmentry_ctrl &= ~(VM_ENTRY_PT_CONCEAL_PIP |
++ VM_ENTRY_LOAD_IA32_RTIT_CTL);
+ /* Loading of EFER and PERF_GLOBAL_CTRL are toggled dynamically */
+ return vmentry_ctrl &
+ ~(VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL | VM_ENTRY_LOAD_IA32_EFER);
+@@ -454,9 +455,10 @@ static inline u32 vmx_vmexit_ctrl(void)
+ {
+ u32 vmexit_ctrl = vmcs_config.vmexit_ctrl;
+ if (pt_mode == PT_MODE_SYSTEM)
+- vmexit_ctrl &= ~(VM_ENTRY_PT_CONCEAL_PIP | VM_ENTRY_LOAD_IA32_RTIT_CTL);
++ vmexit_ctrl &= ~(VM_EXIT_PT_CONCEAL_PIP |
++ VM_EXIT_CLEAR_IA32_RTIT_CTL);
+ /* Loading of EFER and PERF_GLOBAL_CTRL are toggled dynamically */
+- return vmcs_config.vmexit_ctrl &
++ return vmexit_ctrl &
+ ~(VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL | VM_EXIT_LOAD_IA32_EFER);
+ }
+
--- /dev/null
+From f3689e3f17f064fd4cd5f0cb01ae2395c94f39d9 Mon Sep 17 00:00:00 2001
+From: Sean Christopherson <sean.j.christopherson@intel.com>
+Date: Fri, 25 Jan 2019 07:40:52 -0800
+Subject: KVM: VMX: Save RSI to an unused output in the vCPU-run asm blob
+
+From: Sean Christopherson <sean.j.christopherson@intel.com>
+
+commit f3689e3f17f064fd4cd5f0cb01ae2395c94f39d9 upstream.
+
+RSI is clobbered by the vCPU-run asm blob, but it's not marked as such,
+probably because GCC doesn't let you mark inputs as clobbered. "Save"
+RSI to a dummy output so that GCC recognizes it as being clobbered.
+
+Fixes: 773e8a0425c9 ("x86/kvm: use Enlightened VMCS when running on Hyper-V")
+Reviewed-by: Jim Mattson <jmattson@google.com>
+Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kvm/vmx/vmx.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/kvm/vmx/vmx.c
++++ b/arch/x86/kvm/vmx/vmx.c
+@@ -6465,7 +6465,7 @@ static void __vmx_vcpu_run(struct kvm_vc
+ "xor %%edi, %%edi \n\t"
+ "xor %%ebp, %%ebp \n\t"
+ "pop %%" _ASM_BP "; pop %%" _ASM_DX " \n\t"
+- : ASM_CALL_CONSTRAINT
++ : ASM_CALL_CONSTRAINT, "=S"((int){0})
+ : "c"(vmx), "d"((unsigned long)HOST_RSP), "S"(evmcs_rsp),
+ [launched]"i"(offsetof(struct vcpu_vmx, __launched)),
+ [fail]"i"(offsetof(struct vcpu_vmx, fail)),
staging-iio-adt7316-fix-the-dac-write-calculation.patch
scsi-hisi_sas-fix-to-only-call-scsi_get_prot_op-for-non-null-scsi_cmnd.patch
scsi-rdma-srpt-fix-a-credit-leak-for-aborted-commands.patch
+asoc-intel-bytcr_rt5651-revert-fix-dmic-map-headsetmic-mapping.patch
+asoc-rsnd-gen-fix-ssi9-4-5-6-7-busif-related-register-address.patch
+asoc-sunxi-sun50i-codec-analog-rename-hpvcc-regulator-supply-to-cpvdd.patch
+asoc-wm_adsp-correct-handling-of-compressed-streams-that-restart.patch
+asoc-dpcm-skip-missing-substream-while-applying-symmetry.patch
+asoc-stm32-fix-sai-driver-name-initialisation.patch
+kvm-vmx-save-rsi-to-an-unused-output-in-the-vcpu-run-asm-blob.patch
+kvm-nvmx-remove-a-rogue-rax-clobber-from-nested_vmx_check_vmentry_hw.patch
+kvm-vmx-fix-typos-in-vmentry-vmexit-control-setting.patch
+kvm-lapic-check-for-in-kernel-lapic-before-deferencing-apic-pointer.patch