]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.14
authorSasha Levin <sashal@kernel.org>
Tue, 30 Mar 2021 21:59:21 +0000 (17:59 -0400)
committerSasha Levin <sashal@kernel.org>
Tue, 30 Mar 2021 21:59:21 +0000 (17:59 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
17 files changed:
queue-4.14/asoc-cs42l42-always-wait-at-least-3ms-after-reset.patch [new file with mode: 0644]
queue-4.14/asoc-cs42l42-fix-mixer-volume-control.patch [new file with mode: 0644]
queue-4.14/asoc-es8316-simplify-adc_pga_gain_tlv-table.patch [new file with mode: 0644]
queue-4.14/asoc-rt5640-fix-dac-and-adc-vol-tlv-values-being-off.patch [new file with mode: 0644]
queue-4.14/asoc-rt5651-fix-dac-and-adc-vol-tlv-values-being-off.patch [new file with mode: 0644]
queue-4.14/asoc-rt5659-update-mclk-rate-in-set_sysclk.patch [new file with mode: 0644]
queue-4.14/asoc-sgtl5000-set-dap_avc_ctrl-register-to-correct-d.patch [new file with mode: 0644]
queue-4.14/ext4-do-not-iput-inode-under-running-transaction-in-.patch [new file with mode: 0644]
queue-4.14/ext4-fix-bh-ref-count-on-error-paths.patch [new file with mode: 0644]
queue-4.14/powerpc-force-inlining-of-cpu_has_feature-to-avoid-b.patch [new file with mode: 0644]
queue-4.14/rpc-fix-null-dereference-on-kmalloc-failure.patch [new file with mode: 0644]
queue-4.14/scsi-qla2xxx-fix-broken-endif-placement.patch [new file with mode: 0644]
queue-4.14/scsi-st-fix-a-use-after-free-in-st_open.patch [new file with mode: 0644]
queue-4.14/series
queue-4.14/staging-comedi-cb_pcidas-fix-request_irq-warn.patch [new file with mode: 0644]
queue-4.14/staging-comedi-cb_pcidas64-fix-request_irq-warn.patch [new file with mode: 0644]
queue-4.14/vhost-fix-vhost_vq_reset.patch [new file with mode: 0644]

diff --git a/queue-4.14/asoc-cs42l42-always-wait-at-least-3ms-after-reset.patch b/queue-4.14/asoc-cs42l42-always-wait-at-least-3ms-after-reset.patch
new file mode 100644 (file)
index 0000000..cd7c5ee
--- /dev/null
@@ -0,0 +1,57 @@
+From e3448263b9ef4482d3af5a0b3143f6cb90bf4a9f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 5 Mar 2021 17:34:32 +0000
+Subject: ASoC: cs42l42: Always wait at least 3ms after reset
+
+From: Lucas Tanure <tanureal@opensource.cirrus.com>
+
+[ Upstream commit 19325cfea04446bc79b36bffd4978af15f46a00e ]
+
+This delay is part of the power-up sequence defined in the datasheet.
+A runtime_resume is a power-up so must also include the delay.
+
+Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20210305173442.195740-6-tanureal@opensource.cirrus.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/cs42l42.c | 3 ++-
+ sound/soc/codecs/cs42l42.h | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c
+index ec322fda3c18..39adb2fdd003 100644
+--- a/sound/soc/codecs/cs42l42.c
++++ b/sound/soc/codecs/cs42l42.c
+@@ -1809,7 +1809,7 @@ static int cs42l42_i2c_probe(struct i2c_client *i2c_client,
+               dev_dbg(&i2c_client->dev, "Found reset GPIO\n");
+               gpiod_set_value_cansleep(cs42l42->reset_gpio, 1);
+       }
+-      mdelay(3);
++      usleep_range(CS42L42_BOOT_TIME_US, CS42L42_BOOT_TIME_US * 2);
+       /* Request IRQ */
+       ret = devm_request_threaded_irq(&i2c_client->dev,
+@@ -1936,6 +1936,7 @@ static int cs42l42_runtime_resume(struct device *dev)
+       }
+       gpiod_set_value_cansleep(cs42l42->reset_gpio, 1);
++      usleep_range(CS42L42_BOOT_TIME_US, CS42L42_BOOT_TIME_US * 2);
+       regcache_cache_only(cs42l42->regmap, false);
+       regcache_sync(cs42l42->regmap);
+diff --git a/sound/soc/codecs/cs42l42.h b/sound/soc/codecs/cs42l42.h
+index d87a0a5322d5..3d5fa343db96 100644
+--- a/sound/soc/codecs/cs42l42.h
++++ b/sound/soc/codecs/cs42l42.h
+@@ -743,6 +743,7 @@
+ #define CS42L42_FRAC2_VAL(val)        (((val) & 0xff0000) >> 16)
+ #define CS42L42_NUM_SUPPLIES  5
++#define CS42L42_BOOT_TIME_US  3000
+ static const char *const cs42l42_supply_names[CS42L42_NUM_SUPPLIES] = {
+       "VA",
+-- 
+2.30.1
+
diff --git a/queue-4.14/asoc-cs42l42-fix-mixer-volume-control.patch b/queue-4.14/asoc-cs42l42-fix-mixer-volume-control.patch
new file mode 100644 (file)
index 0000000..3698e71
--- /dev/null
@@ -0,0 +1,44 @@
+From 9aa150d3d94065a3715ca8863b5250314e19fe9b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 5 Mar 2021 17:34:30 +0000
+Subject: ASoC: cs42l42: Fix mixer volume control
+
+From: Lucas Tanure <tanureal@opensource.cirrus.com>
+
+[ Upstream commit 72d904763ae6a8576e7ad034f9da4f0e3c44bf24 ]
+
+The minimum value is 0x3f (-63dB), which also is mute
+
+Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20210305173442.195740-4-tanureal@opensource.cirrus.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/cs42l42.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c
+index a2324a0e72ee..ec322fda3c18 100644
+--- a/sound/soc/codecs/cs42l42.c
++++ b/sound/soc/codecs/cs42l42.c
+@@ -405,7 +405,7 @@ static const struct regmap_config cs42l42_regmap = {
+ };
+ static DECLARE_TLV_DB_SCALE(adc_tlv, -9600, 100, false);
+-static DECLARE_TLV_DB_SCALE(mixer_tlv, -6200, 100, false);
++static DECLARE_TLV_DB_SCALE(mixer_tlv, -6300, 100, true);
+ static const char * const cs42l42_hpf_freq_text[] = {
+       "1.86Hz", "120Hz", "235Hz", "466Hz"
+@@ -462,7 +462,7 @@ static const struct snd_kcontrol_new cs42l42_snd_controls[] = {
+                               CS42L42_DAC_HPF_EN_SHIFT, true, false),
+       SOC_DOUBLE_R_TLV("Mixer Volume", CS42L42_MIXER_CHA_VOL,
+                        CS42L42_MIXER_CHB_VOL, CS42L42_MIXER_CH_VOL_SHIFT,
+-                              0x3e, 1, mixer_tlv)
++                              0x3f, 1, mixer_tlv)
+ };
+ static int cs42l42_hpdrv_evt(struct snd_soc_dapm_widget *w,
+-- 
+2.30.1
+
diff --git a/queue-4.14/asoc-es8316-simplify-adc_pga_gain_tlv-table.patch b/queue-4.14/asoc-es8316-simplify-adc_pga_gain_tlv-table.patch
new file mode 100644 (file)
index 0000000..2cbbb7e
--- /dev/null
@@ -0,0 +1,48 @@
+From f84c69ed12e84392d95e3478cf5021d1f70f5693 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 28 Feb 2021 17:04:41 +0100
+Subject: ASoC: es8316: Simplify adc_pga_gain_tlv table
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit bb18c678754ce1514100fb4c0bf6113b5af36c48 ]
+
+Most steps in this table are steps of 3dB (300 centi-dB), so we can
+simplify the table.
+
+This not only reduces the amount of space it takes inside the kernel,
+this also makes alsa-lib's mixer code actually accept the table, where
+as before this change alsa-lib saw the "ADC PGA Gain" control as a
+control without a dB scale.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20210228160441.241110-1-hdegoede@redhat.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/es8316.c | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/sound/soc/codecs/es8316.c b/sound/soc/codecs/es8316.c
+index 949dbdc0445e..0410f2e5183c 100644
+--- a/sound/soc/codecs/es8316.c
++++ b/sound/soc/codecs/es8316.c
+@@ -56,13 +56,8 @@ static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(adc_pga_gain_tlv,
+       1, 1, TLV_DB_SCALE_ITEM(0, 0, 0),
+       2, 2, TLV_DB_SCALE_ITEM(250, 0, 0),
+       3, 3, TLV_DB_SCALE_ITEM(450, 0, 0),
+-      4, 4, TLV_DB_SCALE_ITEM(700, 0, 0),
+-      5, 5, TLV_DB_SCALE_ITEM(1000, 0, 0),
+-      6, 6, TLV_DB_SCALE_ITEM(1300, 0, 0),
+-      7, 7, TLV_DB_SCALE_ITEM(1600, 0, 0),
+-      8, 8, TLV_DB_SCALE_ITEM(1800, 0, 0),
+-      9, 9, TLV_DB_SCALE_ITEM(2100, 0, 0),
+-      10, 10, TLV_DB_SCALE_ITEM(2400, 0, 0),
++      4, 7, TLV_DB_SCALE_ITEM(700, 300, 0),
++      8, 10, TLV_DB_SCALE_ITEM(1800, 300, 0),
+ );
+ static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(hpout_vol_tlv,
+-- 
+2.30.1
+
diff --git a/queue-4.14/asoc-rt5640-fix-dac-and-adc-vol-tlv-values-being-off.patch b/queue-4.14/asoc-rt5640-fix-dac-and-adc-vol-tlv-values-being-off.patch
new file mode 100644 (file)
index 0000000..3cfea9b
--- /dev/null
@@ -0,0 +1,54 @@
+From 55339fb8a21bc825d98a6443ceb96891fb86e224 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 26 Feb 2021 15:38:13 +0100
+Subject: ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor
+ of 10
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit cfa26ed1f9f885c2fd8f53ca492989d1e16d0199 ]
+
+The adc_vol_tlv volume-control has a range from -17.625 dB to +30 dB,
+not -176.25 dB to + 300 dB. This wrong scale is esp. a problem in userspace
+apps which translate the dB scale to a linear scale. With the logarithmic
+dB scale being of by a factor of 10 we loose all precision in the lower
+area of the range when apps translate things to a linear scale.
+
+E.g. the 0 dB default, which corresponds with a value of 47 of the
+0 - 127 range for the control, would be shown as 0/100 in alsa-mixer.
+
+Since the centi-dB values used in the TLV struct cannot represent the
+0.375 dB step size used by these controls, change the TLV definition
+for them to specify a min and max value instead of min + stepsize.
+
+Note this mirrors commit 3f31f7d9b540 ("ASoC: rt5670: Fix dac- and adc-
+vol-tlv values being off by a factor of 10") which made the exact same
+change to the rt5670 codec driver.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20210226143817.84287-2-hdegoede@redhat.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/rt5640.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c
+index 438fe52a12df..5af5dfc0fd46 100644
+--- a/sound/soc/codecs/rt5640.c
++++ b/sound/soc/codecs/rt5640.c
+@@ -341,9 +341,9 @@ static bool rt5640_readable_register(struct device *dev, unsigned int reg)
+ }
+ static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0);
+-static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0);
++static const DECLARE_TLV_DB_MINMAX(dac_vol_tlv, -6562, 0);
+ static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0);
+-static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0);
++static const DECLARE_TLV_DB_MINMAX(adc_vol_tlv, -1762, 3000);
+ static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);
+ /* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
+-- 
+2.30.1
+
diff --git a/queue-4.14/asoc-rt5651-fix-dac-and-adc-vol-tlv-values-being-off.patch b/queue-4.14/asoc-rt5651-fix-dac-and-adc-vol-tlv-values-being-off.patch
new file mode 100644 (file)
index 0000000..8ca044c
--- /dev/null
@@ -0,0 +1,54 @@
+From 97931aaaf846f92880730624bcdbaa19aa1147c2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 26 Feb 2021 15:38:14 +0100
+Subject: ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor
+ of 10
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit eee51df776bd6cac10a76b2779a9fdee3f622b2b ]
+
+The adc_vol_tlv volume-control has a range from -17.625 dB to +30 dB,
+not -176.25 dB to + 300 dB. This wrong scale is esp. a problem in userspace
+apps which translate the dB scale to a linear scale. With the logarithmic
+dB scale being of by a factor of 10 we loose all precision in the lower
+area of the range when apps translate things to a linear scale.
+
+E.g. the 0 dB default, which corresponds with a value of 47 of the
+0 - 127 range for the control, would be shown as 0/100 in alsa-mixer.
+
+Since the centi-dB values used in the TLV struct cannot represent the
+0.375 dB step size used by these controls, change the TLV definition
+for them to specify a min and max value instead of min + stepsize.
+
+Note this mirrors commit 3f31f7d9b540 ("ASoC: rt5670: Fix dac- and adc-
+vol-tlv values being off by a factor of 10") which made the exact same
+change to the rt5670 codec driver.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20210226143817.84287-3-hdegoede@redhat.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/rt5651.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
+index 57c2add323c4..38510fd06458 100644
+--- a/sound/soc/codecs/rt5651.c
++++ b/sound/soc/codecs/rt5651.c
+@@ -287,9 +287,9 @@ static bool rt5651_readable_register(struct device *dev, unsigned int reg)
+ }
+ static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0);
+-static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0);
++static const DECLARE_TLV_DB_MINMAX(dac_vol_tlv, -6562, 0);
+ static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0);
+-static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0);
++static const DECLARE_TLV_DB_MINMAX(adc_vol_tlv, -1762, 3000);
+ static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);
+ /* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
+-- 
+2.30.1
+
diff --git a/queue-4.14/asoc-rt5659-update-mclk-rate-in-set_sysclk.patch b/queue-4.14/asoc-rt5659-update-mclk-rate-in-set_sysclk.patch
new file mode 100644 (file)
index 0000000..f2b66ae
--- /dev/null
@@ -0,0 +1,49 @@
+From a60e1c2f550b0f3ef69fd329f1df0783a9c0fb88 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 15 Mar 2021 23:01:32 +0530
+Subject: ASoC: rt5659: Update MCLK rate in set_sysclk()
+
+From: Sameer Pujar <spujar@nvidia.com>
+
+[ Upstream commit dbf54a9534350d6aebbb34f5c1c606b81a4f35dd ]
+
+Simple-card/audio-graph-card drivers do not handle MCLK clock when it
+is specified in the codec device node. The expectation here is that,
+the codec should actually own up the MCLK clock and do necessary setup
+in the driver.
+
+Suggested-by: Mark Brown <broonie@kernel.org>
+Suggested-by: Michael Walle <michael@walle.cc>
+Signed-off-by: Sameer Pujar <spujar@nvidia.com>
+Link: https://lore.kernel.org/r/1615829492-8972-3-git-send-email-spujar@nvidia.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/rt5659.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/codecs/rt5659.c b/sound/soc/codecs/rt5659.c
+index fa66b11df8d4..ae626d57c1ad 100644
+--- a/sound/soc/codecs/rt5659.c
++++ b/sound/soc/codecs/rt5659.c
+@@ -3391,12 +3391,17 @@ static int rt5659_set_dai_sysclk(struct snd_soc_dai *dai,
+       struct snd_soc_codec *codec = dai->codec;
+       struct rt5659_priv *rt5659 = snd_soc_codec_get_drvdata(codec);
+       unsigned int reg_val = 0;
++      int ret;
+       if (freq == rt5659->sysclk && clk_id == rt5659->sysclk_src)
+               return 0;
+       switch (clk_id) {
+       case RT5659_SCLK_S_MCLK:
++              ret = clk_set_rate(rt5659->mclk, freq);
++              if (ret)
++                      return ret;
++
+               reg_val |= RT5659_SCLK_SRC_MCLK;
+               break;
+       case RT5659_SCLK_S_PLL1:
+-- 
+2.30.1
+
diff --git a/queue-4.14/asoc-sgtl5000-set-dap_avc_ctrl-register-to-correct-d.patch b/queue-4.14/asoc-sgtl5000-set-dap_avc_ctrl-register-to-correct-d.patch
new file mode 100644 (file)
index 0000000..bdd7362
--- /dev/null
@@ -0,0 +1,72 @@
+From 03ffce1c6bd2cfc05bed1aa56f474a7ab9ece56b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 19 Feb 2021 13:33:08 -0500
+Subject: ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on
+ probe
+
+From: Benjamin Rood <benjaminjrood@gmail.com>
+
+[ Upstream commit f86f58e3594fb0ab1993d833d3b9a2496f3c928c ]
+
+According to the SGTL5000 datasheet [1], the DAP_AVC_CTRL register has
+the following bit field definitions:
+
+| BITS  | FIELD       | RW | RESET | DEFINITION                        |
+| 15    | RSVD        | RO | 0x0   | Reserved                          |
+| 14    | RSVD        | RW | 0x1   | Reserved                          |
+| 13:12 | MAX_GAIN    | RW | 0x1   | Max Gain of AVC in expander mode  |
+| 11:10 | RSVD        | RO | 0x0   | Reserved                          |
+| 9:8   | LBI_RESP    | RW | 0x1   | Integrator Response               |
+| 7:6   | RSVD        | RO | 0x0   | Reserved                          |
+| 5     | HARD_LMT_EN | RW | 0x0   | Enable hard limiter mode          |
+| 4:1   | RSVD        | RO | 0x0   | Reserved                          |
+| 0     | EN          | RW | 0x0   | Enable/Disable AVC                |
+
+The original default value written to the DAP_AVC_CTRL register during
+sgtl5000_i2c_probe() was 0x0510.  This would incorrectly write values to
+bits 4 and 10, which are defined as RESERVED.  It would also not set
+bits 12 and 14 to their correct RESET values of 0x1, and instead set
+them to 0x0.  While the DAP_AVC module is effectively disabled because
+the EN bit is 0, this default value is still writing invalid values to
+registers that are marked as read-only and RESERVED as well as not
+setting bits 12 and 14 to their correct default values as defined by the
+datasheet.
+
+The correct value that should be written to the DAP_AVC_CTRL register is
+0x5100, which configures the register bits to the default values defined
+by the datasheet, and prevents any writes to bits defined as
+'read-only'.  Generally speaking, it is best practice to NOT attempt to
+write values to registers/bits defined as RESERVED, as it generally
+produces unwanted/undefined behavior, or errors.
+
+Also, all credit for this patch should go to my colleague Dan MacDonald
+<dmacdonald@curbellmedical.com> for finding this error in the first
+place.
+
+[1] https://www.nxp.com/docs/en/data-sheet/SGTL5000.pdf
+
+Signed-off-by: Benjamin Rood <benjaminjrood@gmail.com>
+Reviewed-by: Fabio Estevam <festevam@gmail.com>
+Link: https://lore.kernel.org/r/20210219183308.GA2117@ubuntu-dev
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/sgtl5000.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
+index d64cb28e8dc5..b7a0002d9872 100644
+--- a/sound/soc/codecs/sgtl5000.c
++++ b/sound/soc/codecs/sgtl5000.c
+@@ -75,7 +75,7 @@ static const struct reg_default sgtl5000_reg_defaults[] = {
+       { SGTL5000_DAP_EQ_BASS_BAND4,           0x002f },
+       { SGTL5000_DAP_MAIN_CHAN,               0x8000 },
+       { SGTL5000_DAP_MIX_CHAN,                0x0000 },
+-      { SGTL5000_DAP_AVC_CTRL,                0x0510 },
++      { SGTL5000_DAP_AVC_CTRL,                0x5100 },
+       { SGTL5000_DAP_AVC_THRESHOLD,           0x1473 },
+       { SGTL5000_DAP_AVC_ATTACK,              0x0028 },
+       { SGTL5000_DAP_AVC_DECAY,               0x0050 },
+-- 
+2.30.1
+
diff --git a/queue-4.14/ext4-do-not-iput-inode-under-running-transaction-in-.patch b/queue-4.14/ext4-do-not-iput-inode-under-running-transaction-in-.patch
new file mode 100644 (file)
index 0000000..ce621fd
--- /dev/null
@@ -0,0 +1,91 @@
+From af475e62a58dd7134a1b5bdc45c49267e3064e06 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 3 Mar 2021 21:17:03 +0800
+Subject: ext4: do not iput inode under running transaction in ext4_rename()
+
+From: zhangyi (F) <yi.zhang@huawei.com>
+
+[ Upstream commit 5dccdc5a1916d4266edd251f20bbbb113a5c495f ]
+
+In ext4_rename(), when RENAME_WHITEOUT failed to add new entry into
+directory, it ends up dropping new created whiteout inode under the
+running transaction. After commit <9b88f9fb0d2> ("ext4: Do not iput inode
+under running transaction"), we follow the assumptions that evict() does
+not get called from a transaction context but in ext4_rename() it breaks
+this suggestion. Although it's not a real problem, better to obey it, so
+this patch add inode to orphan list and stop transaction before final
+iput().
+
+Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
+Link: https://lore.kernel.org/r/20210303131703.330415-2-yi.zhang@huawei.com
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/ext4/namei.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
+index 647d4a8d6b68..b4ec5a41797b 100644
+--- a/fs/ext4/namei.c
++++ b/fs/ext4/namei.c
+@@ -3635,7 +3635,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
+        */
+       retval = -ENOENT;
+       if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino)
+-              goto end_rename;
++              goto release_bh;
+       if ((old.dir != new.dir) &&
+           ext4_encrypted_inode(new.dir) &&
+@@ -3649,7 +3649,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
+       if (IS_ERR(new.bh)) {
+               retval = PTR_ERR(new.bh);
+               new.bh = NULL;
+-              goto end_rename;
++              goto release_bh;
+       }
+       if (new.bh) {
+               if (!new.inode) {
+@@ -3666,15 +3666,13 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
+               handle = ext4_journal_start(old.dir, EXT4_HT_DIR, credits);
+               if (IS_ERR(handle)) {
+                       retval = PTR_ERR(handle);
+-                      handle = NULL;
+-                      goto end_rename;
++                      goto release_bh;
+               }
+       } else {
+               whiteout = ext4_whiteout_for_rename(&old, credits, &handle);
+               if (IS_ERR(whiteout)) {
+                       retval = PTR_ERR(whiteout);
+-                      whiteout = NULL;
+-                      goto end_rename;
++                      goto release_bh;
+               }
+       }
+@@ -3782,16 +3780,18 @@ end_rename:
+                       ext4_resetent(handle, &old,
+                                     old.inode->i_ino, old_file_type);
+                       drop_nlink(whiteout);
++                      ext4_orphan_add(handle, whiteout);
+               }
+               unlock_new_inode(whiteout);
++              ext4_journal_stop(handle);
+               iput(whiteout);
+-
++      } else {
++              ext4_journal_stop(handle);
+       }
++release_bh:
+       brelse(old.dir_bh);
+       brelse(old.bh);
+       brelse(new.bh);
+-      if (handle)
+-              ext4_journal_stop(handle);
+       return retval;
+ }
+-- 
+2.30.1
+
diff --git a/queue-4.14/ext4-fix-bh-ref-count-on-error-paths.patch b/queue-4.14/ext4-fix-bh-ref-count-on-error-paths.patch
new file mode 100644 (file)
index 0000000..a31ae20
--- /dev/null
@@ -0,0 +1,43 @@
+From 79c2323145c567016e3424197ff40a7dd18a1a14 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 2 Mar 2021 17:42:31 +0800
+Subject: ext4: fix bh ref count on error paths
+
+From: Zhaolong Zhang <zhangzl2013@126.com>
+
+[ Upstream commit c915fb80eaa6194fa9bd0a4487705cd5b0dda2f1 ]
+
+__ext4_journalled_writepage should drop bhs' ref count on error paths
+
+Signed-off-by: Zhaolong Zhang <zhangzl2013@126.com>
+Link: https://lore.kernel.org/r/1614678151-70481-1-git-send-email-zhangzl2013@126.com
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/ext4/inode.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
+index ad6a1282a5cd..9c07c8674b21 100644
+--- a/fs/ext4/inode.c
++++ b/fs/ext4/inode.c
+@@ -2071,13 +2071,13 @@ static int __ext4_journalled_writepage(struct page *page,
+       if (!ret)
+               ret = err;
+-      if (!ext4_has_inline_data(inode))
+-              ext4_walk_page_buffers(NULL, page_bufs, 0, len,
+-                                     NULL, bput_one);
+       ext4_set_inode_state(inode, EXT4_STATE_JDATA);
+ out:
+       unlock_page(page);
+ out_no_pagelock:
++      if (!inline_data && page_bufs)
++              ext4_walk_page_buffers(NULL, page_bufs, 0, len,
++                                     NULL, bput_one);
+       brelse(inode_bh);
+       return ret;
+ }
+-- 
+2.30.1
+
diff --git a/queue-4.14/powerpc-force-inlining-of-cpu_has_feature-to-avoid-b.patch b/queue-4.14/powerpc-force-inlining-of-cpu_has_feature-to-avoid-b.patch
new file mode 100644 (file)
index 0000000..20534e6
--- /dev/null
@@ -0,0 +1,58 @@
+From e03ff80d2f9233764eb373febb001acd1f443ae3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 10 Mar 2021 12:10:34 +0000
+Subject: powerpc: Force inlining of cpu_has_feature() to avoid build failure
+
+From: Christophe Leroy <christophe.leroy@csgroup.eu>
+
+[ Upstream commit eed5fae00593ab9d261a0c1ffc1bdb786a87a55a ]
+
+The code relies on constant folding of cpu_has_feature() based
+on possible and always true values as defined per
+CPU_FTRS_ALWAYS and CPU_FTRS_POSSIBLE.
+
+Build failure is encountered with for instance
+book3e_all_defconfig on kisskb in the AMDGPU driver which uses
+cpu_has_feature(CPU_FTR_VSX_COMP) to decide whether calling
+kernel_enable_vsx() or not.
+
+The failure is due to cpu_has_feature() not being inlined with
+that configuration with gcc 4.9.
+
+In the same way as commit acdad8fb4a15 ("powerpc: Force inlining of
+mmu_has_feature to fix build failure"), for inlining of
+cpu_has_feature().
+
+Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/b231dfa040ce4cc37f702f5c3a595fdeabfe0462.1615378209.git.christophe.leroy@csgroup.eu
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/powerpc/include/asm/cpu_has_feature.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/powerpc/include/asm/cpu_has_feature.h b/arch/powerpc/include/asm/cpu_has_feature.h
+index 7897d16e0990..727d4b321937 100644
+--- a/arch/powerpc/include/asm/cpu_has_feature.h
++++ b/arch/powerpc/include/asm/cpu_has_feature.h
+@@ -7,7 +7,7 @@
+ #include <linux/bug.h>
+ #include <asm/cputable.h>
+-static inline bool early_cpu_has_feature(unsigned long feature)
++static __always_inline bool early_cpu_has_feature(unsigned long feature)
+ {
+       return !!((CPU_FTRS_ALWAYS & feature) ||
+                 (CPU_FTRS_POSSIBLE & cur_cpu_spec->cpu_features & feature));
+@@ -46,7 +46,7 @@ static __always_inline bool cpu_has_feature(unsigned long feature)
+       return static_branch_likely(&cpu_feature_keys[i]);
+ }
+ #else
+-static inline bool cpu_has_feature(unsigned long feature)
++static __always_inline bool cpu_has_feature(unsigned long feature)
+ {
+       return early_cpu_has_feature(feature);
+ }
+-- 
+2.30.1
+
diff --git a/queue-4.14/rpc-fix-null-dereference-on-kmalloc-failure.patch b/queue-4.14/rpc-fix-null-dereference-on-kmalloc-failure.patch
new file mode 100644 (file)
index 0000000..eb43df0
--- /dev/null
@@ -0,0 +1,64 @@
+From e6d21bc22b2125c9c2db2339ad0cb6cbe1f11b68 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 2 Mar 2021 10:48:38 -0500
+Subject: rpc: fix NULL dereference on kmalloc failure
+
+From: J. Bruce Fields <bfields@redhat.com>
+
+[ Upstream commit 0ddc942394013f08992fc379ca04cffacbbe3dae ]
+
+I think this is unlikely but possible:
+
+svc_authenticate sets rq_authop and calls svcauth_gss_accept.  The
+kmalloc(sizeof(*svcdata), GFP_KERNEL) fails, leaving rq_auth_data NULL,
+and returning SVC_DENIED.
+
+This causes svc_process_common to go to err_bad_auth, and eventually
+call svc_authorise.  That calls ->release == svcauth_gss_release, which
+tries to dereference rq_auth_data.
+
+Signed-off-by: J. Bruce Fields <bfields@redhat.com>
+Link: https://lore.kernel.org/linux-nfs/3F1B347F-B809-478F-A1E9-0BE98E22B0F0@oracle.com/T/#t
+Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/sunrpc/auth_gss/svcauth_gss.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
+index 03043d5221e9..27dfd85830d8 100644
+--- a/net/sunrpc/auth_gss/svcauth_gss.c
++++ b/net/sunrpc/auth_gss/svcauth_gss.c
+@@ -1713,11 +1713,14 @@ static int
+ svcauth_gss_release(struct svc_rqst *rqstp)
+ {
+       struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data;
+-      struct rpc_gss_wire_cred *gc = &gsd->clcred;
++      struct rpc_gss_wire_cred *gc;
+       struct xdr_buf *resbuf = &rqstp->rq_res;
+       int stat = -EINVAL;
+       struct sunrpc_net *sn = net_generic(SVC_NET(rqstp), sunrpc_net_id);
++      if (!gsd)
++              goto out;
++      gc = &gsd->clcred;
+       if (gc->gc_proc != RPC_GSS_PROC_DATA)
+               goto out;
+       /* Release can be called twice, but we only wrap once. */
+@@ -1758,10 +1761,10 @@ out_err:
+       if (rqstp->rq_cred.cr_group_info)
+               put_group_info(rqstp->rq_cred.cr_group_info);
+       rqstp->rq_cred.cr_group_info = NULL;
+-      if (gsd->rsci)
++      if (gsd && gsd->rsci) {
+               cache_put(&gsd->rsci->h, sn->rsc_cache);
+-      gsd->rsci = NULL;
+-
++              gsd->rsci = NULL;
++      }
+       return stat;
+ }
+-- 
+2.30.1
+
diff --git a/queue-4.14/scsi-qla2xxx-fix-broken-endif-placement.patch b/queue-4.14/scsi-qla2xxx-fix-broken-endif-placement.patch
new file mode 100644 (file)
index 0000000..30c4ba6
--- /dev/null
@@ -0,0 +1,44 @@
+From a8150229bd81b09b209cff97b50ba51489c4eea7 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 14 Mar 2021 18:32:46 +0300
+Subject: scsi: qla2xxx: Fix broken #endif placement
+
+From: Alexey Dobriyan <adobriyan@gmail.com>
+
+[ Upstream commit 5999b9e5b1f8a2f5417b755130919b3ac96f5550 ]
+
+Only half of the file is under include guard because terminating #endif
+is placed too early.
+
+Link: https://lore.kernel.org/r/YE4snvoW1SuwcXAn@localhost.localdomain
+Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
+Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/qla2xxx/qla_target.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h
+index 511a31b359c7..f51293540a61 100644
+--- a/drivers/scsi/qla2xxx/qla_target.h
++++ b/drivers/scsi/qla2xxx/qla_target.h
+@@ -124,7 +124,6 @@
+       (min(1270, ((ql) > 0) ? (QLA_TGT_DATASEGS_PER_CMD_24XX + \
+               QLA_TGT_DATASEGS_PER_CONT_24XX*((ql) - 1)) : 0))
+ #endif
+-#endif
+ #define GET_TARGET_ID(ha, iocb) ((HAS_EXTENDED_IDS(ha))                       \
+                        ? le16_to_cpu((iocb)->u.isp2x.target.extended) \
+@@ -257,6 +256,7 @@ struct ctio_to_2xxx {
+ #ifndef CTIO_RET_TYPE
+ #define CTIO_RET_TYPE 0x17            /* CTIO return entry */
+ #define ATIO_TYPE7 0x06 /* Accept target I/O entry for 24xx */
++#endif
+ struct fcp_hdr {
+       uint8_t  r_ctl;
+-- 
+2.30.1
+
diff --git a/queue-4.14/scsi-st-fix-a-use-after-free-in-st_open.patch b/queue-4.14/scsi-st-fix-a-use-after-free-in-st_open.patch
new file mode 100644 (file)
index 0000000..420d63f
--- /dev/null
@@ -0,0 +1,42 @@
+From c11c07a3b0ce6119b3050f22b30bb9238db0a267 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 10 Mar 2021 22:46:36 -0800
+Subject: scsi: st: Fix a use after free in st_open()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
+
+[ Upstream commit c8c165dea4c8f5ad67b1240861e4f6c5395fa4ac ]
+
+In st_open(), if STp->in_use is true, STp will be freed by
+scsi_tape_put(). However, STp is still used by DEBC_printk() after. It is
+better to DEBC_printk() before scsi_tape_put().
+
+Link: https://lore.kernel.org/r/20210311064636.10522-1-lyl2019@mail.ustc.edu.cn
+Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi>
+Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/st.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
+index 94e402ed30f6..6497a6f12a6f 100644
+--- a/drivers/scsi/st.c
++++ b/drivers/scsi/st.c
+@@ -1268,8 +1268,8 @@ static int st_open(struct inode *inode, struct file *filp)
+       spin_lock(&st_use_lock);
+       if (STp->in_use) {
+               spin_unlock(&st_use_lock);
+-              scsi_tape_put(STp);
+               DEBC_printk(STp, "Device already in use.\n");
++              scsi_tape_put(STp);
+               return (-EBUSY);
+       }
+-- 
+2.30.1
+
index d63543cac898b8068457cc9711e942bccbaca0ce..0d16c1fd2ab0866ab4fc3df6103252a75d5c9bbc 100644 (file)
@@ -1,2 +1,18 @@
 selinux-vsock-set-sid-for-socket-returned-by-accept.patch
 ipv6-weaken-the-v4mapped-source-check.patch
+ext4-fix-bh-ref-count-on-error-paths.patch
+rpc-fix-null-dereference-on-kmalloc-failure.patch
+asoc-rt5640-fix-dac-and-adc-vol-tlv-values-being-off.patch
+asoc-rt5651-fix-dac-and-adc-vol-tlv-values-being-off.patch
+asoc-sgtl5000-set-dap_avc_ctrl-register-to-correct-d.patch
+asoc-es8316-simplify-adc_pga_gain_tlv-table.patch
+asoc-cs42l42-fix-mixer-volume-control.patch
+asoc-cs42l42-always-wait-at-least-3ms-after-reset.patch
+powerpc-force-inlining-of-cpu_has_feature-to-avoid-b.patch
+vhost-fix-vhost_vq_reset.patch
+scsi-st-fix-a-use-after-free-in-st_open.patch
+scsi-qla2xxx-fix-broken-endif-placement.patch
+staging-comedi-cb_pcidas-fix-request_irq-warn.patch
+staging-comedi-cb_pcidas64-fix-request_irq-warn.patch
+asoc-rt5659-update-mclk-rate-in-set_sysclk.patch
+ext4-do-not-iput-inode-under-running-transaction-in-.patch
diff --git a/queue-4.14/staging-comedi-cb_pcidas-fix-request_irq-warn.patch b/queue-4.14/staging-comedi-cb_pcidas-fix-request_irq-warn.patch
new file mode 100644 (file)
index 0000000..7233a74
--- /dev/null
@@ -0,0 +1,49 @@
+From 5ed28c0d2639717d987d7bb30133fafcaad4a15e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 15 Mar 2021 15:59:14 -0400
+Subject: staging: comedi: cb_pcidas: fix request_irq() warn
+
+From: Tong Zhang <ztong0001@gmail.com>
+
+[ Upstream commit 2e5848a3d86f03024ae096478bdb892ab3d79131 ]
+
+request_irq() wont accept a name which contains slash so we need to
+repalce it with something else -- otherwise it will trigger a warning
+and the entry in /proc/irq/ will not be created
+since the .name might be used by userspace and we don't want to break
+userspace, so we are changing the parameters passed to request_irq()
+
+[    1.630764] name 'pci-das1602/16'
+[    1.630950] WARNING: CPU: 0 PID: 181 at fs/proc/generic.c:180 __xlate_proc_name+0x93/0xb0
+[    1.634009] RIP: 0010:__xlate_proc_name+0x93/0xb0
+[    1.639441] Call Trace:
+[    1.639976]  proc_mkdir+0x18/0x20
+[    1.641946]  request_threaded_irq+0xfe/0x160
+[    1.642186]  cb_pcidas_auto_attach+0xf4/0x610 [cb_pcidas]
+
+Suggested-by: Ian Abbott <abbotti@mev.co.uk>
+Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Tong Zhang <ztong0001@gmail.com>
+Link: https://lore.kernel.org/r/20210315195914.4801-1-ztong0001@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/staging/comedi/drivers/cb_pcidas.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c
+index 3ea15bb0e56e..15b9cc8531f0 100644
+--- a/drivers/staging/comedi/drivers/cb_pcidas.c
++++ b/drivers/staging/comedi/drivers/cb_pcidas.c
+@@ -1290,7 +1290,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev,
+            devpriv->amcc + AMCC_OP_REG_INTCSR);
+       ret = request_irq(pcidev->irq, cb_pcidas_interrupt, IRQF_SHARED,
+-                        dev->board_name, dev);
++                        "cb_pcidas", dev);
+       if (ret) {
+               dev_dbg(dev->class_dev, "unable to allocate irq %d\n",
+                       pcidev->irq);
+-- 
+2.30.1
+
diff --git a/queue-4.14/staging-comedi-cb_pcidas64-fix-request_irq-warn.patch b/queue-4.14/staging-comedi-cb_pcidas64-fix-request_irq-warn.patch
new file mode 100644 (file)
index 0000000..2a63b32
--- /dev/null
@@ -0,0 +1,49 @@
+From 0547315abee36643f45f737109a1714c2a9cd485 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 15 Mar 2021 15:58:12 -0400
+Subject: staging: comedi: cb_pcidas64: fix request_irq() warn
+
+From: Tong Zhang <ztong0001@gmail.com>
+
+[ Upstream commit d2d106fe3badfc3bf0dd3899d1c3f210c7203eab ]
+
+request_irq() wont accept a name which contains slash so we need to
+repalce it with something else -- otherwise it will trigger a warning
+and the entry in /proc/irq/ will not be created
+since the .name might be used by userspace and we don't want to break
+userspace, so we are changing the parameters passed to request_irq()
+
+[    1.565966] name 'pci-das6402/16'
+[    1.566149] WARNING: CPU: 0 PID: 184 at fs/proc/generic.c:180 __xlate_proc_name+0x93/0xb0
+[    1.568923] RIP: 0010:__xlate_proc_name+0x93/0xb0
+[    1.574200] Call Trace:
+[    1.574722]  proc_mkdir+0x18/0x20
+[    1.576629]  request_threaded_irq+0xfe/0x160
+[    1.576859]  auto_attach+0x60a/0xc40 [cb_pcidas64]
+
+Suggested-by: Ian Abbott <abbotti@mev.co.uk>
+Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Tong Zhang <ztong0001@gmail.com>
+Link: https://lore.kernel.org/r/20210315195814.4692-1-ztong0001@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/staging/comedi/drivers/cb_pcidas64.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/staging/comedi/drivers/cb_pcidas64.c b/drivers/staging/comedi/drivers/cb_pcidas64.c
+index b761f000c1dc..8c6ac7f37599 100644
+--- a/drivers/staging/comedi/drivers/cb_pcidas64.c
++++ b/drivers/staging/comedi/drivers/cb_pcidas64.c
+@@ -4032,7 +4032,7 @@ static int auto_attach(struct comedi_device *dev,
+       init_stc_registers(dev);
+       retval = request_irq(pcidev->irq, handle_interrupt, IRQF_SHARED,
+-                           dev->board_name, dev);
++                           "cb_pcidas64", dev);
+       if (retval) {
+               dev_dbg(dev->class_dev, "unable to allocate irq %u\n",
+                       pcidev->irq);
+-- 
+2.30.1
+
diff --git a/queue-4.14/vhost-fix-vhost_vq_reset.patch b/queue-4.14/vhost-fix-vhost_vq_reset.patch
new file mode 100644 (file)
index 0000000..ff09c60
--- /dev/null
@@ -0,0 +1,49 @@
+From b4f5e6c7bee49463c162cfb39c991bedf536c629 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 12 Mar 2021 15:09:13 +0100
+Subject: vhost: Fix vhost_vq_reset()
+
+From: Laurent Vivier <lvivier@redhat.com>
+
+[ Upstream commit beb691e69f4dec7bfe8b81b509848acfd1f0dbf9 ]
+
+vhost_reset_is_le() is vhost_init_is_le(), and in the case of
+cross-endian legacy, vhost_init_is_le() depends on vq->user_be.
+
+vq->user_be is set by vhost_disable_cross_endian().
+
+But in vhost_vq_reset(), we have:
+
+    vhost_reset_is_le(vq);
+    vhost_disable_cross_endian(vq);
+
+And so user_be is used before being set.
+
+To fix that, reverse the lines order as there is no other dependency
+between them.
+
+Signed-off-by: Laurent Vivier <lvivier@redhat.com>
+Link: https://lore.kernel.org/r/20210312140913.788592-1-lvivier@redhat.com
+Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/vhost/vhost.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
+index 3d7bea15c57b..4b5590f4e98b 100644
+--- a/drivers/vhost/vhost.c
++++ b/drivers/vhost/vhost.c
+@@ -324,8 +324,8 @@ static void vhost_vq_reset(struct vhost_dev *dev,
+       vq->call_ctx = NULL;
+       vq->call = NULL;
+       vq->log_ctx = NULL;
+-      vhost_reset_is_le(vq);
+       vhost_disable_cross_endian(vq);
++      vhost_reset_is_le(vq);
+       vq->busyloop_timeout = 0;
+       vq->umem = NULL;
+       vq->iotlb = NULL;
+-- 
+2.30.1
+