]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 May 2019 08:36:51 +0000 (10:36 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 May 2019 08:36:51 +0000 (10:36 +0200)
added patches:
asoc-dpcm-skip-missing-substream-while-applying-symmetry.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-stm32-fix-sai-driver-name-initialisation.patch
asoc-sunxi-sun50i-codec-analog-rename-hpvcc-regulator-supply-to-cpvdd.patch
asoc-wm_adsp-correct-handling-of-compressed-streams-that-restart.patch
kvm-lapic-check-for-in-kernel-lapic-before-deferencing-apic-pointer.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-vmx-save-rsi-to-an-unused-output-in-the-vcpu-run-asm-blob.patch

queue-5.0/asoc-dpcm-skip-missing-substream-while-applying-symmetry.patch [new file with mode: 0644]
queue-5.0/asoc-intel-bytcr_rt5651-revert-fix-dmic-map-headsetmic-mapping.patch [new file with mode: 0644]
queue-5.0/asoc-rsnd-gen-fix-ssi9-4-5-6-7-busif-related-register-address.patch [new file with mode: 0644]
queue-5.0/asoc-stm32-fix-sai-driver-name-initialisation.patch [new file with mode: 0644]
queue-5.0/asoc-sunxi-sun50i-codec-analog-rename-hpvcc-regulator-supply-to-cpvdd.patch [new file with mode: 0644]
queue-5.0/asoc-wm_adsp-correct-handling-of-compressed-streams-that-restart.patch [new file with mode: 0644]
queue-5.0/kvm-lapic-check-for-in-kernel-lapic-before-deferencing-apic-pointer.patch [new file with mode: 0644]
queue-5.0/kvm-nvmx-remove-a-rogue-rax-clobber-from-nested_vmx_check_vmentry_hw.patch [new file with mode: 0644]
queue-5.0/kvm-vmx-fix-typos-in-vmentry-vmexit-control-setting.patch [new file with mode: 0644]
queue-5.0/kvm-vmx-save-rsi-to-an-unused-output-in-the-vcpu-run-asm-blob.patch [new file with mode: 0644]
queue-5.0/series

diff --git a/queue-5.0/asoc-dpcm-skip-missing-substream-while-applying-symmetry.patch b/queue-5.0/asoc-dpcm-skip-missing-substream-while-applying-symmetry.patch
new file mode 100644 (file)
index 0000000..16875cb
--- /dev/null
@@ -0,0 +1,46 @@
+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;
diff --git a/queue-5.0/asoc-intel-bytcr_rt5651-revert-fix-dmic-map-headsetmic-mapping.patch b/queue-5.0/asoc-intel-bytcr_rt5651-revert-fix-dmic-map-headsetmic-mapping.patch
new file mode 100644 (file)
index 0000000..d7a1bc0
--- /dev/null
@@ -0,0 +1,42 @@
+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[] = {
diff --git a/queue-5.0/asoc-rsnd-gen-fix-ssi9-4-5-6-7-busif-related-register-address.patch b/queue-5.0/asoc-rsnd-gen-fix-ssi9-4-5-6-7-busif-related-register-address.patch
new file mode 100644 (file)
index 0000000..01afb1c
--- /dev/null
@@ -0,0 +1,155 @@
+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));
+       }
diff --git a/queue-5.0/asoc-stm32-fix-sai-driver-name-initialisation.patch b/queue-5.0/asoc-stm32-fix-sai-driver-name-initialisation.patch
new file mode 100644 (file)
index 0000000..1aa221f
--- /dev/null
@@ -0,0 +1,40 @@
+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;
+ }
diff --git a/queue-5.0/asoc-sunxi-sun50i-codec-analog-rename-hpvcc-regulator-supply-to-cpvdd.patch b/queue-5.0/asoc-sunxi-sun50i-codec-analog-rename-hpvcc-regulator-supply-to-cpvdd.patch
new file mode 100644 (file)
index 0000000..2b7d7ac
--- /dev/null
@@ -0,0 +1,46 @@
+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 */
diff --git a/queue-5.0/asoc-wm_adsp-correct-handling-of-compressed-streams-that-restart.patch b/queue-5.0/asoc-wm_adsp-correct-handling-of-compressed-streams-that-restart.patch
new file mode 100644 (file)
index 0000000..ed9f644
--- /dev/null
@@ -0,0 +1,46 @@
+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;
diff --git a/queue-5.0/kvm-lapic-check-for-in-kernel-lapic-before-deferencing-apic-pointer.patch b/queue-5.0/kvm-lapic-check-for-in-kernel-lapic-before-deferencing-apic-pointer.patch
new file mode 100644 (file)
index 0000000..d98d7bf
--- /dev/null
@@ -0,0 +1,48 @@
+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();
diff --git a/queue-5.0/kvm-nvmx-remove-a-rogue-rax-clobber-from-nested_vmx_check_vmentry_hw.patch b/queue-5.0/kvm-nvmx-remove-a-rogue-rax-clobber-from-nested_vmx_check_vmentry_hw.patch
new file mode 100644 (file)
index 0000000..0b7410b
--- /dev/null
@@ -0,0 +1,33 @@
+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();
diff --git a/queue-5.0/kvm-vmx-fix-typos-in-vmentry-vmexit-control-setting.patch b/queue-5.0/kvm-vmx-fix-typos-in-vmentry-vmexit-control-setting.patch
new file mode 100644 (file)
index 0000000..eb2dbbc
--- /dev/null
@@ -0,0 +1,50 @@
+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);
+ }
diff --git a/queue-5.0/kvm-vmx-save-rsi-to-an-unused-output-in-the-vcpu-run-asm-blob.patch b/queue-5.0/kvm-vmx-save-rsi-to-an-unused-output-in-the-vcpu-run-asm-blob.patch
new file mode 100644 (file)
index 0000000..1a78b72
--- /dev/null
@@ -0,0 +1,34 @@
+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)),
index d117baf449327eb1f08033d538553e32db475550..27c46d9c5abe2c5f1c998b83d529da5024eef7e3 100644 (file)
@@ -91,3 +91,13 @@ staging-iio-adt7316-fix-handling-of-dac-high-resolution-option.patch
 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