Home Home > GIT Browse > stable-xen
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2018-08-16 07:02:39 +0200
committerKernel Build Daemon <kbuild@suse.de>2018-08-16 07:02:39 +0200
commitbb7931078a2e6f1c2e353e287c303be9f11d7f52 (patch)
tree45b25172c0c53c9b7d6d2745bbe8fe3b8b35bb8b
parent7edca9f6412f0e9172ad6930a636a92547d02e27 (diff)
parent5063094bee7ceda1aa4049a5fd98fe3437549ecb (diff)
Merge branch 'SLE15' into SLE15-AZURErpm-4.12.14-5.13
-rw-r--r--patches.arch/PM-devfreq-rk3399_dmc-Fix-duplicated-opp-table-on-re.patch101
-rw-r--r--patches.drivers/ALSA-snd-aoa-add-of_node_put-in-error-path43
-rw-r--r--patches.drivers/ASoC-dpcm-don-t-merge-format-from-invalid-codec-dai49
-rw-r--r--patches.drivers/ASoC-es7134-remove-64kHz-rate-from-the-supported-rat39
-rw-r--r--patches.drivers/ASoC-rsnd-cmd-Add-missing-newline-to-debug-message38
-rw-r--r--patches.drivers/ASoC-sirf-Fix-potential-NULL-pointer-dereference48
-rw-r--r--patches.drivers/ASoC-zte-Fix-incorrect-PCM-format-bit-usages43
-rw-r--r--patches.drivers/geneve-update-skb-dst-pmtu-on-tx-path.patch61
-rw-r--r--patches.drivers/i2c-imx-Fix-reinit_completion-use.patch52
-rw-r--r--patches.drivers/nvme-add-ANA-support.patch3
-rw-r--r--patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch3
-rw-r--r--patches.drivers/nvme-remove-nvme_req_needs_failover.patch3
-rw-r--r--patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch3
-rw-r--r--patches.drivers/nvme.h-add-ANA-definitions.patch3
-rw-r--r--patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch3
-rw-r--r--patches.drivers/nvmet-add-minimal-ANA-support.patch3
-rw-r--r--patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch3
-rw-r--r--patches.drivers/nvmet-support-configuring-ANA-groups.patch3
-rw-r--r--patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch3
-rw-r--r--patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch3
-rw-r--r--patches.drivers/pinctrl-cannonlake-Fix-community-ordering-for-H-vari47
-rw-r--r--patches.drivers/pinctrl-core-Return-selector-to-the-pinctrl-driver102
-rw-r--r--patches.drivers/pinctrl-freescale-off-by-one-in-imx1_pinconf_group_d43
-rw-r--r--patches.drivers/pinctrl-imx-off-by-one-in-imx_pinconf_group_dbg_show32
-rw-r--r--patches.drivers/pinctrl-pinmux-Return-selector-to-the-pinctrl-driver83
-rw-r--r--patches.drivers/pinctrl-qcom-spmi-gpio-Fix-pmic_gpio_config_get-to-b107
-rw-r--r--patches.drivers/pinctrl-single-Fix-group-and-function-selector-use222
-rw-r--r--patches.drivers/rtc-ensure-rtc_set_alarm-fails-when-alarms-are-not-s43
-rw-r--r--patches.drivers/spi-spi-fsl-dspi-Fix-imprecise-abort-on-VF500-during89
-rw-r--r--patches.fixes/0001-drm-cirrus-Use-drm_framebuffer_put-to-avoid-kernel-o.patch167
-rw-r--r--patches.fixes/docs-zh_CN-fix-location-of-oops-tracing.txt.patch42
-rw-r--r--patches.fixes/genirq-Fix-editing-error-in-a-comment.patch39
-rw-r--r--patches.fixes/genirq-Make-force-irq-threading-setup-more-robust.patch69
-rw-r--r--patches.fixes/gtp-Initialize-64-bit-per-cpu-stats-correctly.patch38
-rw-r--r--patches.fixes/kthread-tracing-Don-t-expose-half-written-comm-when-.patch85
-rw-r--r--patches.fixes/nvme-fixup-crash-on-failed-discovery.patch3
-rw-r--r--patches.fixes/nvme-use-hw-qid-in-trace-events.patch3
-rw-r--r--patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch3
-rw-r--r--patches.kabi/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch (renamed from patches.suse/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch)0
-rw-r--r--patches.kabi/KABI-hide-ftrace_enabled-in-paca.patch (renamed from patches.arch/KABI-hide-ftrace_enabled-in-paca.patch)0
-rw-r--r--patches.kabi/sched-numa-Remove-redundant-field-kabi.patch (renamed from patches.suse/sched-numa-Remove-redundant-field-kabi.patch)0
-rw-r--r--series.conf64
42 files changed, 1739 insertions, 49 deletions
diff --git a/patches.arch/PM-devfreq-rk3399_dmc-Fix-duplicated-opp-table-on-re.patch b/patches.arch/PM-devfreq-rk3399_dmc-Fix-duplicated-opp-table-on-re.patch
new file mode 100644
index 0000000000..32854c737e
--- /dev/null
+++ b/patches.arch/PM-devfreq-rk3399_dmc-Fix-duplicated-opp-table-on-re.patch
@@ -0,0 +1,101 @@
+From d6e98f3e6d825380b566dc59359917a116090154 Mon Sep 17 00:00:00 2001
+From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
+Date: Fri, 15 Jun 2018 17:12:17 +0200
+Subject: [PATCH] PM / devfreq: rk3399_dmc: Fix duplicated opp table on reload.
+Git-commit: d6e98f3e6d825380b566dc59359917a116090154
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+The opp table is not removed when the driver is unloaded neither when
+there is an error within probe, so if the driver is reloaded the opp
+core shows the following warning:
+
+ rk3399-dmc-freq dmc: _opp_add: duplicate OPPs detected. Existing: freq:
+ 200000000, volt: 900000, enabled: 1. New: freq: 200000000,
+ volt: 900000, enabled: 1
+ rk3399-dmc-freq dmc: _opp_add: duplicate OPPs detected. Existing: freq:
+ 400000000, volt: 900000, enabled: 1. New: freq: 400000000,
+ volt: 900000, enabled: 1
+ rk3399-dmc-freq dmc: _opp_add: duplicate OPPs detected. Existing: freq:
+ 666000000, volt: 900000, enabled: 1. New: freq: 666000000,
+ volt: 900000, enabled: 1
+ rk3399-dmc-freq dmc: _opp_add: duplicate OPPs detected. Existing: freq:
+ 800000000, volt: 900000, enabled: 1. New: freq: 800000000,
+ volt: 900000, enabled: 1
+ rk3399-dmc-freq dmc: _opp_add: duplicate OPPs detected. Existing: freq:
+ 928000000, volt: 900000, enabled: 1. New: freq: 928000000,
+ volt: 900000, enabled: 1
+
+This patch fixes the error path in the probe function and adds a .remove
+function to properly cleanup the opp table on unloading.
+
+Fixes: 5a893e31a636c (PM / devfreq: rockchip: add devfreq driver for rk3399 dmc)
+Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
+Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/devfreq/rk3399_dmc.c | 31 +++++++++++++++++++++++++++----
+ 1 file changed, 27 insertions(+), 4 deletions(-)
+
+--- a/drivers/devfreq/rk3399_dmc.c
++++ b/drivers/devfreq/rk3399_dmc.c
+@@ -420,8 +420,10 @@ static int rk3399_dmcfreq_probe(struct p
+ data->rate = clk_get_rate(data->dmc_clk);
+
+ opp = devfreq_recommended_opp(dev, &data->rate, 0);
+- if (IS_ERR(opp))
+- return PTR_ERR(opp);
++ if (IS_ERR(opp)) {
++ ret = PTR_ERR(opp);
++ goto err_free_opp;
++ }
+
+ data->rate = dev_pm_opp_get_freq(opp);
+ data->volt = dev_pm_opp_get_voltage(opp);
+@@ -433,14 +435,34 @@ static int rk3399_dmcfreq_probe(struct p
+ &rk3399_devfreq_dmc_profile,
+ "simple_ondemand",
+ &data->ondemand_data);
+- if (IS_ERR(data->devfreq))
+- return PTR_ERR(data->devfreq);
++ if (IS_ERR(data->devfreq)) {
++ ret = PTR_ERR(data->devfreq);
++ goto err_free_opp;
++ }
++
+ devm_devfreq_register_opp_notifier(dev, data->devfreq);
+
+ data->dev = dev;
+ platform_set_drvdata(pdev, data);
+
+ return 0;
++
++err_free_opp:
++ dev_pm_opp_of_remove_table(&pdev->dev);
++ return ret;
++}
++
++static int rk3399_dmcfreq_remove(struct platform_device *pdev)
++{
++ struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);
++
++ /*
++ * Before remove the opp table we need to unregister the opp notifier.
++ */
++ devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);
++ dev_pm_opp_of_remove_table(dmcfreq->dev);
++
++ return 0;
+ }
+
+ static const struct of_device_id rk3399dmc_devfreq_of_match[] = {
+@@ -451,6 +473,7 @@ MODULE_DEVICE_TABLE(of, rk3399dmc_devfre
+
+ static struct platform_driver rk3399_dmcfreq_driver = {
+ .probe = rk3399_dmcfreq_probe,
++ .remove = rk3399_dmcfreq_remove,
+ .driver = {
+ .name = "rk3399-dmc-freq",
+ .pm = &rk3399_dmcfreq_pm,
diff --git a/patches.drivers/ALSA-snd-aoa-add-of_node_put-in-error-path b/patches.drivers/ALSA-snd-aoa-add-of_node_put-in-error-path
new file mode 100644
index 0000000000..8592c92bbb
--- /dev/null
+++ b/patches.drivers/ALSA-snd-aoa-add-of_node_put-in-error-path
@@ -0,0 +1,43 @@
+From 222bce5eb88d1af656419db04bcd84b2419fb900 Mon Sep 17 00:00:00 2001
+From: Nicholas Mc Guire <hofrat@osadl.org>
+Date: Fri, 29 Jun 2018 19:07:42 +0200
+Subject: [PATCH] ALSA: snd-aoa: add of_node_put() in error path
+Git-commit: 222bce5eb88d1af656419db04bcd84b2419fb900
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+ Both calls to of_find_node_by_name() and of_get_next_child() return a
+node pointer with refcount incremented thus it must be explicidly
+decremented here after the last usage. As we are assured to have a
+refcounted np either from the initial
+of_find_node_by_name(NULL, name); or from the of_get_next_child(gpio, np)
+in the while loop if we reached the error code path below, an
+x of_node_put(np) is needed.
+
+Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
+Fixes: commit f3d9478b2ce4 ("[ALSA] snd-aoa: add snd-aoa")
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/aoa/core/gpio-feature.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/sound/aoa/core/gpio-feature.c b/sound/aoa/core/gpio-feature.c
+index 71960089e207..65557421fe0b 100644
+--- a/sound/aoa/core/gpio-feature.c
++++ b/sound/aoa/core/gpio-feature.c
+@@ -88,8 +88,10 @@ static struct device_node *get_gpio(char *name,
+ }
+
+ reg = of_get_property(np, "reg", NULL);
+- if (!reg)
++ if (!reg) {
++ of_node_put(np);
+ return NULL;
++ }
+
+ *gpioptr = *reg;
+
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-dpcm-don-t-merge-format-from-invalid-codec-dai b/patches.drivers/ASoC-dpcm-don-t-merge-format-from-invalid-codec-dai
new file mode 100644
index 0000000000..97f385d26c
--- /dev/null
+++ b/patches.drivers/ASoC-dpcm-don-t-merge-format-from-invalid-codec-dai
@@ -0,0 +1,49 @@
+From 4febced15ac8ddb9cf3e603edb111842e4863d9a Mon Sep 17 00:00:00 2001
+From: Jerome Brunet <jbrunet@baylibre.com>
+Date: Wed, 27 Jun 2018 17:36:38 +0200
+Subject: [PATCH] ASoC: dpcm: don't merge format from invalid codec dai
+Git-commit: 4febced15ac8ddb9cf3e603edb111842e4863d9a
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+When merging codec formats, dpcm_runtime_base_format() should skip
+the codecs which are not supporting the current stream direction.
+
+At the moment, if a BE link has more than one codec, and only one
+of these codecs has no capture DAI, it becomes impossible to start
+a capture stream because the merged format would be 0.
+
+Skipping invalid codec DAI solves the problem.
+
+Fixes: b073ed4e2126 ("ASoC: soc-pcm: DPCM cares BE format")
+Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Cc: stable@vger.kernel.org
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/soc/soc-pcm.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
+index 5e7ae47a9658..5feae9666822 100644
+--- a/sound/soc/soc-pcm.c
++++ b/sound/soc/soc-pcm.c
+@@ -1694,6 +1694,14 @@ static u64 dpcm_runtime_base_format(struct snd_pcm_substream *substream)
+ int i;
+
+ for (i = 0; i < be->num_codecs; i++) {
++ /*
++ * Skip CODECs which don't support the current stream
++ * type. See soc_pcm_init_runtime_hw() for more details
++ */
++ if (!snd_soc_dai_stream_valid(be->codec_dais[i],
++ stream))
++ continue;
++
+ codec_dai_drv = be->codec_dais[i]->driver;
+ if (stream == SNDRV_PCM_STREAM_PLAYBACK)
+ codec_stream = &codec_dai_drv->playback;
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-es7134-remove-64kHz-rate-from-the-supported-rat b/patches.drivers/ASoC-es7134-remove-64kHz-rate-from-the-supported-rat
new file mode 100644
index 0000000000..877c21de4a
--- /dev/null
+++ b/patches.drivers/ASoC-es7134-remove-64kHz-rate-from-the-supported-rat
@@ -0,0 +1,39 @@
+From 5650729f9a1bbf65b57139d855dabe0a7e6cb494 Mon Sep 17 00:00:00 2001
+From: Jerome Brunet <jbrunet@baylibre.com>
+Date: Fri, 29 Jun 2018 17:09:20 +0200
+Subject: [PATCH] ASoC: es7134: remove 64kHz rate from the supported rates
+Git-commit: 5650729f9a1bbf65b57139d855dabe0a7e6cb494
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+64Khz is actually not supported by the es7134 according to the datasheet
+
+Fixes: 9000b59d7a12 ("ASoC: es7134: add es7134 DAC driver")
+Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/soc/codecs/es7134.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/es7134.c b/sound/soc/codecs/es7134.c
+index 58515bb1a303..2fbb49f5b278 100644
+--- a/sound/soc/codecs/es7134.c
++++ b/sound/soc/codecs/es7134.c
+@@ -48,7 +48,11 @@ static struct snd_soc_dai_driver es7134_dai = {
+ .stream_name = "Playback",
+ .channels_min = 2,
+ .channels_max = 2,
+- .rates = SNDRV_PCM_RATE_8000_192000,
++ .rates = (SNDRV_PCM_RATE_8000_48000 |
++ SNDRV_PCM_RATE_88200 |
++ SNDRV_PCM_RATE_96000 |
++ SNDRV_PCM_RATE_176400 |
++ SNDRV_PCM_RATE_192000),
+ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
+ SNDRV_PCM_FMTBIT_S18_3LE |
+ SNDRV_PCM_FMTBIT_S20_3LE |
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-rsnd-cmd-Add-missing-newline-to-debug-message b/patches.drivers/ASoC-rsnd-cmd-Add-missing-newline-to-debug-message
new file mode 100644
index 0000000000..562ea8f55f
--- /dev/null
+++ b/patches.drivers/ASoC-rsnd-cmd-Add-missing-newline-to-debug-message
@@ -0,0 +1,38 @@
+From 74b37e299f038c910dc728d736e3f071ba0ead2a Mon Sep 17 00:00:00 2001
+From: Andrew Gabbasov <andrew_gabbasov@mentor.com>
+Date: Thu, 5 Jul 2018 11:20:04 +0900
+Subject: [PATCH] ASoC: rsnd: cmd: Add missing newline to debug message
+Git-commit: 74b37e299f038c910dc728d736e3f071ba0ead2a
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+To comply with the style of all kernel messages, add newline
+to the end of every message.
+
+Fixes: 70fb10529f61 ("ASoC: rsnd: add MIX (Mixer) support")
+Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
+Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
+Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/soc/sh/rcar/cmd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/sh/rcar/cmd.c b/sound/soc/sh/rcar/cmd.c
+index d8043ad33540..cc191cd5fb82 100644
+--- a/sound/soc/sh/rcar/cmd.c
++++ b/sound/soc/sh/rcar/cmd.c
+@@ -86,7 +86,7 @@ static int rsnd_cmd_init(struct rsnd_mod *mod,
+ cmd_case[rsnd_mod_id(src)] << 16;
+ }
+
+- dev_dbg(dev, "ctu/mix path = 0x%08x", data);
++ dev_dbg(dev, "ctu/mix path = 0x%08x\n", data);
+
+ rsnd_mod_write(mod, CMD_ROUTE_SLCT, data);
+ rsnd_mod_write(mod, CMD_BUSIF_MODE, rsnd_get_busif_shift(io, mod) | 1);
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-sirf-Fix-potential-NULL-pointer-dereference b/patches.drivers/ASoC-sirf-Fix-potential-NULL-pointer-dereference
new file mode 100644
index 0000000000..2f1f6daea7
--- /dev/null
+++ b/patches.drivers/ASoC-sirf-Fix-potential-NULL-pointer-dereference
@@ -0,0 +1,48 @@
+From ae1c696a480c67c45fb23b35162183f72c6be0e1 Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Thu, 26 Jul 2018 15:49:10 -0500
+Subject: [PATCH] ASoC: sirf: Fix potential NULL pointer dereference
+Git-commit: ae1c696a480c67c45fb23b35162183f72c6be0e1
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+There is a potential execution path in which function
+platform_get_resource() returns NULL. If this happens,
+we will end up having a NULL pointer dereference.
+
+Fix this by replacing devm_ioremap with devm_ioremap_resource,
+which has the NULL check and the memory region request.
+
+This code was detected with the help of Coccinelle.
+
+Cc: stable@vger.kernel.org
+Fixes: 2bd8d1d5cf89 ("ASoC: sirf: Add audio usp interface driver")
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/soc/sirf/sirf-usp.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sirf/sirf-usp.c b/sound/soc/sirf/sirf-usp.c
+index 77e7dcf969d0..d70fcd4a1adf 100644
+--- a/sound/soc/sirf/sirf-usp.c
++++ b/sound/soc/sirf/sirf-usp.c
+@@ -370,10 +370,9 @@ static int sirf_usp_pcm_probe(struct platform_device *pdev)
+ platform_set_drvdata(pdev, usp);
+
+ mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+- base = devm_ioremap(&pdev->dev, mem_res->start,
+- resource_size(mem_res));
+- if (base == NULL)
+- return -ENOMEM;
++ base = devm_ioremap_resource(&pdev->dev, mem_res);
++ if (IS_ERR(base))
++ return PTR_ERR(base);
+ usp->regmap = devm_regmap_init_mmio(&pdev->dev, base,
+ &sirf_usp_regmap_config);
+ if (IS_ERR(usp->regmap))
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-zte-Fix-incorrect-PCM-format-bit-usages b/patches.drivers/ASoC-zte-Fix-incorrect-PCM-format-bit-usages
new file mode 100644
index 0000000000..4180edda6b
--- /dev/null
+++ b/patches.drivers/ASoC-zte-Fix-incorrect-PCM-format-bit-usages
@@ -0,0 +1,43 @@
+From c889a45d229938a94b50aadb819def8bb11a6a54 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 25 Jul 2018 22:40:49 +0200
+Subject: [PATCH] ASoC: zte: Fix incorrect PCM format bit usages
+Git-commit: c889a45d229938a94b50aadb819def8bb11a6a54
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+zx-tdm driver sets the DAI driver definitions with the format bits
+wrongly set with SNDRV_PCM_FORMAT_*, instead of SNDRV_PCM_FMTBIT_*.
+
+This patch corrects the definitions.
+
+Spotted by a sparse warning:
+ sound/soc/zte/zx-tdm.c:363:35: warning: restricted snd_pcm_format_t degrades to integer
+
+Fixes: 870e0ddc4345 ("ASoC: zx-tdm: add zte's tdm controller driver")
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+---
+ sound/soc/zte/zx-tdm.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/zte/zx-tdm.c b/sound/soc/zte/zx-tdm.c
+index dc955272f58b..389272eeba9a 100644
+--- a/sound/soc/zte/zx-tdm.c
++++ b/sound/soc/zte/zx-tdm.c
+@@ -144,8 +144,8 @@ static void zx_tdm_rx_dma_en(struct zx_tdm_info *tdm, bool on)
+ #define ZX_TDM_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000)
+
+ #define ZX_TDM_FMTBIT \
+- (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_MU_LAW | \
+- SNDRV_PCM_FORMAT_A_LAW)
++ (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_MU_LAW | \
++ SNDRV_PCM_FMTBIT_A_LAW)
+
+ static int zx_tdm_dai_probe(struct snd_soc_dai *dai)
+ {
+--
+2.18.0
+
diff --git a/patches.drivers/geneve-update-skb-dst-pmtu-on-tx-path.patch b/patches.drivers/geneve-update-skb-dst-pmtu-on-tx-path.patch
new file mode 100644
index 0000000000..2a7bdf2d59
--- /dev/null
+++ b/patches.drivers/geneve-update-skb-dst-pmtu-on-tx-path.patch
@@ -0,0 +1,61 @@
+From 52a589d51f1008f62569bf89e95b26221ee76690 Mon Sep 17 00:00:00 2001
+From: Xin Long <lucien.xin@gmail.com>
+Date: Mon, 25 Dec 2017 14:43:58 +0800
+Subject: [PATCH] geneve: update skb dst pmtu on tx path
+Git-commit: 52a589d51f1008f62569bf89e95b26221ee76690
+Patch-mainline: v4.15-rc8
+References: bsc#1051510
+
+Commit a93bf0ff4490 ("vxlan: update skb dst pmtu on tx path") has fixed
+a performance issue caused by the change of lower dev's mtu for vxlan.
+
+The same thing needs to be done for geneve as well.
+
+Note that geneve cannot adjust it's mtu according to lower dev's mtu
+when creating it. The performance is very low later when netperfing
+over it without fixing the mtu manually. This patch could also avoid
+this issue.
+
+Signed-off-by: Xin Long <lucien.xin@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/geneve.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
+index b718a02a6bb6..0a48b3073d3d 100644
+--- a/drivers/net/geneve.c
++++ b/drivers/net/geneve.c
+@@ -825,6 +825,13 @@ static int geneve_xmit_skb(struct sk_buff *skb, struct net_device *dev,
+ if (IS_ERR(rt))
+ return PTR_ERR(rt);
+
++ if (skb_dst(skb)) {
++ int mtu = dst_mtu(&rt->dst) - sizeof(struct iphdr) -
++ GENEVE_BASE_HLEN - info->options_len - 14;
++
++ skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);
++ }
++
+ sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
+ if (geneve->collect_md) {
+ tos = ip_tunnel_ecn_encap(key->tos, ip_hdr(skb), skb);
+@@ -864,6 +871,13 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev,
+ if (IS_ERR(dst))
+ return PTR_ERR(dst);
+
++ if (skb_dst(skb)) {
++ int mtu = dst_mtu(dst) - sizeof(struct ipv6hdr) -
++ GENEVE_BASE_HLEN - info->options_len - 14;
++
++ skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);
++ }
++
+ sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
+ if (geneve->collect_md) {
+ prio = ip_tunnel_ecn_encap(key->tos, ip_hdr(skb), skb);
+--
+2.18.0
+
diff --git a/patches.drivers/i2c-imx-Fix-reinit_completion-use.patch b/patches.drivers/i2c-imx-Fix-reinit_completion-use.patch
new file mode 100644
index 0000000000..57d1ac449c
--- /dev/null
+++ b/patches.drivers/i2c-imx-Fix-reinit_completion-use.patch
@@ -0,0 +1,52 @@
+From 9f9e3e0d4dd3338b3f3dde080789f71901e1e4ff Mon Sep 17 00:00:00 2001
+From: Esben Haabendal <eha@deif.com>
+Date: Mon, 9 Jul 2018 11:43:01 +0200
+Subject: [PATCH] i2c: imx: Fix reinit_completion() use
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 9f9e3e0d4dd3338b3f3dde080789f71901e1e4ff
+Patch-mainline: v4.18-rc7
+References: bsc#1051510
+
+Make sure to call reinit_completion() before dma is started to avoid race
+condition where reinit_completion() is called after complete() and before
+wait_for_completion_timeout().
+
+Signed-off-by: Esben Haabendal <eha@deif.com>
+Fixes: ce1a78840ff7 ("i2c: imx: add DMA support for freescale i2c driver")
+Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+Cc: stable@kernel.org
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/i2c/busses/i2c-imx.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/i2c/busses/i2c-imx.c
++++ b/drivers/i2c/busses/i2c-imx.c
+@@ -376,6 +376,7 @@ static int i2c_imx_dma_xfer(struct imx_i
+ goto err_desc;
+ }
+
++ reinit_completion(&dma->cmd_complete);
+ txdesc->callback = i2c_imx_dma_callback;
+ txdesc->callback_param = i2c_imx;
+ if (dma_submit_error(dmaengine_submit(txdesc))) {
+@@ -619,7 +620,6 @@ static int i2c_imx_dma_write(struct imx_
+ * The first byte must be transmitted by the CPU.
+ */
+ imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR);
+- reinit_completion(&i2c_imx->dma->cmd_complete);
+ time_left = wait_for_completion_timeout(
+ &i2c_imx->dma->cmd_complete,
+ msecs_to_jiffies(DMA_TIMEOUT));
+@@ -678,7 +678,6 @@ static int i2c_imx_dma_read(struct imx_i
+ if (result)
+ return result;
+
+- reinit_completion(&i2c_imx->dma->cmd_complete);
+ time_left = wait_for_completion_timeout(
+ &i2c_imx->dma->cmd_complete,
+ msecs_to_jiffies(DMA_TIMEOUT));
diff --git a/patches.drivers/nvme-add-ANA-support.patch b/patches.drivers/nvme-add-ANA-support.patch
index def86f40a3..506c7090b6 100644
--- a/patches.drivers/nvme-add-ANA-support.patch
+++ b/patches.drivers/nvme-add-ANA-support.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Mon, 14 May 2018 08:48:54 +0200
Subject: [PATCH] nvme: add ANA support
Git-commit: 0d0b660f214dc4905db7b6bc998bad0c16dfb1ba
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
Add support for Asynchronous Namespace Access as specified in NVMe 1.3
diff --git a/patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch b/patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch
index c043026e70..0a17be9f8e 100644
--- a/patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch
+++ b/patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch
@@ -3,8 +3,7 @@ Date: Tue, 12 Jun 2018 16:28:24 -0700
Subject: [PATCH] nvme: move init of keep_alive work item to controller
initialization
Git-commit: 230f1f9e04e2abee34b1478b3bcc2d947b7cc2a0
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1098706
diff --git a/patches.drivers/nvme-remove-nvme_req_needs_failover.patch b/patches.drivers/nvme-remove-nvme_req_needs_failover.patch
index b651aa3c6b..8b97c6a7ef 100644
--- a/patches.drivers/nvme-remove-nvme_req_needs_failover.patch
+++ b/patches.drivers/nvme-remove-nvme_req_needs_failover.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Mon, 4 Jun 2018 08:43:00 +0200
Subject: [PATCH] nvme: remove nvme_req_needs_failover
Git-commit: 8decf5d5b9f3f72b802a017b0b035f7db0592acf
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
Now that we just call out to blk_path_error there isn't really any good
diff --git a/patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch b/patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch
index facc1a3780..b45ee18db2 100644
--- a/patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch
+++ b/patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Wed, 6 Jun 2018 14:39:00 +0200
Subject: [PATCH] nvme: simplify the API for getting log pages
Git-commit: 0e98719b0e4b48b61965e1d1cba037c2005d01d7
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
Merge nvme_get_log and nvme_get_log_ext into a single helper, which takes
diff --git a/patches.drivers/nvme.h-add-ANA-definitions.patch b/patches.drivers/nvme.h-add-ANA-definitions.patch
index e29e7cf125..5faaf7414d 100644
--- a/patches.drivers/nvme.h-add-ANA-definitions.patch
+++ b/patches.drivers/nvme.h-add-ANA-definitions.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Sun, 13 May 2018 18:53:57 +0200
Subject: [PATCH] nvme.h: add ANA definitions
Git-commit: 1a37621658fe06b10cf8bac02c32304d2a1c888c
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
Add various defintions from NVMe 1.3 TP 4004.
diff --git a/patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch b/patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch
index fc6140e17a..331d910ce2 100644
--- a/patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch
+++ b/patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Sat, 12 May 2018 18:18:12 +0200
Subject: [PATCH] nvme.h: add support for the log specific field
Git-commit: 9b89bc3857a6c0dfda18ddae2a42c114ecc32753
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
NVMe 1.3 added a new log specific field to the get log page CQ
diff --git a/patches.drivers/nvmet-add-minimal-ANA-support.patch b/patches.drivers/nvmet-add-minimal-ANA-support.patch
index 81365fb6d5..550eea62f3 100644
--- a/patches.drivers/nvmet-add-minimal-ANA-support.patch
+++ b/patches.drivers/nvmet-add-minimal-ANA-support.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Thu, 19 Jul 2018 07:35:20 -0700
Subject: [PATCH] nvmet: add minimal ANA support
Git-commit: 72efd25dcf4f6310e9e6fa85620aa443b27c23fe
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
Add support for Asynchronous Namespace Access as specified in NVMe 1.3
diff --git a/patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch b/patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch
index f3a2b4af73..5d44fb5654 100644
--- a/patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch
+++ b/patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Thu, 7 Jun 2018 15:09:50 +0200
Subject: [PATCH] nvmet: keep a port pointer in nvmet_ctrl
Git-commit: 4ee43280488b0f6cbd74702725a32f47d03d690b
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
This will be needed for the ANA AEN code.
diff --git a/patches.drivers/nvmet-support-configuring-ANA-groups.patch b/patches.drivers/nvmet-support-configuring-ANA-groups.patch
index 56434c1304..16b6d43acd 100644
--- a/patches.drivers/nvmet-support-configuring-ANA-groups.patch
+++ b/patches.drivers/nvmet-support-configuring-ANA-groups.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Fri, 1 Jun 2018 08:59:25 +0200
Subject: [PATCH] nvmet: support configuring ANA groups
Git-commit: 62ac0d32f74ea511d5813be728dc589d03f866a3
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
Allow creating non-default ANA groups (group ID > 1). Groups are created
diff --git a/patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch b/patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch
index d33714404d..bea4719773 100644
--- a/patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch
+++ b/patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch
@@ -2,8 +2,7 @@ From: Christoph Hellwig <hch@lst.de>
Date: Sun, 13 May 2018 19:00:13 +0200
Subject: [PATCH] nvmet: track and limit the number of namespaces per subsystem
Git-commit: 793c7cfce02ce88b7bd67d43834c052d16c096e3
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: 1054245
TP 4004 introduces a new 'Maximum Number of Allocated Namespaces' field
diff --git a/patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch b/patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch
index 703884dba6..3c436eeb30 100644
--- a/patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch
+++ b/patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch
@@ -2,8 +2,7 @@ From: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Date: Thu, 26 Jul 2018 14:00:41 -0700
Subject: [PATCH] nvmet: use Retain Async Event bit to clear AEN
Git-commit: b369b30cf510fe94d8884837039362e2ec223cec
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-Mainline: queued
+Patch-Mainline: v4.19-rc1
References: bsc#1054245
In the current implementation, we clear the AEN bit when we get the
diff --git a/patches.drivers/pinctrl-cannonlake-Fix-community-ordering-for-H-vari b/patches.drivers/pinctrl-cannonlake-Fix-community-ordering-for-H-vari
new file mode 100644
index 0000000000..059d50d979
--- /dev/null
+++ b/patches.drivers/pinctrl-cannonlake-Fix-community-ordering-for-H-vari
@@ -0,0 +1,47 @@
+From 17ac526824a8b5544bc2545c76f489e49c6593a2 Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Thu, 26 Jul 2018 19:59:05 +0300
+Subject: [PATCH] pinctrl: cannonlake: Fix community ordering for H variant
+Git-commit: 17ac526824a8b5544bc2545c76f489e49c6593a2
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+The driver was written based on an assumption that BIOS provides
+unordered communities in ACPI DSDT. Nevertheless, it seems that
+BIOS getting fixed before being provisioned to OxM:s.
+So does driver.
+
+Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=199911
+Reported-by: Marc Landolt <2009@marclandolt.ch>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Fixes: a663ccf0fea1 ("pinctrl: intel: Add Intel Cannon Lake PCH-H pin controller support")
+Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/intel/pinctrl-cannonlake.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/pinctrl/intel/pinctrl-cannonlake.c b/drivers/pinctrl/intel/pinctrl-cannonlake.c
+index 71ad67b8fc35..fb1afe55bf53 100644
+--- a/drivers/pinctrl/intel/pinctrl-cannonlake.c
++++ b/drivers/pinctrl/intel/pinctrl-cannonlake.c
+@@ -444,12 +444,8 @@ static const struct intel_function cnlh_functions[] = {
+ static const struct intel_community cnlh_communities[] = {
+ CNL_COMMUNITY(0, 0, 50, cnlh_community0_gpps),
+ CNL_COMMUNITY(1, 51, 154, cnlh_community1_gpps),
+- /*
+- * ACPI MMIO resources are returned in reverse order for
+- * communities 3 and 4.
+- */
+- CNL_COMMUNITY(3, 155, 248, cnlh_community3_gpps),
+- CNL_COMMUNITY(2, 249, 298, cnlh_community4_gpps),
++ CNL_COMMUNITY(2, 155, 248, cnlh_community3_gpps),
++ CNL_COMMUNITY(3, 249, 298, cnlh_community4_gpps),
+ };
+
+ static const struct intel_pinctrl_soc_data cnlh_soc_data = {
+--
+2.18.0
+
diff --git a/patches.drivers/pinctrl-core-Return-selector-to-the-pinctrl-driver b/patches.drivers/pinctrl-core-Return-selector-to-the-pinctrl-driver
new file mode 100644
index 0000000000..b723bb5507
--- /dev/null
+++ b/patches.drivers/pinctrl-core-Return-selector-to-the-pinctrl-driver
@@ -0,0 +1,102 @@
+From a203728ac6bbbed2fdcf0a2e807c5473efcfdb30 Mon Sep 17 00:00:00 2001
+From: Tony Lindgren <tony@atomide.com>
+Date: Thu, 5 Jul 2018 02:10:14 -0700
+Subject: [PATCH] pinctrl: core: Return selector to the pinctrl driver
+Git-commit: a203728ac6bbbed2fdcf0a2e807c5473efcfdb30
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+We must return the selector from pinctrl_generic_add_group() so
+pin controller device drivers can remove the right group if needed
+for deferred probe for example. And we now must make sure that a
+proper name is passed so we can use it to check if the entry already
+exists.
+
+Note that fixes are also needed for the pin controller drivers to
+use the selector value.
+
+Fixes: c7059c5ac70a ("pinctrl: core: Add generic pinctrl functions
+for managing groups")
+
+Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
+Cc: Christ van Willegen <cvwillegen@gmail.com>
+Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
+Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>
+Cc: Paul Cercueil <paul@crapouillou.net>
+Cc: Sean Wang <sean.wang@mediatek.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
+Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/core.c | 35 ++++++++++++++++++++++++++++++++---
+ 1 file changed, 32 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
+index 9fa6c1608b80..a3dd777e3ce8 100644
+--- a/drivers/pinctrl/core.c
++++ b/drivers/pinctrl/core.c
+@@ -616,6 +616,26 @@ struct group_desc *pinctrl_generic_get_group(struct pinctrl_dev *pctldev,
+ }
+ EXPORT_SYMBOL_GPL(pinctrl_generic_get_group);
+
++static int pinctrl_generic_group_name_to_selector(struct pinctrl_dev *pctldev,
++ const char *function)
++{
++ const struct pinctrl_ops *ops = pctldev->desc->pctlops;
++ int ngroups = ops->get_groups_count(pctldev);
++ int selector = 0;
++
++ /* See if this pctldev has this group */
++ while (selector < ngroups) {
++ const char *gname = ops->get_group_name(pctldev, selector);
++
++ if (!strcmp(function, gname))
++ return selector;
++
++ selector++;
++ }
++
++ return -EINVAL;
++}
++
+ /**
+ * pinctrl_generic_add_group() - adds a new pin group
+ * @pctldev: pin controller device
+@@ -630,6 +650,16 @@ int pinctrl_generic_add_group(struct pinctrl_dev *pctldev, const char *name,
+ int *pins, int num_pins, void *data)
+ {
+ struct group_desc *group;
++ int selector;
++
++ if (!name)
++ return -EINVAL;
++
++ selector = pinctrl_generic_group_name_to_selector(pctldev, name);
++ if (selector >= 0)
++ return selector;
++
++ selector = pctldev->num_groups;
+
+ group = devm_kzalloc(pctldev->dev, sizeof(*group), GFP_KERNEL);
+ if (!group)
+@@ -640,12 +670,11 @@ int pinctrl_generic_add_group(struct pinctrl_dev *pctldev, const char *name,
+ group->num_pins = num_pins;
+ group->data = data;
+
+- radix_tree_insert(&pctldev->pin_group_tree, pctldev->num_groups,
+- group);
++ radix_tree_insert(&pctldev->pin_group_tree, selector, group);
+
+ pctldev->num_groups++;
+
+- return 0;
++ return selector;
+ }
+ EXPORT_SYMBOL_GPL(pinctrl_generic_add_group);
+
+--
+2.18.0
+
diff --git a/patches.drivers/pinctrl-freescale-off-by-one-in-imx1_pinconf_group_d b/patches.drivers/pinctrl-freescale-off-by-one-in-imx1_pinconf_group_d
new file mode 100644
index 0000000000..e1328d29f1
--- /dev/null
+++ b/patches.drivers/pinctrl-freescale-off-by-one-in-imx1_pinconf_group_d
@@ -0,0 +1,43 @@
+From 19da44cd33a3a6ff7c97fff0189999ff15b241e4 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Fri, 13 Jul 2018 17:55:15 +0300
+Subject: [PATCH] pinctrl: freescale: off by one in imx1_pinconf_group_dbg_show()
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 19da44cd33a3a6ff7c97fff0189999ff15b241e4
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+The info->groups[] array is allocated in imx1_pinctrl_parse_dt(). It
+has info->ngroups elements. Thus the > here should be >= to prevent
+reading one element beyond the end of the array.
+
+Cc: stable@vger.kernel.org
+Fixes: 30612cd90005 ("pinctrl: imx1 core driver")
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Reviewed-by: Uwe Kleine-König <u.kleine-könig@pengutronix.de>
+Acked-by: Dong Aisheng <Aisheng.dong@nxp.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/freescale/pinctrl-imx1-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+index c3bdd90b1422..deb7870b3d1a 100644
+--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
++++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+@@ -429,7 +429,7 @@ static void imx1_pinconf_group_dbg_show(struct pinctrl_dev *pctldev,
+ const char *name;
+ int i, ret;
+
+- if (group > info->ngroups)
++ if (group >= info->ngroups)
+ return;
+
+ seq_puts(s, "\n");
+--
+2.18.0
+
diff --git a/patches.drivers/pinctrl-imx-off-by-one-in-imx_pinconf_group_dbg_show b/patches.drivers/pinctrl-imx-off-by-one-in-imx_pinconf_group_dbg_show
new file mode 100644
index 0000000000..b46d408bb1
--- /dev/null
+++ b/patches.drivers/pinctrl-imx-off-by-one-in-imx_pinconf_group_dbg_show
@@ -0,0 +1,32 @@
+From b4859f3edb47825f62d1b2efdd75fe7945996f49 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Thu, 19 Jul 2018 11:16:48 +0300
+Subject: [PATCH] pinctrl: imx: off by one in imx_pinconf_group_dbg_show()
+Git-commit: b4859f3edb47825f62d1b2efdd75fe7945996f49
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+The > should really be >= here. It's harmless because
+pinctrl_generic_get_group() will return a NULL if group is invalid.
+
+Fixes: ae75ff814538 ("pinctrl: pinctrl-imx: add imx pinctrl core driver")
+Reported-by: Dong Aisheng <aisheng.dong@nxp.com>
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/freescale/pinctrl-imx.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/pinctrl/freescale/pinctrl-imx.c
++++ b/drivers/pinctrl/freescale/pinctrl-imx.c
+@@ -444,7 +444,7 @@ static void imx_pinconf_group_dbg_show(s
+ const char *name;
+ int i, ret;
+
+- if (group > pctldev->num_groups)
++ if (group >= pctldev->num_groups)
+ return;
+
+ seq_printf(s, "\n");
diff --git a/patches.drivers/pinctrl-pinmux-Return-selector-to-the-pinctrl-driver b/patches.drivers/pinctrl-pinmux-Return-selector-to-the-pinctrl-driver
new file mode 100644
index 0000000000..1784c6b950
--- /dev/null
+++ b/patches.drivers/pinctrl-pinmux-Return-selector-to-the-pinctrl-driver
@@ -0,0 +1,83 @@
+From f913cfce4ee49a3382a9ff95696f49a46e56e974 Mon Sep 17 00:00:00 2001
+From: Tony Lindgren <tony@atomide.com>
+Date: Thu, 5 Jul 2018 02:10:15 -0700
+Subject: [PATCH] pinctrl: pinmux: Return selector to the pinctrl driver
+Git-commit: f913cfce4ee49a3382a9ff95696f49a46e56e974
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+We must return the selector from pinmux_generic_add_function() so
+pin controller device drivers can remove the right group if needed
+for deferred probe for example. And we now must make sure that a
+proper name is passed so we can use it to check if the entry already
+exists.
+
+Note that fixes are also needed for the pin controller drivers to
+use the selector value.
+
+Fixes: a76edc89b100 ("pinctrl: core: Add generic pinctrl functions for
+managing groups")
+
+Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
+Cc: Christ van Willegen <cvwillegen@gmail.com>
+Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
+Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>
+Cc: Paul Cercueil <paul@crapouillou.net>
+Cc: Sean Wang <sean.wang@mediatek.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
+Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/pinmux.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
+index d7c5b4abd741..5780442c068b 100644
+--- a/drivers/pinctrl/pinmux.c
++++ b/drivers/pinctrl/pinmux.c
+@@ -307,7 +307,6 @@ static int pinmux_func_name_to_selector(struct pinctrl_dev *pctldev,
+ selector++;
+ }
+
+- dev_err(pctldev->dev, "function '%s' not supported\n", function);
+ return -EINVAL;
+ }
+
+@@ -774,6 +773,16 @@ int pinmux_generic_add_function(struct pinctrl_dev *pctldev,
+ void *data)
+ {
+ struct function_desc *function;
++ int selector;
++
++ if (!name)
++ return -EINVAL;
++
++ selector = pinmux_func_name_to_selector(pctldev, name);
++ if (selector >= 0)
++ return selector;
++
++ selector = pctldev->num_functions;
+
+ function = devm_kzalloc(pctldev->dev, sizeof(*function), GFP_KERNEL);
+ if (!function)
+@@ -784,12 +793,11 @@ int pinmux_generic_add_function(struct pinctrl_dev *pctldev,
+ function->num_group_names = num_groups;
+ function->data = data;
+
+- radix_tree_insert(&pctldev->pin_function_tree, pctldev->num_functions,
+- function);
++ radix_tree_insert(&pctldev->pin_function_tree, selector, function);
+
+ pctldev->num_functions++;
+
+- return 0;
++ return selector;
+ }
+ EXPORT_SYMBOL_GPL(pinmux_generic_add_function);
+
+--
+2.18.0
+
diff --git a/patches.drivers/pinctrl-qcom-spmi-gpio-Fix-pmic_gpio_config_get-to-b b/patches.drivers/pinctrl-qcom-spmi-gpio-Fix-pmic_gpio_config_get-to-b
new file mode 100644
index 0000000000..6045cad715
--- /dev/null
+++ b/patches.drivers/pinctrl-qcom-spmi-gpio-Fix-pmic_gpio_config_get-to-b
@@ -0,0 +1,107 @@
+From 1cf86bc21257a330e3af51f2a4e885f1a705f6a5 Mon Sep 17 00:00:00 2001
+From: Douglas Anderson <dianders@chromium.org>
+Date: Mon, 2 Jul 2018 15:59:39 -0700
+Subject: [PATCH] pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant
+Git-commit: 1cf86bc21257a330e3af51f2a4e885f1a705f6a5
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+If you do this on an sdm845 board:
+ grep "" /sys/kernel/debug/pinctrl/*spmi:pmic*/pinconf-groups
+
+...it looks like nonsense. For every pin you see listed:
+ input bias disabled, input bias high impedance, input bias pull down, input bias pull up, ...
+
+That's because pmic_gpio_config_get() isn't complying with the rules
+that pinconf_generic_dump_one() expects. Specifically for boolean
+parameters (anything with a "struct pin_config_item" where has_arg is
+false) the function expects that the function should return its value
+not through the "config" parameter but should return "0" if the value
+is set and "-EINVAL" if the value isn't set.
+
+Let's fix this.
+
+From a quick sample of other pinctrl drivers, it appears to be
+tradition to also return 1 through the config parameter for these
+boolean parameters when they exist. I'm not one to knock tradition,
+so I'll follow tradition and return 1 in these cases. While I'm at
+it, I'll also continue searching for four leaf clovers, kocking on
+wood three times, and trying not to break mirrors.
+
+Note: This also fixes an apparent typo for reading
+PIN_CONFIG_BIAS_DISABLE where the old driver was accidentally
+using "=" instead of "==" and thus was setting some internal
+state when you tried to query PIN_CONFIG_BIAS_DISABLE. Oops.
+
+Fixes: eadff3024472 ("pinctrl: Qualcomm SPMI PMIC GPIO pin controller driver")
+Signed-off-by: Douglas Anderson <dianders@chromium.org>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 32 ++++++++++++++++++------
+ 1 file changed, 24 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c b/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
+index 3e66e0d10010..cf82db78e69e 100644
+--- a/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
++++ b/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
+@@ -390,31 +390,47 @@ static int pmic_gpio_config_get(struct pinctrl_dev *pctldev,
+
+ switch (param) {
+ case PIN_CONFIG_DRIVE_PUSH_PULL:
+- arg = pad->buffer_type == PMIC_GPIO_OUT_BUF_CMOS;
++ if (pad->buffer_type != PMIC_GPIO_OUT_BUF_CMOS)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_DRIVE_OPEN_DRAIN:
+- arg = pad->buffer_type == PMIC_GPIO_OUT_BUF_OPEN_DRAIN_NMOS;
++ if (pad->buffer_type != PMIC_GPIO_OUT_BUF_OPEN_DRAIN_NMOS)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_DRIVE_OPEN_SOURCE:
+- arg = pad->buffer_type == PMIC_GPIO_OUT_BUF_OPEN_DRAIN_PMOS;
++ if (pad->buffer_type != PMIC_GPIO_OUT_BUF_OPEN_DRAIN_PMOS)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_BIAS_PULL_DOWN:
+- arg = pad->pullup == PMIC_GPIO_PULL_DOWN;
++ if (pad->pullup != PMIC_GPIO_PULL_DOWN)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_BIAS_DISABLE:
+- arg = pad->pullup = PMIC_GPIO_PULL_DISABLE;
++ if (pad->pullup != PMIC_GPIO_PULL_DISABLE)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_BIAS_PULL_UP:
+- arg = pad->pullup == PMIC_GPIO_PULL_UP_30;
++ if (pad->pullup != PMIC_GPIO_PULL_UP_30)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_BIAS_HIGH_IMPEDANCE:
+- arg = !pad->is_enabled;
++ if (pad->is_enabled)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_POWER_SOURCE:
+ arg = pad->power_source;
+ break;
+ case PIN_CONFIG_INPUT_ENABLE:
+- arg = pad->input_enabled;
++ if (!pad->input_enabled)
++ return -EINVAL;
++ arg = 1;
+ break;
+ case PIN_CONFIG_OUTPUT:
+ arg = pad->out_value;
+--
+2.18.0
+
diff --git a/patches.drivers/pinctrl-single-Fix-group-and-function-selector-use b/patches.drivers/pinctrl-single-Fix-group-and-function-selector-use
new file mode 100644
index 0000000000..8febd6f1b5
--- /dev/null
+++ b/patches.drivers/pinctrl-single-Fix-group-and-function-selector-use
@@ -0,0 +1,222 @@
+From a4ab1086072365235864151bca57230afa8bcc93 Mon Sep 17 00:00:00 2001
+From: Tony Lindgren <tony@atomide.com>
+Date: Thu, 5 Jul 2018 02:10:16 -0700
+Subject: [PATCH] pinctrl: single: Fix group and function selector use
+Git-commit: a4ab1086072365235864151bca57230afa8bcc93
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+We must use a mutex around the generic_add functions and save the
+function and group selector in case we need to remove them. Otherwise
+the selector use will be racy for deferred probe at least.
+
+Note that struct device_node *np is unused in pcs_add_function() we
+remove that too and fix a checkpatch warning for bare unsigned while
+at it.
+
+Fixes: 571aec4df5b7 ("pinctrl: single: Use generic pinmux helpers for
+managing functions")
+
+Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
+Cc: Christ van Willegen <cvwillegen@gmail.com>
+Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
+Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>
+Cc: Paul Cercueil <paul@crapouillou.net>
+Cc: Sean Wang <sean.wang@mediatek.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
+Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pinctrl/pinctrl-single.c | 91 +++++++++++++++++++-------------
+ 1 file changed, 55 insertions(+), 36 deletions(-)
+
+diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
+index 92b694675a56..42d7e76baccf 100644
+--- a/drivers/pinctrl/pinctrl-single.c
++++ b/drivers/pinctrl/pinctrl-single.c
+@@ -747,38 +747,44 @@ static int pcs_allocate_pin_table(struct pcs_device *pcs)
+ /**
+ * pcs_add_function() - adds a new function to the function list
+ * @pcs: pcs driver instance
+- * @np: device node of the mux entry
++ * @fcn: new function allocated
+ * @name: name of the function
+ * @vals: array of mux register value pairs used by the function
+ * @nvals: number of mux register value pairs
+ * @pgnames: array of pingroup names for the function
+ * @npgnames: number of pingroup names
++ *
++ * Caller must take care of locking.
+ */
+-static struct pcs_function *pcs_add_function(struct pcs_device *pcs,
+- struct device_node *np,
+- const char *name,
+- struct pcs_func_vals *vals,
+- unsigned nvals,
+- const char **pgnames,
+- unsigned npgnames)
++static int pcs_add_function(struct pcs_device *pcs,
++ struct pcs_function **fcn,
++ const char *name,
++ struct pcs_func_vals *vals,
++ unsigned int nvals,
++ const char **pgnames,
++ unsigned int npgnames)
+ {
+ struct pcs_function *function;
+- int res;
++ int selector;
+
+ function = devm_kzalloc(pcs->dev, sizeof(*function), GFP_KERNEL);
+ if (!function)
+- return NULL;
++ return -ENOMEM;
+
+ function->vals = vals;
+ function->nvals = nvals;
+
+- res = pinmux_generic_add_function(pcs->pctl, name,
+- pgnames, npgnames,
+- function);
+- if (res)
+- return NULL;
++ selector = pinmux_generic_add_function(pcs->pctl, name,
++ pgnames, npgnames,
++ function);
++ if (selector < 0) {
++ devm_kfree(pcs->dev, function);
++ *fcn = NULL;
++ } else {
++ *fcn = function;
++ }
+
+- return function;
++ return selector;
+ }
+
+ /**
+@@ -979,8 +985,8 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
+ {
+ const char *name = "pinctrl-single,pins";
+ struct pcs_func_vals *vals;
+- int rows, *pins, found = 0, res = -ENOMEM, i;
+- struct pcs_function *function;
++ int rows, *pins, found = 0, res = -ENOMEM, i, fsel, gsel;
++ struct pcs_function *function = NULL;
+
+ rows = pinctrl_count_index_with_args(np, name);
+ if (rows <= 0) {
+@@ -1030,21 +1036,25 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
+ }
+
+ pgnames[0] = np->name;
+- function = pcs_add_function(pcs, np, np->name, vals, found, pgnames, 1);
+- if (!function) {
+- res = -ENOMEM;
++ mutex_lock(&pcs->mutex);
++ fsel = pcs_add_function(pcs, &function, np->name, vals, found,
++ pgnames, 1);
++ if (fsel < 0) {
++ res = fsel;
+ goto free_pins;
+ }
+
+- res = pinctrl_generic_add_group(pcs->pctl, np->name, pins, found, pcs);
+- if (res < 0)
++ gsel = pinctrl_generic_add_group(pcs->pctl, np->name, pins, found, pcs);
++ if (gsel < 0) {
++ res = gsel;
+ goto free_function;
++ }
+
+ (*map)->type = PIN_MAP_TYPE_MUX_GROUP;
+ (*map)->data.mux.group = np->name;
+ (*map)->data.mux.function = np->name;
+
+- if (PCS_HAS_PINCONF) {
++ if (PCS_HAS_PINCONF && function) {
+ res = pcs_parse_pinconf(pcs, np, function, map);
+ if (res)
+ goto free_pingroups;
+@@ -1052,14 +1062,16 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
+ } else {
+ *num_maps = 1;
+ }
++ mutex_unlock(&pcs->mutex);
++
+ return 0;
+
+ free_pingroups:
+- pinctrl_generic_remove_last_group(pcs->pctl);
++ pinctrl_generic_remove_group(pcs->pctl, gsel);
+ *num_maps = 1;
+ free_function:
+- pinmux_generic_remove_last_function(pcs->pctl);
+-
++ pinmux_generic_remove_function(pcs->pctl, fsel);
++ mutex_unlock(&pcs->mutex);
+ free_pins:
+ devm_kfree(pcs->dev, pins);
+
+@@ -1077,9 +1089,9 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
+ {
+ const char *name = "pinctrl-single,bits";
+ struct pcs_func_vals *vals;
+- int rows, *pins, found = 0, res = -ENOMEM, i;
++ int rows, *pins, found = 0, res = -ENOMEM, i, fsel, gsel;
+ int npins_in_row;
+- struct pcs_function *function;
++ struct pcs_function *function = NULL;
+
+ rows = pinctrl_count_index_with_args(np, name);
+ if (rows <= 0) {
+@@ -1166,15 +1178,19 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
+ }
+
+ pgnames[0] = np->name;
+- function = pcs_add_function(pcs, np, np->name, vals, found, pgnames, 1);
+- if (!function) {
+- res = -ENOMEM;
++ mutex_lock(&pcs->mutex);
++ fsel = pcs_add_function(pcs, &function, np->name, vals, found,
++ pgnames, 1);
++ if (fsel < 0) {
++ res = fsel;
+ goto free_pins;
+ }
+
+- res = pinctrl_generic_add_group(pcs->pctl, np->name, pins, found, pcs);
+- if (res < 0)
++ gsel = pinctrl_generic_add_group(pcs->pctl, np->name, pins, found, pcs);
++ if (gsel < 0) {
++ res = gsel;
+ goto free_function;
++ }
+
+ (*map)->type = PIN_MAP_TYPE_MUX_GROUP;
+ (*map)->data.mux.group = np->name;
+@@ -1186,13 +1202,16 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
+ }
+
+ *num_maps = 1;
++ mutex_unlock(&pcs->mutex);
++
+ return 0;
+
+ free_pingroups:
+- pinctrl_generic_remove_last_group(pcs->pctl);
++ pinctrl_generic_remove_group(pcs->pctl, gsel);
+ *num_maps = 1;
+ free_function:
+- pinmux_generic_remove_last_function(pcs->pctl);
++ pinmux_generic_remove_function(pcs->pctl, fsel);
++ mutex_unlock(&pcs->mutex);
+ free_pins:
+ devm_kfree(pcs->dev, pins);
+
+--
+2.18.0
+
diff --git a/patches.drivers/rtc-ensure-rtc_set_alarm-fails-when-alarms-are-not-s b/patches.drivers/rtc-ensure-rtc_set_alarm-fails-when-alarms-are-not-s
new file mode 100644
index 0000000000..ba2bdc8956
--- /dev/null
+++ b/patches.drivers/rtc-ensure-rtc_set_alarm-fails-when-alarms-are-not-s
@@ -0,0 +1,43 @@
+From abfdff44bc38e9e2ef7929f633fb8462632299d4 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Date: Tue, 5 Jun 2018 23:09:14 +0200
+Subject: [PATCH] rtc: ensure rtc_set_alarm fails when alarms are not supported
+Git-commit: abfdff44bc38e9e2ef7929f633fb8462632299d4
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+When using RTC_ALM_SET or RTC_WKALM_SET with rtc_wkalrm.enabled not set,
+rtc_timer_enqueue() is not called and rtc_set_alarm() may succeed but the
+subsequent RTC_AIE_ON ioctl will fail. RTC_ALM_READ would also fail in that
+case.
+
+Ensure rtc_set_alarm() fails when alarms are not supported to avoid letting
+programs think the alarms are working for a particular RTC when they are
+not.
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/rtc/interface.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
+index 7cbdc9228dd5..6d4012dd6922 100644
+--- a/drivers/rtc/interface.c
++++ b/drivers/rtc/interface.c
+@@ -441,6 +441,11 @@ int rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)
+ {
+ int err;
+
++ if (!rtc->ops)
++ return -ENODEV;
++ else if (!rtc->ops->set_alarm)
++ return -EINVAL;
++
+ err = rtc_valid_tm(&alarm->time);
+ if (err != 0)
+ return err;
+--
+2.18.0
+
diff --git a/patches.drivers/spi-spi-fsl-dspi-Fix-imprecise-abort-on-VF500-during b/patches.drivers/spi-spi-fsl-dspi-Fix-imprecise-abort-on-VF500-during
new file mode 100644
index 0000000000..c54400971d
--- /dev/null
+++ b/patches.drivers/spi-spi-fsl-dspi-Fix-imprecise-abort-on-VF500-during
@@ -0,0 +1,89 @@
+From d8ffee2f551a627ffb7b216e2da322cb9a037f77 Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Fri, 29 Jun 2018 13:33:09 +0200
+Subject: [PATCH] spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe
+Git-commit: d8ffee2f551a627ffb7b216e2da322cb9a037f77
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+Registers of DSPI should not be accessed before enabling its clock. On
+Toradex Colibri VF50 on Iris carrier board this could be seen during
+bootup as imprecise abort:
+
+ Unhandled fault: imprecise external abort (0x1c06) at 0x00000000
+ Internal error: : 1c06 [#1] ARM
+ Modules linked in:
+ CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.39-dirty #97
+ Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
+ Backtrace:
+ [<804166a8>] (regmap_write) from [<80466b5c>] (dspi_probe+0x1f0/0x8dc)
+ [<8046696c>] (dspi_probe) from [<8040107c>] (platform_drv_probe+0x54/0xb8)
+ [<80401028>] (platform_drv_probe) from [<803ff53c>] (driver_probe_device+0x280/0x2f8)
+ [<803ff2bc>] (driver_probe_device) from [<803ff674>] (__driver_attach+0xc0/0xc4)
+ [<803ff5b4>] (__driver_attach) from [<803fd818>] (bus_for_each_dev+0x70/0xa4)
+ [<803fd7a8>] (bus_for_each_dev) from [<803fee74>] (driver_attach+0x24/0x28)
+ [<803fee50>] (driver_attach) from [<803fe980>] (bus_add_driver+0x1a0/0x218)
+ [<803fe7e0>] (bus_add_driver) from [<803fffe8>] (driver_register+0x80/0x100)
+ [<803fff68>] (driver_register) from [<80400fdc>] (__platform_driver_register+0x48/0x50)
+ [<80400f94>] (__platform_driver_register) from [<8091cf7c>] (fsl_dspi_driver_init+0x1c/0x20)
+ [<8091cf60>] (fsl_dspi_driver_init) from [<8010195c>] (do_one_initcall+0x4c/0x174)
+ [<80101910>] (do_one_initcall) from [<80900e8c>] (kernel_init_freeable+0x144/0x1d8)
+ [<80900d48>] (kernel_init_freeable) from [<805ff6a8>] (kernel_init+0x10/0x114)
+ [<805ff698>] (kernel_init) from [<80107be8>] (ret_from_fork+0x14/0x2c)
+
+Cc: <stable@vger.kernel.org>
+Fixes: 5ee67b587a2b ("spi: dspi: clear SPI_SR before enable interrupt")
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/spi/spi-fsl-dspi.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+--- a/drivers/spi/spi-fsl-dspi.c
++++ b/drivers/spi/spi-fsl-dspi.c
+@@ -1006,31 +1006,31 @@ static int dspi_probe(struct platform_de
+ goto out_master_put;
+ }
+
++ dspi->clk = devm_clk_get(&pdev->dev, "dspi");
++ if (IS_ERR(dspi->clk)) {
++ ret = PTR_ERR(dspi->clk);
++ dev_err(&pdev->dev, "unable to get clock\n");
++ goto out_master_put;
++ }
++ ret = clk_prepare_enable(dspi->clk);
++ if (ret)
++ goto out_master_put;
++
+ dspi_init(dspi);
+ dspi->irq = platform_get_irq(pdev, 0);
+ if (dspi->irq < 0) {
+ dev_err(&pdev->dev, "can't get platform irq\n");
+ ret = dspi->irq;
+- goto out_master_put;
++ goto out_clk_put;
+ }
+
+ ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt, 0,
+ pdev->name, dspi);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "Unable to attach DSPI interrupt\n");
+- goto out_master_put;
++ goto out_clk_put;
+ }
+
+- dspi->clk = devm_clk_get(&pdev->dev, "dspi");
+- if (IS_ERR(dspi->clk)) {
+- ret = PTR_ERR(dspi->clk);
+- dev_err(&pdev->dev, "unable to get clock\n");
+- goto out_master_put;
+- }
+- ret = clk_prepare_enable(dspi->clk);
+- if (ret)
+- goto out_master_put;
+-
+ if (dspi->devtype_data->trans_mode == DSPI_DMA_MODE) {
+ if (dspi_request_dma(dspi, res->start)) {
+ dev_err(&pdev->dev, "can't get dma channels\n");
diff --git a/patches.fixes/0001-drm-cirrus-Use-drm_framebuffer_put-to-avoid-kernel-o.patch b/patches.fixes/0001-drm-cirrus-Use-drm_framebuffer_put-to-avoid-kernel-o.patch
new file mode 100644
index 0000000000..1d85348c12
--- /dev/null
+++ b/patches.fixes/0001-drm-cirrus-Use-drm_framebuffer_put-to-avoid-kernel-o.patch
@@ -0,0 +1,167 @@
+From cd88ee3d68f305c27018820adaaf3050b6e134b1 Mon Sep 17 00:00:00 2001
+From: Thomas Zimmermann <tzimmermann@suse.de>
+Date: Fri, 20 Jul 2018 12:48:02 +0200
+Subject: drm/cirrus: Use drm_framebuffer_put to avoid kernel oops in clean-up
+References: bsc#1101822
+Git-commit: abf7b30d7f61d981bfcca65d1e8331b27021b475
+Git-repo: git://anongit.freedesktop.org/drm/drm-misc
+Patch-mainline: Queued for upstream in drm-misc-next
+
+In the Cirrus driver, the regular clean-up code also performs the clean-up
+of a failed initialization. If the fbdev's framebuffer was not initialized,
+the clean-up will fail within drm_framebuffer_unregister_private. Booting
+with cirrus.bpp=16 triggers this bug.
+
+The framebuffer is currently stored directly within struct cirrus_fbdev. To
+fix the bug, we turn it into a pointer that is only set for initialized
+framebuffers. The fbdev's clean-up code skips uninitialized framebuffers.
+
+The memory for struct drm_framebuffer is allocated dynamically. This requires
+additional error handling within cirrusfb_create. The framebuffer clean-up is
+now performed by drm_framebuffer_put, which also frees the data strcuture's
+memory.
+
+Link: https://bugzilla.suse.com/show_bug.cgi?id=1101822
+Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
+---
+ drivers/gpu/drm/cirrus/cirrus_drv.h | 2 -
+ drivers/gpu/drm/cirrus/cirrus_fbdev.c | 49 ++++++++++++++++++++--------------
+ drivers/gpu/drm/cirrus/cirrus_mode.c | 2 -
+ 3 files changed, 32 insertions(+), 21 deletions(-)
+
+--- a/drivers/gpu/drm/cirrus/cirrus_drv.h
++++ b/drivers/gpu/drm/cirrus/cirrus_drv.h
+@@ -152,7 +152,7 @@ struct cirrus_device {
+
+ struct cirrus_fbdev {
+ struct drm_fb_helper helper;
+- struct cirrus_framebuffer gfb;
++ struct cirrus_framebuffer *gfb;
+ void *sysram;
+ int size;
+ int x1, y1, x2, y2; /* dirty rect */
+--- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c
++++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
+@@ -22,14 +22,14 @@ static void cirrus_dirty_update(struct c
+ struct drm_gem_object *obj;
+ struct cirrus_bo *bo;
+ int src_offset, dst_offset;
+- int bpp = afbdev->gfb.base.format->cpp[0];
++ int bpp = afbdev->gfb->base.format->cpp[0];
+ int ret = -EBUSY;
+ bool unmap = false;
+ bool store_for_later = false;
+ int x2, y2;
+ unsigned long flags;
+
+- obj = afbdev->gfb.obj;
++ obj = afbdev->gfb->obj;
+ bo = gem_to_cirrus_bo(obj);
+
+ /*
+@@ -82,7 +82,7 @@ static void cirrus_dirty_update(struct c
+ }
+ for (i = y; i < y + height; i++) {
+ /* assume equal stride for now */
+- src_offset = dst_offset = i * afbdev->gfb.base.pitches[0] + (x * bpp);
++ src_offset = dst_offset = i * afbdev->gfb->base.pitches[0] + (x * bpp);
+ memcpy_toio(bo->kmap.virtual + src_offset, afbdev->sysram + src_offset, width * bpp);
+
+ }
+@@ -165,7 +165,7 @@ static int cirrusfb_create(struct drm_fb
+ container_of(helper, struct cirrus_fbdev, helper);
+ struct cirrus_device *cdev = gfbdev->helper.dev->dev_private;
+ struct fb_info *info;
+- struct drm_framebuffer *fb;
++ struct cirrus_framebuffer *fb;
+ struct drm_mode_fb_cmd2 mode_cmd;
+ void *sysram;
+ struct drm_gem_object *gobj = NULL;
+@@ -192,33 +192,36 @@ static int cirrusfb_create(struct drm_fb
+ return -ENOMEM;
+
+ info = drm_fb_helper_alloc_fbi(helper);
+- if (IS_ERR(info))
+- return PTR_ERR(info);
++ if (IS_ERR(info)) {
++ ret = PTR_ERR(info);
++ goto err_vfree;
++ }
+
+ info->par = gfbdev;
+
+- ret = cirrus_framebuffer_init(cdev->dev, &gfbdev->gfb, &mode_cmd, gobj);
++ fb = kzalloc(sizeof(*fb), GFP_KERNEL);
++ if (!fb) {
++ ret = -ENOMEM;
++ goto err_drm_gem_object_put_unlocked;
++ }
++
++ ret = cirrus_framebuffer_init(cdev->dev, fb, &mode_cmd, gobj);
+ if (ret)
+- return ret;
++ goto err_kfree;
+
+ gfbdev->sysram = sysram;
+ gfbdev->size = size;
+-
+- fb = &gfbdev->gfb.base;
+- if (!fb) {
+- DRM_INFO("fb is NULL\n");
+- return -EINVAL;
+- }
++ gfbdev->gfb = fb;
+
+ /* setup helper */
+- gfbdev->helper.fb = fb;
++ gfbdev->helper.fb = &fb->base;
+
+ strcpy(info->fix.id, "cirrusdrmfb");
+
+ info->flags = FBINFO_DEFAULT;
+ info->fbops = &cirrusfb_ops;
+
+- drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
++ drm_fb_helper_fill_fix(info, fb->base.pitches[0], fb->base.format->depth);
+ drm_fb_helper_fill_var(info, &gfbdev->helper, sizes->fb_width,
+ sizes->fb_height);
+
+@@ -238,16 +241,24 @@ static int cirrusfb_create(struct drm_fb
+ DRM_INFO("fb mappable at 0x%lX\n", info->fix.smem_start);
+ DRM_INFO("vram aper at 0x%lX\n", (unsigned long)info->fix.smem_start);
+ DRM_INFO("size %lu\n", (unsigned long)info->fix.smem_len);
+- DRM_INFO("fb depth is %d\n", fb->format->depth);
+- DRM_INFO(" pitch is %d\n", fb->pitches[0]);
++ DRM_INFO("fb depth is %d\n", fb->base.format->depth);
++ DRM_INFO(" pitch is %d\n", fb->base.pitches[0]);
+
+ return 0;
++
++err_kfree:
++ kfree(fb);
++err_drm_gem_object_put_unlocked:
++ drm_gem_object_put_unlocked(gobj);
++err_vfree:
++ vfree(sysram);
++ return ret;
+ }
+
+ static int cirrus_fbdev_destroy(struct drm_device *dev,
+ struct cirrus_fbdev *gfbdev)
+ {
+- struct cirrus_framebuffer *gfb = &gfbdev->gfb;
++ struct cirrus_framebuffer *gfb = gfbdev->gfb;
+
+ drm_fb_helper_unregister_fbi(&gfbdev->helper);
+
+--- a/drivers/gpu/drm/cirrus/cirrus_mode.c
++++ b/drivers/gpu/drm/cirrus/cirrus_mode.c
+@@ -133,7 +133,7 @@ static int cirrus_crtc_do_set_base(struc
+ return ret;
+ }
+
+- if (&cdev->mode_info.gfbdev->gfb == cirrus_fb) {
++ if (cdev->mode_info.gfbdev->gfb == cirrus_fb) {
+ /* if pushing console in kmap it */
+ ret = ttm_bo_kmap(&bo->bo, 0, bo->bo.num_pages, &bo->kmap);
+ if (ret)
diff --git a/patches.fixes/docs-zh_CN-fix-location-of-oops-tracing.txt.patch b/patches.fixes/docs-zh_CN-fix-location-of-oops-tracing.txt.patch
new file mode 100644
index 0000000000..2719d12f76
--- /dev/null
+++ b/patches.fixes/docs-zh_CN-fix-location-of-oops-tracing.txt.patch
@@ -0,0 +1,42 @@
+From 1d1636e32e69961ed42ee043ef6b75c26d327599 Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Date: Tue, 26 Jun 2018 06:49:05 -0300
+Subject: [PATCH] docs: zh_CN: fix location of oops-tracing.txt
+Git-commit: 1d1636e32e69961ed42ee043ef6b75c26d327599
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+This file was merged with bug-hunting. Make the translation
+to point for its new location.
+
+Fixes: f226e460875d ("admin-guide: merge oops-tracing with bug-hunting")
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Signed-off-by: Jonathan Corbet <corbet@lwn.net>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ Documentation/translations/zh_CN/oops-tracing.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Documentation/translations/zh_CN/oops-tracing.txt b/Documentation/translations/zh_CN/oops-tracing.txt
+index 41ab53cc0e83..a893f04dfd5d 100644
+--- a/Documentation/translations/zh_CN/oops-tracing.txt
++++ b/Documentation/translations/zh_CN/oops-tracing.txt
+@@ -1,4 +1,4 @@
+-Chinese translated version of Documentation/admin-guide/oops-tracing.rst
++Chinese translated version of Documentation/admin-guide/bug-hunting.rst
+
+ If you have any comment or update to the content, please contact the
+ original document maintainer directly. However, if you have a problem
+@@ -8,7 +8,7 @@ or if there is a problem with the translation.
+
+ Chinese maintainer: Dave Young <hidave.darkstar@gmail.com>
+ ---------------------------------------------------------------------
+-Documentation/admin-guide/oops-tracing.rst 的中文翻译
++Documentation/admin-guide/bug-hunting.rst 的中文翻译
+
+ 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
+ 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
+--
+2.18.0
+
diff --git a/patches.fixes/genirq-Fix-editing-error-in-a-comment.patch b/patches.fixes/genirq-Fix-editing-error-in-a-comment.patch
new file mode 100644
index 0000000000..0bf9167835
--- /dev/null
+++ b/patches.fixes/genirq-Fix-editing-error-in-a-comment.patch
@@ -0,0 +1,39 @@
+From 0a13ec0bbc42bddf90ab6a444df8aaa67c148b16 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>
+Date: Sun, 17 Jun 2018 14:40:18 +0200
+Subject: [PATCH] genirq: Fix editing error in a comment
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 0a13ec0bbc42bddf90ab6a444df8aaa67c148b16
+Patch-mainline: v4.19-rc1
+References: bsc#1051510
+
+When the comment was reflowed to a wider format, the "*" snuck in.
+
+Fixes: ae88a23b32fa ("irq: refactor and clean up the free_irq() code flow")
+Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Link: https://lkml.kernel.org/r/20180617124018.25539-1-j.neuschaefer@gmx.net
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ kernel/irq/manage.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index daeabd791d58..591cfe901162 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -1638,7 +1638,7 @@ static struct irqaction *__free_irq(struct irq_desc *desc, void *dev_id)
+ * is so by doing an extra call to the handler ....
+ *
+ * ( We do this after actually deregistering it, to make sure that a
+- * 'real' IRQ doesn't run in * parallel with our fake. )
++ * 'real' IRQ doesn't run in parallel with our fake. )
+ */
+ if (action->flags & IRQF_SHARED) {
+ local_irq_save(flags);
+--
+2.18.0
+
diff --git a/patches.fixes/genirq-Make-force-irq-threading-setup-more-robust.patch b/patches.fixes/genirq-Make-force-irq-threading-setup-more-robust.patch
new file mode 100644
index 0000000000..dbb47450ac
--- /dev/null
+++ b/patches.fixes/genirq-Make-force-irq-threading-setup-more-robust.patch
@@ -0,0 +1,69 @@
+From d1f0301b3333eef5efbfa1fe0f0edbea01863d5d Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Fri, 3 Aug 2018 14:44:59 +0200
+Subject: [PATCH] genirq: Make force irq threading setup more robust
+Git-commit: d1f0301b3333eef5efbfa1fe0f0edbea01863d5d
+Patch-mainline: v4.18-rc8
+References: bsc#1051510
+
+The support of force threading interrupts which are set up with both a
+primary and a threaded handler wreckaged the setup of regular requested
+threaded interrupts (primary handler == NULL).
+
+The reason is that it does not check whether the primary handler is set to
+the default handler which wakes the handler thread. Instead it replaces the
+thread handler with the primary handler as it would do with force threaded
+interrupts which have been requested via request_irq(). So both the primary
+and the thread handler become the same which then triggers the warnon that
+the thread handler tries to wakeup a not configured secondary thread.
+
+Fortunately this only happens when the driver omits the IRQF_ONESHOT flag
+when requesting the threaded interrupt, which is normaly caught by the
+sanity checks when force irq threading is disabled.
+
+Fix it by skipping the force threading setup when a regular threaded
+interrupt is requested. As a consequence the interrupt request which lacks
+the IRQ_ONESHOT flag is rejected correctly instead of silently wreckaging
+it.
+
+Fixes: 2a1d3ab8986d ("genirq: Handle force threading of irqs with primary and thread handler")
+Reported-by: Kurt Kanzenbach <kurt.kanzenbach@linutronix.de>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Tested-by: Kurt Kanzenbach <kurt.kanzenbach@linutronix.de>
+Cc: stable@vger.kernel.org
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ kernel/irq/manage.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index daeabd791d58..9a8b7ba9aa88 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -1068,6 +1068,13 @@ static int irq_setup_forced_threading(struct irqaction *new)
+ if (new->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT))
+ return 0;
+
++ /*
++ * No further action required for interrupts which are requested as
++ * threaded interrupts already
++ */
++ if (new->handler == irq_default_primary_handler)
++ return 0;
++
+ new->flags |= IRQF_ONESHOT;
+
+ /*
+@@ -1075,7 +1082,7 @@ static int irq_setup_forced_threading(struct irqaction *new)
+ * thread handler. We force thread them as well by creating a
+ * secondary action.
+ */
+- if (new->handler != irq_default_primary_handler && new->thread_fn) {
++ if (new->handler && new->thread_fn) {
+ /* Allocate the secondary action */
+ new->secondary = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
+ if (!new->secondary)
+--
+2.18.0
+
diff --git a/patches.fixes/gtp-Initialize-64-bit-per-cpu-stats-correctly.patch b/patches.fixes/gtp-Initialize-64-bit-per-cpu-stats-correctly.patch
new file mode 100644
index 0000000000..b9e152aa4b
--- /dev/null
+++ b/patches.fixes/gtp-Initialize-64-bit-per-cpu-stats-correctly.patch
@@ -0,0 +1,38 @@
+From 790cb2ebb3f9c5d26a320117d5d13cafe479484d Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Tue, 1 Aug 2017 12:11:10 -0700
+Subject: [PATCH] gtp: Initialize 64-bit per-cpu stats correctly
+Git-commit: 790cb2ebb3f9c5d26a320117d5d13cafe479484d
+Patch-mainline: v4.13-rc5
+References: bsc#1051510
+
+On 32-bit hosts and with CONFIG_DEBUG_LOCK_ALLOC we should be seeing a
+lockdep splat indicating this seqcount is not correctly initialized, fix
+that by using netdev_alloc_pcpu_stats() instead of an open coded
+allocation.
+
+Fixes: 459aa660eb1d ("gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U)")
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/gtp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
+index 1542e837fdfa..f38e32a7ec9c 100644
+--- a/drivers/net/gtp.c
++++ b/drivers/net/gtp.c
+@@ -364,7 +364,7 @@ static int gtp_dev_init(struct net_device *dev)
+
+ gtp->dev = dev;
+
+- dev->tstats = alloc_percpu(struct pcpu_sw_netstats);
++ dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
+ if (!dev->tstats)
+ return -ENOMEM;
+
+--
+2.18.0
+
diff --git a/patches.fixes/kthread-tracing-Don-t-expose-half-written-comm-when-.patch b/patches.fixes/kthread-tracing-Don-t-expose-half-written-comm-when-.patch
new file mode 100644
index 0000000000..38ce21f9ac
--- /dev/null
+++ b/patches.fixes/kthread-tracing-Don-t-expose-half-written-comm-when-.patch
@@ -0,0 +1,85 @@
+From 3e536e222f2930534c252c1cc7ae799c725c5ff9 Mon Sep 17 00:00:00 2001
+From: Snild Dolkow <snild@sony.com>
+Date: Thu, 26 Jul 2018 09:15:39 +0200
+Subject: [PATCH] kthread, tracing: Don't expose half-written comm when
+ creating kthreads
+Git-commit: 3e536e222f2930534c252c1cc7ae799c725c5ff9
+Patch-mainline: v4.18-rc7
+References: bsc#1104897
+
+There is a window for racing when printing directly to task->comm,
+allowing other threads to see a non-terminated string. The vsnprintf
+function fills the buffer, counts the truncated chars, then finally
+writes the \0 at the end.
+
+ creator other
+ vsnprintf:
+ fill (not terminated)
+ count the rest trace_sched_waking(p):
+ ... memcpy(comm, p->comm, TASK_COMM_LEN)
+ write \0
+
+The consequences depend on how 'other' uses the string. In our case,
+it was copied into the tracing system's saved cmdlines, a buffer of
+adjacent TASK_COMM_LEN-byte buffers (note the 'n' where 0 should be):
+
+ crash-arm64> x/1024s savedcmd->saved_cmdlines | grep 'evenk'
+ 0xffffffd5b3818640: "irq/497-pwr_evenkworker/u16:12"
+
+...and a strcpy out of there would cause stack corruption:
+
+ [224761.522292] Kernel panic - not syncing: stack-protector:
+ Kernel stack is corrupted in: ffffff9bf9783c78
+
+ crash-arm64> kbt | grep 'comm\|trace_print_context'
+ #6 0xffffff9bf9783c78 in trace_print_context+0x18c(+396)
+ comm (char [16]) = "irq/497-pwr_even"
+
+ crash-arm64> rd 0xffffffd4d0e17d14 8
+ ffffffd4d0e17d14: 2f71726900000000 5f7277702d373934 ....irq/497-pwr_
+ ffffffd4d0e17d24: 726f776b6e657665 3a3631752f72656b evenkworker/u16:
+ ffffffd4d0e17d34: f9780248ff003231 cede60e0ffffff9b 12..H.x......`..
+ ffffffd4d0e17d44: cede60c8ffffffd4 00000fffffffffd4 .....`..........
+
+The workaround in e09e28671 (use strlcpy in __trace_find_cmdline) was
+likely needed because of this same bug.
+
+Solved by vsnprintf:ing to a local buffer, then using set_task_comm().
+This way, there won't be a window where comm is not terminated.
+
+Link: http://lkml.kernel.org/r/20180726071539.188015-1-snild@sony.com
+
+Cc: stable@vger.kernel.org
+Fixes: bc0c38d139ec7 ("ftrace: latency tracer infrastructure")
+Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Snild Dolkow <snild@sony.com>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Acked-by: Petr Mladek <pmladek@suse.com>
+
+---
+ kernel/kthread.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/kthread.c b/kernel/kthread.c
+index 750cb8082694..486dedbd9af5 100644
+--- a/kernel/kthread.c
++++ b/kernel/kthread.c
+@@ -325,8 +325,14 @@ struct task_struct *__kthread_create_on_node(int (*threadfn)(void *data),
+ task = create->result;
+ if (!IS_ERR(task)) {
+ static const struct sched_param param = { .sched_priority = 0 };
++ char name[TASK_COMM_LEN];
+
+- vsnprintf(task->comm, sizeof(task->comm), namefmt, args);
++ /*
++ * task is already visible to other tasks, so updating
++ * COMM must be protected.
++ */
++ vsnprintf(name, sizeof(name), namefmt, args);
++ set_task_comm(task, name);
+ /*
+ * root may have changed our (kthreadd's) priority or CPU mask.
+ * The kernel thread should not inherit these properties.
+--
+2.13.7
+
diff --git a/patches.fixes/nvme-fixup-crash-on-failed-discovery.patch b/patches.fixes/nvme-fixup-crash-on-failed-discovery.patch
index b3b0682de7..de59533ed2 100644
--- a/patches.fixes/nvme-fixup-crash-on-failed-discovery.patch
+++ b/patches.fixes/nvme-fixup-crash-on-failed-discovery.patch
@@ -3,8 +3,7 @@ Date: Tue, 7 Aug 2018 12:43:42 +0200
Subject: [PATCH] nvme: fixup crash on failed discovery
Git-commit: 8f220c418d070a097f7d292cf6b37f88d67845ad
References: bsc#1103920
-Patch-Mainline: queued in subsystem maintainer repository
-Git-repo: git://git.infradead.org/nvme.git
+Patch-Mainline: v4.19-rc1
When the initial discovery fails the subsystem hasn't been setup yet
in nvme_mpath_stop, and we can't dereference ctrl->subsys.
diff --git a/patches.fixes/nvme-use-hw-qid-in-trace-events.patch b/patches.fixes/nvme-use-hw-qid-in-trace-events.patch
index ffe85a43e1..e432bbdabc 100644
--- a/patches.fixes/nvme-use-hw-qid-in-trace-events.patch
+++ b/patches.fixes/nvme-use-hw-qid-in-trace-events.patch
@@ -3,8 +3,7 @@ Date: Fri, 29 Jun 2018 16:50:01 -0600
Subject: [PATCH] nvme: use hw qid in trace events
References: bsc#1102633
Git-commit: 5d87eb94d9ba13e5e2d5ceb56ac6fe0948259ffa
-Git-repo: git://git.kernel.dk/linux-block.git
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.19-rc1
We can not match a command to its completion based on the command
id alone. We need the submitting queue identifier to pair with the
diff --git a/patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch b/patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch
index 12f0e87c31..68a302ed4e 100644
--- a/patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch
+++ b/patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch
@@ -2,8 +2,7 @@ From: Hannes Reinecke <hare@suse.com>
Date: Wed, 8 Aug 2018 08:35:29 +0200
Subject: [PATCH] nvme.h: fixup ANA group descriptor format
Git-commit: 8b92d0e3d400390660a26ef7f475524700fb86cf
-Git-repo: git://git.infradead.org/nvme.git
-Patch-mainline: queued in subsystem maintainers repository
+Patch-mainline: v4.19-rc1
References: bsc#1104111
ANA Phase 3 draft had the 'reserved' field in the group descriptor
diff --git a/patches.suse/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch b/patches.kabi/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch
index 5c1af10b1d..5c1af10b1d 100644
--- a/patches.suse/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch
+++ b/patches.kabi/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch
diff --git a/patches.arch/KABI-hide-ftrace_enabled-in-paca.patch b/patches.kabi/KABI-hide-ftrace_enabled-in-paca.patch
index 619155dee7..619155dee7 100644
--- a/patches.arch/KABI-hide-ftrace_enabled-in-paca.patch
+++ b/patches.kabi/KABI-hide-ftrace_enabled-in-paca.patch
diff --git a/patches.suse/sched-numa-Remove-redundant-field-kabi.patch b/patches.kabi/sched-numa-Remove-redundant-field-kabi.patch
index 8aa8fba787..8aa8fba787 100644
--- a/patches.suse/sched-numa-Remove-redundant-field-kabi.patch
+++ b/patches.kabi/sched-numa-Remove-redundant-field-kabi.patch
diff --git a/series.conf b/series.conf
index 1154e64841..62230810bb 100644
--- a/series.conf
+++ b/series.conf
@@ -4145,6 +4145,7 @@
patches.drivers/i40e-Initialize-64-bit-statistics-TX-ring-seqcount.patch
patches.drivers/ixgbe-Initialize-64-bit-stats-seqcounts.patch
patches.drivers/nfp-Initialize-RX-and-TX-ring-64-bit-stats-seqcounts.patch
+ patches.fixes/gtp-Initialize-64-bit-per-cpu-stats-correctly.patch
patches.suse/msft-hv-1410-netvsc-Initialize-64-bit-stats-seqcount.patch
patches.fixes/ipvlan-Fix-64-bit-statistics-seqcount-initialization.patch
patches.suse/lan78xx-USB-fast-connect-disconnect-crash-fix.patch
@@ -10759,6 +10760,7 @@
patches.drivers/IB-srpt-Disable-RDMA-access-by-the-initiator.patch
patches.drivers/IB-srpt-Fix-ACL-lookup-during-login.patch
patches.suse/ip6_tunnel-disable-dst-caching-if-tunnel-is-dual-sta.patch
+ patches.drivers/geneve-update-skb-dst-pmtu-on-tx-path.patch
patches.suse/mlxsw-spectrum_router-Fix-NULL-pointer-deref.patch
patches.suse/mlxsw-spectrum-Relax-sanity-checks-during-enslavemen.patch
patches.drivers/net-sched-Fix-update-of-lastuse-in-act-modules-imple.patch
@@ -15828,6 +15830,7 @@
patches.drivers/scsi-lpfc-update-driver-version-to-12-0-0-4.patch
patches.drivers/ubi-fastmap-Cancel-work-upon-detach
patches.drivers/ubi-fastmap-Correctly-handle-interrupted-erasures-in
+ patches.drivers/rtc-ensure-rtc_set_alarm-fails-when-alarms-are-not-s
patches.drivers/rtc-pxa-fix-probe-function
patches.suse/net-in-virtio_net_hdr-only-add-VLAN_HLEN-to-csum_sta.patch
patches.suse/msft-hv-1657-hv_netvsc-Fix-a-network-regression-after-ifdown-ifup.patch
@@ -16159,6 +16162,7 @@
patches.drivers/usb-gadget-f_uac2-fix-endianness-of-struct-cntrl_-_l.patch
patches.drivers/usb-gadget-f_fs-Only-return-delayed-status-when-len-.patch
patches.drivers/usb-core-handle-hub-C_PORT_OVER_CURRENT-condition.patch
+ patches.fixes/kthread-tracing-Don-t-expose-half-written-comm-when-.patch
patches.drivers/Input-elan_i2c-add-ACPI-ID-for-lenovo-ideapad-330
patches.drivers/Input-elan_i2c-add-another-ACPI-ID-for-Lenovo-Ideapa
patches.drivers/Input-i8042-add-Lenovo-LaVie-Z-to-the-i8042-reset-li
@@ -16166,6 +16170,7 @@
patches.drivers/nvmet-fc-fix-target-sgl-list-on-large-transfers.patch
patches.fixes/nvme-if_ready-checks-to-fail-io-to-deleting-controll.patch
patches.fixes/nvmet-fixup-crash-on-NULL-device-path.patch
+ patches.drivers/i2c-imx-Fix-reinit_completion-use.patch
patches.fixes/ext4-fix-false-negatives-and-false-positives-in-ext4.patch
patches.fixes/ext4-fix-inline-data-updates-with-checksums-enabled.patch
patches.fixes/ext4-check-for-allocation-block-validity-with-block-.patch
@@ -16187,9 +16192,11 @@
patches.drivers/drm-atomic-Check-old_plane_state-crtc-in-drm_atomic_
patches.drivers/drm-atomic-Initialize-variables-in-drm_atomic_helper
patches.drivers/drm-vc4-Reset-x-y-_scaling-1-when-dealing-with-unipl
+ patches.fixes/genirq-Make-force-irq-threading-setup-more-robust.patch
patches.fixes/nohz-Fix-local_timer_softirq_pending.patch
patches.fixes/xen-netfront-dont-cache-skb_shinfo.patch
patches.fixes/init-rename-and-re-order-boot_cpu_state_init.patch
+ patches.fixes/genirq-Fix-editing-error-in-a-comment.patch
patches.suse/sched-numa-Remove-redundant-field.patch
patches.suse/sched-numa-Evaluate-move-once-per-node.patch
patches.suse/sched-numa-Simplify-load_too_imbalanced.patch
@@ -16202,6 +16209,36 @@
patches.suse/sched-numa-Update-the-scan-period-without-holding-the-numa_group-lock.patch
patches.suse/sched-numa-Use-group_weights-to-identify-if-migration-degrades-locality.patch
patches.suse/sched-numa-Move-task_numa_placement-closer-to-numa_migrate_preferred.patch
+ patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch
+ patches.fixes/nvme-use-hw-qid-in-trace-events.patch
+ patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch
+ patches.drivers/nvme.h-add-ANA-definitions.patch
+ patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch
+ patches.drivers/nvme-remove-nvme_req_needs_failover.patch
+ patches.drivers/nvme-add-ANA-support.patch
+ patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch
+ patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch
+ patches.drivers/nvmet-add-minimal-ANA-support.patch
+ patches.drivers/nvmet-support-configuring-ANA-groups.patch
+ patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch
+ patches.fixes/nvme-fixup-crash-on-failed-discovery.patch
+ patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch
+ patches.drivers/spi-spi-fsl-dspi-Fix-imprecise-abort-on-VF500-during
+ patches.drivers/pinctrl-qcom-spmi-gpio-Fix-pmic_gpio_config_get-to-b
+ patches.drivers/pinctrl-core-Return-selector-to-the-pinctrl-driver
+ patches.drivers/pinctrl-pinmux-Return-selector-to-the-pinctrl-driver
+ patches.drivers/pinctrl-single-Fix-group-and-function-selector-use
+ patches.drivers/pinctrl-imx-off-by-one-in-imx_pinconf_group_dbg_show
+ patches.drivers/pinctrl-cannonlake-Fix-community-ordering-for-H-vari
+ patches.drivers/pinctrl-freescale-off-by-one-in-imx1_pinconf_group_d
+ patches.arch/PM-devfreq-rk3399_dmc-Fix-duplicated-opp-table-on-re.patch
+ patches.drivers/ALSA-snd-aoa-add-of_node_put-in-error-path
+ patches.drivers/ASoC-dpcm-don-t-merge-format-from-invalid-codec-dai
+ patches.drivers/ASoC-es7134-remove-64kHz-rate-from-the-supported-rat
+ patches.drivers/ASoC-rsnd-cmd-Add-missing-newline-to-debug-message
+ patches.drivers/ASoC-zte-Fix-incorrect-PCM-format-bit-usages
+ patches.drivers/ASoC-sirf-Fix-potential-NULL-pointer-dereference
+ patches.fixes/docs-zh_CN-fix-location-of-oops-tracing.txt.patch
# davem/net-next
patches.fixes/ip-discard-IPv4-datagrams-with-overlapping-segments.patch
@@ -16269,24 +16306,6 @@
patches.suse/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch
patches.suse/0006-modsign-Use-secondary-trust-keyring-for-module-signi.patch
- # git://git.kernel.dk/linux-block.git for-next
- patches.drivers/nvme-move-init-of-keep_alive-work-item-to-controller.patch
- patches.fixes/nvme-use-hw-qid-in-trace-events.patch
- patches.drivers/nvme.h-add-support-for-the-log-specific-field.patch
- patches.drivers/nvme.h-add-ANA-definitions.patch
- patches.drivers/nvme-simplify-the-API-for-getting-log-pages.patch
- patches.drivers/nvme-remove-nvme_req_needs_failover.patch
- patches.drivers/nvme-add-ANA-support.patch
- patches.drivers/nvmet-keep-a-port-pointer-in-nvmet_ctrl.patch
- patches.drivers/nvmet-track-and-limit-the-number-of-namespaces-per-s.patch
- patches.drivers/nvmet-add-minimal-ANA-support.patch
- patches.drivers/nvmet-support-configuring-ANA-groups.patch
- patches.drivers/nvmet-use-Retain-Async-Event-bit-to-clear-AEN.patch
-
- # git://git.infradead.org/nvme.git nvme-4.19
- patches.fixes/nvme-fixup-crash-on-failed-discovery.patch
- patches.fixes/nvme.h-fixup-ANA-group-descriptor-format.patch
-
# jeyu/linux modules-next
patches.suse/0001-module-make-it-clear-when-we-re-handling-the-module-.patch
patches.suse/0002-module-setup-load-info-before-module_sig_check.patch
@@ -16418,7 +16437,7 @@
patches.fixes/getcwd-close-race-with-d_move-called-by-lustre.patch
patches.fixes/vfs-use-synchronize_rcu_expedited-in-namespace_unlock.patch
patches.fixes/0001-autofs-revert-autofs-take-more-care-to-not-update-la.patch
- patches.suse/sched-numa-Remove-redundant-field-kabi.patch
+ patches.kabi/sched-numa-Remove-redundant-field-kabi.patch
########################################################
# misc small fixes
@@ -16690,6 +16709,9 @@
patches.drivers/drm-hibmc-initialize-the-hibmc_bo_driver_io_mem_pfn.patch
patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n
+ # bsc#1101822
+ patches.fixes/0001-drm-cirrus-Use-drm_framebuffer_put-to-avoid-kernel-o.patch
+
########################################################
# Out-of-tree networking
########################################################
@@ -16927,7 +16949,7 @@
patches.suse/0001-Thunderbolt-kABI-paddings-added.patch
patches.suse/0008-kabi-arm64-reserve-space-in-cpu_hwcaps-and-cpu_hwcap.patch
patches.suse/prepare-arm64-kgraft
- patches.suse/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch
+ patches.kabi/KABI-cpu-hotplug-provide-the-old-get-put_online_cpus.patch
patches.kabi/kabi-IB-mlx5-Fix-integer-overflows-in-mlx5_ib_create_srq.patch
patches.kabi/musb-flush_irq_work-kabi-fix.patch
patches.kabi/ALSA-pcm-oss-rw_ref-kabi-fix.patch
@@ -16936,7 +16958,7 @@
patches.kabi/ALSA-emu10k1-kabi-workaround.patch
patches.kabi/acpi-ec-gpe-kabi-fix.patch
patches.kabi/0003-md-fix-md_write_start-deadlock-w-o-metadata-devices.kabi
- patches.arch/KABI-hide-ftrace_enabled-in-paca.patch
+ patches.kabi/KABI-hide-ftrace_enabled-in-paca.patch
patches.kabi/ocfs2-dlm-wait-for-dlm-recovery-done-kabi.patch
patches.kabi/fsnotify-Fix-fsnotify_mark_connector-race-kabi.patch
patches.kabi/kabi-protect-struct-acpi_nfit_desc.patch