Home Home > GIT Browse > stable
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2018-11-01 07:14:23 +0100
committerKernel Build Daemon <kbuild@suse.de>2018-11-01 07:14:23 +0100
commit3fcf4577e49ed22129e0f5799565f85fcc7c7147 (patch)
tree8e31cc8bacc789c5a00b0646b06e96b85d26819c
parentd95ffc7fe6013a6a2a62d6507acfbbf06c9aefcc (diff)
parentf773242a6f6fcd2cbd2ae5d118018b81862e04a8 (diff)
-rw-r--r--blacklist.conf3
-rw-r--r--patches.drivers/drm-nouveau-Don-t-disable-polling-in-fallback-mode.patch43
-rw-r--r--patches.drivers/spi-bcm-qspi-switch-back-to-reading-flash-using-smal.patch53
-rw-r--r--patches.drivers/spi-bcm63xx-hsspi-keep-pll-clk-enabled.patch115
-rw-r--r--patches.drivers/spi-sh-msiof-fix-deferred-probing.patch41
-rw-r--r--patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch3
-rw-r--r--patches.fixes/0001-drm-amdgpu-update-tmr-mc-address.patch4
-rw-r--r--patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch3
-rw-r--r--patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch3
-rw-r--r--patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch3
-rw-r--r--patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch3
-rw-r--r--patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch3
-rw-r--r--patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch3
-rw-r--r--patches.fixes/0001-x86-boot-KASLR-Work-around-firmware-bugs-by-excludin.patch126
-rw-r--r--patches.fixes/libnvdimm-dimm-maximize-label-transfer-size.patch71
-rw-r--r--patches.fixes/libnvdimm-label-change-nvdimm_num_label_slots-per-uefi-2-7.patch79
-rw-r--r--patches.fixes/libnvdimm-label-fix-sparse-warning.patch46
-rw-r--r--patches.fixes/nvdimm-clarify-comment-in-sizeof_namespace_index.patch40
-rw-r--r--patches.fixes/nvdimm-remove-empty-if-statement.patch38
-rw-r--r--patches.fixes/nvdimm-sanity-check-labeloff.patch36
-rw-r--r--patches.fixes/nvdimm-split-label-init-out-from-the-logic-for-getting-config-data.patch199
-rw-r--r--patches.fixes/nvdimm-use-namespace-index-data-to-reduce-number-of-label-reads-needed.patch181
-rw-r--r--patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n66
-rw-r--r--patches.suse/drm-i915-CFL-NVMe-breakage-workaround.patch50
-rw-r--r--series.conf32
25 files changed, 1152 insertions, 92 deletions
diff --git a/blacklist.conf b/blacklist.conf
index 4e1f3f276c..30bec138ed 100644
--- a/blacklist.conf
+++ b/blacklist.conf
@@ -880,3 +880,6 @@ af424a410749ed7e0c2bffd3cedbc7c274d0ff6f # usb: dwc2: breaks kABI
e7c52b84fb18f08ce49b6067ae6285aca79084a8 # kasan fix
ad1a56f1bf2bd2394f98320baf9ad430f7b1534c # We don't carry the reverted patch.
d60996ab430c8a6033a0944c068edc5ec5becb9b # Duplicate of 3af71f649d22f359790b4032446456a967a81742
+c894696188d5c2af1e636e458190e80c53fb893d # rtlwifi: the target function doesn't exist yet
+16d571bb0fe6aa7fed82e19166ca1542026c9c06 # rt2x00: not cleanly applicable, merely optimization
+d59d2f9995d28974877750f429e821324bd603c7 # r8822be: not present in SLE15
diff --git a/patches.drivers/drm-nouveau-Don-t-disable-polling-in-fallback-mode.patch b/patches.drivers/drm-nouveau-Don-t-disable-polling-in-fallback-mode.patch
new file mode 100644
index 0000000000..94aa215f9b
--- /dev/null
+++ b/patches.drivers/drm-nouveau-Don-t-disable-polling-in-fallback-mode.patch
@@ -0,0 +1,43 @@
+From 3639c381cdf5fa4340cbc2c7f34e2b526a6f6a6b Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 31 Aug 2018 12:03:28 +0200
+Subject: [PATCH] drm/nouveau: Don't disable polling in fallback mode
+Patch-mainline: Submitted, dri-devel ML
+References: bsc#1103356
+
+When a fan is controlled via linear fallback without cstate, we
+shouldn't stop polling. Otherwise it won't be adjusted again and
+keeps running at an initial crazy pace.
+
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1103356
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107447
+Reported-by: Thomas Blume <thomas.blume@suse.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
+index 3695cde669f8..07914e36939e 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
+@@ -132,11 +132,12 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
+ duty = nvkm_therm_update_linear(therm);
+ break;
+ case NVBIOS_THERM_FAN_OTHER:
+- if (therm->cstate)
++ if (therm->cstate) {
+ duty = therm->cstate;
+- else
++ poll = false;
++ } else {
+ duty = nvkm_therm_update_linear_fallback(therm);
+- poll = false;
++ }
+ break;
+ }
+ immd = false;
+--
+2.18.0
+
diff --git a/patches.drivers/spi-bcm-qspi-switch-back-to-reading-flash-using-smal.patch b/patches.drivers/spi-bcm-qspi-switch-back-to-reading-flash-using-smal.patch
new file mode 100644
index 0000000000..51b992d9e9
--- /dev/null
+++ b/patches.drivers/spi-bcm-qspi-switch-back-to-reading-flash-using-smal.patch
@@ -0,0 +1,53 @@
+From 940ec770c295682993d1cccce3081fd7c74fece8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Thu, 11 Oct 2018 09:42:17 +0200
+Subject: [PATCH] spi: bcm-qspi: switch back to reading flash using smaller chunks
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 940ec770c295682993d1cccce3081fd7c74fece8
+Patch-mainline: v4.20-rc1
+References: bsc#1051510
+
+Fixing/optimizing bcm_qspi_bspi_read() performance introduced two
+Changes:
+1) It added a loop to read all requested data using multiple BSPI ops.
+2) It bumped max size of a single BSPI block request from 256 to 512 B.
+
+The later change resulted in occasional BSPI timeouts causing a
+regression.
+
+For some unknown reason hardware doesn't always handle reads as expected
+when using 512 B chunks. In such cases it may happen that BSPI returns
+amount of requested bytes without the last 1-3 ones. It provides the
+remaining bytes later but doesn't raise an interrupt until another LR
+start.
+
+Switching back to 256 B reads fixes that problem and regression.
+
+Fixes: 345309fa7c0c ("spi: bcm-qspi: Fix bcm_qspi_bspi_read() performance")
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Cc: stable@vger.kernel.org
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/spi/spi-bcm-qspi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/spi/spi-bcm-qspi.c b/drivers/spi/spi-bcm-qspi.c
+index eb3d67f01e8c..584bcb018a62 100644
+--- a/drivers/spi/spi-bcm-qspi.c
++++ b/drivers/spi/spi-bcm-qspi.c
+@@ -89,7 +89,7 @@
+ #define BSPI_BPP_MODE_SELECT_MASK BIT(8)
+ #define BSPI_BPP_ADDR_SELECT_MASK BIT(16)
+
+-#define BSPI_READ_LENGTH 512
++#define BSPI_READ_LENGTH 256
+
+ /* MSPI register offsets */
+ #define MSPI_SPCR0_LSB 0x000
+--
+2.19.1
+
diff --git a/patches.drivers/spi-bcm63xx-hsspi-keep-pll-clk-enabled.patch b/patches.drivers/spi-bcm63xx-hsspi-keep-pll-clk-enabled.patch
new file mode 100644
index 0000000000..82992195c1
--- /dev/null
+++ b/patches.drivers/spi-bcm63xx-hsspi-keep-pll-clk-enabled.patch
@@ -0,0 +1,115 @@
+From 0fd85869c2a9c8723a98bc1f56a876e8383649f4 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jonas.gorski@gmail.com>
+Date: Tue, 28 Aug 2018 13:44:11 +0200
+Subject: [PATCH] spi/bcm63xx-hsspi: keep pll clk enabled
+Git-commit: 0fd85869c2a9c8723a98bc1f56a876e8383649f4
+Patch-mainline: v4.20-rc1
+References: bsc#1051510
+
+If the pll clock needs to be enabled to get its rate, it will also need
+to be enabled to provide it. So ensure it is kept enabled through the
+lifetime of the device.
+
+Fixes: 0d7412ed1f5dc ("spi/bcm63xx-hspi: Enable the clock before calling clk_get_rate().")
+Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/spi/spi-bcm63xx-hsspi.c | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/spi/spi-bcm63xx-hsspi.c b/drivers/spi/spi-bcm63xx-hsspi.c
+index c23849f7aa7b..9a06ffdb73b8 100644
+--- a/drivers/spi/spi-bcm63xx-hsspi.c
++++ b/drivers/spi/spi-bcm63xx-hsspi.c
+@@ -101,6 +101,7 @@ struct bcm63xx_hsspi {
+
+ struct platform_device *pdev;
+ struct clk *clk;
++ struct clk *pll_clk;
+ void __iomem *regs;
+ u8 __iomem *fifo;
+
+@@ -332,7 +333,7 @@ static int bcm63xx_hsspi_probe(struct platform_device *pdev)
+ struct resource *res_mem;
+ void __iomem *regs;
+ struct device *dev = &pdev->dev;
+- struct clk *clk;
++ struct clk *clk, *pll_clk = NULL;
+ int irq, ret;
+ u32 reg, rate, num_cs = HSSPI_SPI_MAX_CS;
+
+@@ -358,7 +359,7 @@ static int bcm63xx_hsspi_probe(struct platform_device *pdev)
+
+ rate = clk_get_rate(clk);
+ if (!rate) {
+- struct clk *pll_clk = devm_clk_get(dev, "pll");
++ pll_clk = devm_clk_get(dev, "pll");
+
+ if (IS_ERR(pll_clk)) {
+ ret = PTR_ERR(pll_clk);
+@@ -373,19 +374,20 @@ static int bcm63xx_hsspi_probe(struct platform_device *pdev)
+ clk_disable_unprepare(pll_clk);
+ if (!rate) {
+ ret = -EINVAL;
+- goto out_disable_clk;
++ goto out_disable_pll_clk;
+ }
+ }
+
+ master = spi_alloc_master(&pdev->dev, sizeof(*bs));
+ if (!master) {
+ ret = -ENOMEM;
+- goto out_disable_clk;
++ goto out_disable_pll_clk;
+ }
+
+ bs = spi_master_get_devdata(master);
+ bs->pdev = pdev;
+ bs->clk = clk;
++ bs->pll_clk = pll_clk;
+ bs->regs = regs;
+ bs->speed_hz = rate;
+ bs->fifo = (u8 __iomem *)(bs->regs + HSSPI_FIFO_REG(0));
+@@ -440,6 +442,8 @@ static int bcm63xx_hsspi_probe(struct platform_device *pdev)
+
+ out_put_master:
+ spi_master_put(master);
++out_disable_pll_clk:
++ clk_disable_unprepare(pll_clk);
+ out_disable_clk:
+ clk_disable_unprepare(clk);
+ return ret;
+@@ -453,6 +457,7 @@ static int bcm63xx_hsspi_remove(struct platform_device *pdev)
+
+ /* reset the hardware and block queue progress */
+ __raw_writel(0, bs->regs + HSSPI_INT_MASK_REG);
++ clk_disable_unprepare(bs->pll_clk);
+ clk_disable_unprepare(bs->clk);
+
+ return 0;
+@@ -465,6 +470,7 @@ static int bcm63xx_hsspi_suspend(struct device *dev)
+ struct bcm63xx_hsspi *bs = spi_master_get_devdata(master);
+
+ spi_master_suspend(master);
++ clk_disable_unprepare(bs->pll_clk);
+ clk_disable_unprepare(bs->clk);
+
+ return 0;
+@@ -480,6 +486,12 @@ static int bcm63xx_hsspi_resume(struct device *dev)
+ if (ret)
+ return ret;
+
++ if (bs->pll_clk) {
++ ret = clk_prepare_enable(bs->pll_clk);
++ if (ret)
++ return ret;
++ }
++
+ spi_master_resume(master);
+
+ return 0;
+--
+2.19.1
+
diff --git a/patches.drivers/spi-sh-msiof-fix-deferred-probing.patch b/patches.drivers/spi-sh-msiof-fix-deferred-probing.patch
new file mode 100644
index 0000000000..06fab960cb
--- /dev/null
+++ b/patches.drivers/spi-sh-msiof-fix-deferred-probing.patch
@@ -0,0 +1,41 @@
+From f34c6e6257aa477cdfe7e9bbbecd3c5648ecda69 Mon Sep 17 00:00:00 2001
+From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
+Date: Fri, 12 Oct 2018 22:48:22 +0300
+Subject: [PATCH] spi: sh-msiof: fix deferred probing
+Git-commit: f34c6e6257aa477cdfe7e9bbbecd3c5648ecda69
+Patch-mainline: v4.20-rc1
+References: bsc#1051510
+
+Since commit 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
+platform_get_irq() can return -EPROBE_DEFER. However, the driver overrides
+an error returned by that function with -ENOENT which breaks the deferred
+probing. Propagate upstream an error code returned by platform_get_irq()
+and remove the bogus "platform" from the error message, while at it...
+
+Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
+Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/spi/spi-sh-msiof.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c
+index 101cd6aae2ea..30ea0a2068e0 100644
+--- a/drivers/spi/spi-sh-msiof.c
++++ b/drivers/spi/spi-sh-msiof.c
+@@ -1343,8 +1343,8 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
+
+ i = platform_get_irq(pdev, 0);
+ if (i < 0) {
+- dev_err(&pdev->dev, "cannot get platform IRQ\n");
+- ret = -ENOENT;
++ dev_err(&pdev->dev, "cannot get IRQ\n");
++ ret = i;
+ goto err1;
+ }
+
+--
+2.19.1
+
diff --git a/patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch b/patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch
index e48edf5d75..02da211c31 100644
--- a/patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch
+++ b/patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch
@@ -3,8 +3,7 @@ From: Colin Ian King <colin.king@canonical.com>
Date: Mon, 8 Oct 2018 17:22:28 +0100
Subject: drm/amdgpu/powerplay: fix missing break in switch statements
Git-commit: 14b284832e7dea6f54f0adfd7bed105548b94e57
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
There are several switch statements that are missing break statements.
diff --git a/patches.fixes/0001-drm-amdgpu-update-tmr-mc-address.patch b/patches.fixes/0001-drm-amdgpu-update-tmr-mc-address.patch
index a3c0e294d7..b7df52a28c 100644
--- a/patches.fixes/0001-drm-amdgpu-update-tmr-mc-address.patch
+++ b/patches.fixes/0001-drm-amdgpu-update-tmr-mc-address.patch
@@ -2,8 +2,8 @@ From 435198f33b56d7b875a8173a0227ddf0de285aa1 Mon Sep 17 00:00:00 2001
From: James Zhu <jzhums@gmail.com>
Date: Fri, 10 Aug 2018 00:31:39 +0800
Subject: [PATCH] drm/amdgpu: update tmr mc address
-References: bsc#1100132
-Patch-mainline: v4.18-rc7
+References: bsc#1106110
+Patch-mainline: v4.19-rc1
Git-commit: 435198f33b56d7b875a8173a0227ddf0de285aa1
Update tmr mc address with firmware loading address
diff --git a/patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch b/patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch
index 97ae2d8eca..0fb9b3daaa 100644
--- a/patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch
+++ b/patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch
@@ -4,8 +4,7 @@ Date: Sat, 22 Sep 2018 01:25:25 +0800
Subject: drm/hisilicon: hibmc: Do not carry error code in HiBMC framebuffer
pointer
Git-commit: 331d880b35a76b5de0eec8cbcecbf615d758a5f9
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
In hibmc_drm_fb_create(), when the call to hibmc_framebuffer_init() fails
diff --git a/patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch b/patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch
index e9a82d4ec0..702f9d11c7 100644
--- a/patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch
+++ b/patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch
@@ -3,8 +3,7 @@ From: John Garry <john.garry@huawei.com>
Date: Sat, 22 Sep 2018 01:25:26 +0800
Subject: drm/hisilicon: hibmc: Don't overwrite fb helper surface depth
Git-commit: 0ff9f49646353ce31312411e7e7bd2281492a40e
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
Currently the driver overwrites the surface depth provided by the fb
diff --git a/patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch b/patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch
index 58fce69ed7..0482da221c 100644
--- a/patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch
+++ b/patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch
@@ -4,8 +4,7 @@ Date: Fri, 17 Aug 2018 11:02:41 +0100
Subject: drm/i915/audio: Hook up component bindings even if displays are
disabled
Git-commit: 35a5fd9ebfa93758ca579e30f337b6c9126d995b
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
If the display has been disabled by modparam, we still want to connect
diff --git a/patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch b/patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch
index ee7c94ee5b..a8baf99390 100644
--- a/patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch
+++ b/patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch
@@ -6,8 +6,7 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Git-commit: d9a515867bdba59ebf196a6ade10faae8e8be36a
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
If BIOS configured a Y tiled FB we failed to set up the backing object
diff --git a/patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch b/patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch
index 27cb2c1653..f6e9581e09 100644
--- a/patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch
+++ b/patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch
@@ -3,8 +3,7 @@ From: Peter Rosin <peda@axentia.se>
Date: Mon, 6 Aug 2018 08:19:09 +0200
Subject: drm/sti: do not remove the drm_bridge that was never added
Git-commit: 66e31a72dc38543b2d9d1ce267dc78ba9beebcfd
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
Removing the drm_bridge_remove call should avoid a NULL dereference
diff --git a/patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch b/patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch
index f12f9191bf..c3f3505f42 100644
--- a/patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch
+++ b/patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch
@@ -3,8 +3,7 @@ From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Wed, 4 Jul 2018 12:42:50 +0300
Subject: drm/virtio: fix bounds check in virtio_gpu_cmd_get_capset()
Git-commit: 09c4b49457434fa74749ad6194ef28464d9f5df9
-Git-repo: git://anongit.freedesktop.org/drm/drm-misc
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.20-rc1
References: bsc#1113722
This doesn't affect runtime because in the current code "idx" is always
diff --git a/patches.fixes/0001-x86-boot-KASLR-Work-around-firmware-bugs-by-excludin.patch b/patches.fixes/0001-x86-boot-KASLR-Work-around-firmware-bugs-by-excludin.patch
new file mode 100644
index 0000000000..de9ac5767f
--- /dev/null
+++ b/patches.fixes/0001-x86-boot-KASLR-Work-around-firmware-bugs-by-excludin.patch
@@ -0,0 +1,126 @@
+From 0982adc746736a313dac9cb8cc936ca51ca3741a Mon Sep 17 00:00:00 2001
+From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
+Date: Mon, 28 Aug 2017 16:30:59 +0900
+Subject: [PATCH] x86/boot/KASLR: Work around firmware bugs by excluding
+ EFI_BOOT_SERVICES_* and EFI_LOADER_* from KASLR's choice
+Git-commit: 0982adc746736a313dac9cb8cc936ca51ca3741a
+Patch-mainline: v4.14-rc1
+References: bnc#1112878
+
+There's a potential bug in how we select the KASLR kernel address n
+the early boot code.
+
+The KASLR boot code currently chooses the kernel image's physical memory
+location from E820_TYPE_RAM regions by walking over all e820 entries.
+
+E820_TYPE_RAM includes EFI_BOOT_SERVICES_CODE and EFI_BOOT_SERVICES_DATA
+as well, so those regions can end up hosting the kernel image. According to
+the UEFI spec, all memory regions marked as EfiBootServicesCode and
+EfiBootServicesData are available as free memory after the first call
+to ExitBootServices(). I.e. so such regions should be usable for the
+kernel, per spec.
+
+In real life however, we have workarounds for broken x86 firmware,
+where we keep such regions reserved until SetVirtualAddressMap() is done.
+
+See the following code in should_map_region():
+
+ static bool should_map_region(efi_memory_desc_t *md)
+ {
+ ...
+ /*
+ * Map boot services regions as a workaround for buggy
+ * firmware that accesses them even when they shouldn't.
+ *
+ * See efi_{reserve,free}_boot_services().
+ */
+ if (md->type =3D=3D EFI_BOOT_SERVICES_CODE ||
+ md->type =3D=3D EFI_BOOT_SERVICES_DATA)
+ return false;
+
+This workaround suppressed a boot crash, but potential issues still
+remain because no one prevents the regions from overlapping with kernel
+image by KASLR.
+
+So let's make sure that EFI_BOOT_SERVICES_{CODE|DATA} regions are never
+chosen as kernel memory for the workaround to work fine.
+
+Furthermore, EFI_LOADER_{CODE|DATA} regions are also excluded because
+they can be used after ExitBootServices() as defined in EFI spec.
+
+As a result, we choose kernel address only from EFI_CONVENTIONAL_MEMORY
+which is the only memory type we know to be safely free.
+
+Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: Baoquan He <bhe@redhat.com>
+Cc: Junichi Nomura <j-nomura@ce.jp.nec.com>
+Cc: Kees Cook <keescook@chromium.org>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Matt Fleming <matt@codeblueprint.co.uk>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Garnier <thgarnie@google.com>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: fanc.fnst@cn.fujitsu.com
+Cc: izumi.taku@jp.fujitsu.com
+Link: http://lkml.kernel.org/r/20170828074444.GC23181@hori1.linux.bs1.fc.nec.co.jp
+[ Rewrote/fixed/clarified the changelog and the in code comments. ]
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Acked-by: Lee, Chun-Yi <jlee@suse.com>
+---
+ arch/x86/boot/compressed/kaslr.c | 40 ++++++++++++++++++++++++++++++---------
+ 1 file changed, 31 insertions(+), 9 deletions(-)
+
+--- a/arch/x86/boot/compressed/kaslr.c
++++ b/arch/x86/boot/compressed/kaslr.c
+@@ -619,19 +619,41 @@ process_efi_entries(unsigned long minimu
+ for (i = 0; i < nr_desc; i++) {
+ md = efi_early_memdesc_ptr(pmap, e->efi_memdesc_size, i);
+ if (md->attribute & EFI_MEMORY_MORE_RELIABLE) {
+- region.start = md->phys_addr;
+- region.size = md->num_pages << EFI_PAGE_SHIFT;
+- process_mem_region(&region, minimum, image_size);
+ efi_mirror_found = true;
+-
+- if (slot_area_index == MAX_SLOT_AREA) {
+- debug_putstr("Aborted EFI scan (slot_areas full)!\n");
+- break;
+- }
++ break;
+ }
+ }
+
+- return efi_mirror_found;
++ for (i = 0; i < nr_desc; i++) {
++ md = efi_early_memdesc_ptr(pmap, e->efi_memdesc_size, i);
++
++ /*
++ * Here we are more conservative in picking free memory than
++ * the EFI spec allows:
++ *
++ * According to the spec, EFI_BOOT_SERVICES_{CODE|DATA} are also
++ * free memory and thus available to place the kernel image into,
++ * but in practice there's firmware where using that memory leads
++ * to crashes.
++ *
++ * Only EFI_CONVENTIONAL_MEMORY is guaranteed to be free.
++ */
++ if (md->type != EFI_CONVENTIONAL_MEMORY)
++ continue;
++
++ if (efi_mirror_found &&
++ !(md->attribute & EFI_MEMORY_MORE_RELIABLE))
++ continue;
++
++ region.start = md->phys_addr;
++ region.size = md->num_pages << EFI_PAGE_SHIFT;
++ process_mem_region(&region, minimum, image_size);
++ if (slot_area_index == MAX_SLOT_AREA) {
++ debug_putstr("Aborted EFI scan (slot_areas full)!\n");
++ break;
++ }
++ }
++ return true;
+ }
+ #else
+ static inline bool
diff --git a/patches.fixes/libnvdimm-dimm-maximize-label-transfer-size.patch b/patches.fixes/libnvdimm-dimm-maximize-label-transfer-size.patch
new file mode 100644
index 0000000000..e1194a8b8b
--- /dev/null
+++ b/patches.fixes/libnvdimm-dimm-maximize-label-transfer-size.patch
@@ -0,0 +1,71 @@
+From: Dan Williams <dan.j.williams@intel.com>
+Date: Wed, 10 Oct 2018 16:38:24 -0700
+Subject: libnvdimm, dimm: Maximize label transfer size
+Git-commit: d11cf4a7321b538563b0ab30dc0d1f18f9c56226
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+Use kvzalloc() to bypass the arbitrary PAGE_SIZE limit of label transfer
+operations. Given the expense of calling into firmware, maximize the
+amount of label data we transfer per call to be up to the total label
+space if allowed by the firmware.
+
+Instead of limiting based on PAGE_SIZE we can instead simply limit the
+maximum size based on either the config_size int he case of the get
+operation, or the length of the write based on the set operation.
+
+On a system with 24 NVDIMM modules each with a config_size of 128K and a
+maximum transfer size of 64K - 4, this patch reduces the init time for the
+label data from around 24 seconds down to between 4-5 seconds.
+
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/dimm_devs.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+--- a/drivers/nvdimm/dimm_devs.c
++++ b/drivers/nvdimm/dimm_devs.c
+@@ -110,8 +110,8 @@ int nvdimm_init_config_data(struct nvdim
+ if (!ndd->data)
+ return -ENOMEM;
+
+- max_cmd_size = min_t(u32, PAGE_SIZE, ndd->nsarea.max_xfer);
+- cmd = kzalloc(max_cmd_size + sizeof(*cmd), GFP_KERNEL);
++ max_cmd_size = min_t(u32, ndd->nsarea.config_size, ndd->nsarea.max_xfer);
++ cmd = kvzalloc(max_cmd_size + sizeof(*cmd), GFP_KERNEL);
+ if (!cmd)
+ return -ENOMEM;
+
+@@ -133,7 +133,7 @@ int nvdimm_init_config_data(struct nvdim
+ memcpy(ndd->data + offset, cmd->out_buf, cmd->in_length);
+ }
+ dev_dbg(ndd->dev, "%s: len: %zu rc: %d\n", __func__, offset, rc);
+- kfree(cmd);
++ kvfree(cmd);
+
+ return rc;
+ }
+@@ -156,9 +156,8 @@ int nvdimm_set_config_data(struct nvdimm
+ if (offset + len > ndd->nsarea.config_size)
+ return -ENXIO;
+
+- max_cmd_size = min_t(u32, PAGE_SIZE, len);
+- max_cmd_size = min_t(u32, max_cmd_size, ndd->nsarea.max_xfer);
+- cmd = kzalloc(max_cmd_size + sizeof(*cmd) + sizeof(u32), GFP_KERNEL);
++ max_cmd_size = min_t(u32, len, ndd->nsarea.max_xfer);
++ cmd = kvzalloc(max_cmd_size + sizeof(*cmd) + sizeof(u32), GFP_KERNEL);
+ if (!cmd)
+ return -ENOMEM;
+
+@@ -182,7 +181,7 @@ int nvdimm_set_config_data(struct nvdimm
+ break;
+ }
+ }
+- kfree(cmd);
++ kvfree(cmd);
+
+ return rc;
+ }
diff --git a/patches.fixes/libnvdimm-label-change-nvdimm_num_label_slots-per-uefi-2-7.patch b/patches.fixes/libnvdimm-label-change-nvdimm_num_label_slots-per-uefi-2-7.patch
new file mode 100644
index 0000000000..2f7a23858b
--- /dev/null
+++ b/patches.fixes/libnvdimm-label-change-nvdimm_num_label_slots-per-uefi-2-7.patch
@@ -0,0 +1,79 @@
+From: Toshi Kani <toshi.kani@hpe.com>
+Date: Fri, 23 Feb 2018 14:59:22 -0700
+Subject: libnvdimm, label: change nvdimm_num_label_slots per UEFI 2.7
+Git-commit: 9e694d9c18dde0fa57ec067043b581bd57c9fb65
+Patch-mainline: v4.17-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+sizeof_namespace_index() fails when NVDIMM devices have the minimum
+1024 bytes label storage area. nvdimm_num_label_slots() returns 3
+slots while the area is only big enough for 2 slots.
+
+Change nvdimm_num_label_slots() to calculate a number of label slots
+according to UEFI 2.7 spec.
+
+Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/label.c | 34 ++++++++++++++++++++++++----------
+ 1 file changed, 24 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
+index c858cfadea40..1d28cd656536 100644
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -45,9 +45,27 @@ unsigned sizeof_namespace_label(struct nvdimm_drvdata *ndd)
+ return ndd->nslabel_size;
+ }
+
++static size_t __sizeof_namespace_index(u32 nslot)
++{
++ return ALIGN(sizeof(struct nd_namespace_index) + DIV_ROUND_UP(nslot, 8),
++ NSINDEX_ALIGN);
++}
++
++static int __nvdimm_num_label_slots(struct nvdimm_drvdata *ndd,
++ size_t index_size)
++{
++ return (ndd->nsarea.config_size - index_size * 2) /
++ sizeof_namespace_label(ndd);
++}
++
+ int nvdimm_num_label_slots(struct nvdimm_drvdata *ndd)
+ {
+- return ndd->nsarea.config_size / (sizeof_namespace_label(ndd) + 1);
++ u32 tmp_nslot, n;
++
++ tmp_nslot = ndd->nsarea.config_size / sizeof_namespace_label(ndd);
++ n = __sizeof_namespace_index(tmp_nslot) / NSINDEX_ALIGN;
++
++ return __nvdimm_num_label_slots(ndd, NSINDEX_ALIGN * n);
+ }
+
+ size_t sizeof_namespace_index(struct nvdimm_drvdata *ndd)
+@@ -55,18 +73,14 @@ size_t sizeof_namespace_index(struct nvdimm_drvdata *ndd)
+ u32 nslot, space, size;
+
+ /*
+- * The minimum index space is 512 bytes, with that amount of
+- * index we can describe ~1400 labels which is less than a byte
+- * of overhead per label. Round up to a byte of overhead per
+- * label and determine the size of the index region. Yes, this
+- * starts to waste space at larger config_sizes, but it's
+- * unlikely we'll ever see anything but 128K.
++ * Per UEFI 2.7, the minimum size of the Label Storage Area is large
++ * enough to hold 2 index blocks and 2 labels. The minimum index
++ * block size is 256 bytes, and the minimum label size is 256 bytes.
+ */
+ nslot = nvdimm_num_label_slots(ndd);
+ space = ndd->nsarea.config_size - nslot * sizeof_namespace_label(ndd);
+- size = ALIGN(sizeof(struct nd_namespace_index) + DIV_ROUND_UP(nslot, 8),
+- NSINDEX_ALIGN) * 2;
+- if (size <= space)
++ size = __sizeof_namespace_index(nslot) * 2;
++ if (size <= space && nslot >= 2)
+ return size / 2;
+
+ dev_err(ndd->dev, "label area (%d) too small to host (%d byte) labels\n",
+
diff --git a/patches.fixes/libnvdimm-label-fix-sparse-warning.patch b/patches.fixes/libnvdimm-label-fix-sparse-warning.patch
new file mode 100644
index 0000000000..2dfa8f3626
--- /dev/null
+++ b/patches.fixes/libnvdimm-label-fix-sparse-warning.patch
@@ -0,0 +1,46 @@
+From: Dan Williams <dan.j.williams@intel.com>
+Date: Thu, 11 Oct 2018 18:25:20 -0700
+Subject: libnvdimm, label: Fix sparse warning
+Git-commit: 97052c1c31d5bcf08823ce1ea272447edd2d52de
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+The kbuild robot reports:
+
+drivers/nvdimm/label.c:500:32: warning: restricted __le32 degrades to integer
+
+...read 'nslot' into a local u32.
+
+Reported-by: kbuild test robot <lkp@intel.com>
+Acked-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/label.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
+index 7f03d117824f..750dbaa6ce82 100644
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -424,6 +424,7 @@ int nd_label_data_init(struct nvdimm_drvdata *ndd)
+ struct nd_namespace_index *nsindex;
+ unsigned int i;
+ int rc = 0;
++ u32 nslot;
+
+ if (ndd->data)
+ return 0;
+@@ -495,9 +496,10 @@ int nd_label_data_init(struct nvdimm_drvdata *ndd)
+
+ /* Determine starting offset for label data */
+ offset = __le64_to_cpu(nsindex->labeloff);
++ nslot = __le32_to_cpu(nsindex->nslot);
+
+ /* Loop through the free list pulling in any active labels */
+- for (i = 0; i < nsindex->nslot; i++, offset += ndd->nslabel_size) {
++ for (i = 0; i < nslot; i++, offset += ndd->nslabel_size) {
+ size_t label_read_size;
+
+ /* zero out the unused labels */
+
diff --git a/patches.fixes/nvdimm-clarify-comment-in-sizeof_namespace_index.patch b/patches.fixes/nvdimm-clarify-comment-in-sizeof_namespace_index.patch
new file mode 100644
index 0000000000..df9ac85d50
--- /dev/null
+++ b/patches.fixes/nvdimm-clarify-comment-in-sizeof_namespace_index.patch
@@ -0,0 +1,40 @@
+From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Date: Wed, 10 Oct 2018 16:38:55 -0700
+Subject: nvdimm: Clarify comment in sizeof_namespace_index
+Git-commit: 1cfeb66e8e137be8e01b88bb4d416e987abda4a4
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+When working on the label code I found it rather confusing to see several
+spots that reference a minimum label size of 256 while working with labels
+that are 128 bytes in size.
+
+This patch is meant to provide a clarification on one of the comments that
+was at the heart of the issue. Specifically for version 1.2 and later of
+the namespace specification the minimum label size is 256, prior to that
+the minimum label size was 128. So we should state that as such to avoid
+confusion.
+
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/label.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
+index 1f5842509dbc..bb813b8e8ace 100644
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -75,7 +75,8 @@ size_t sizeof_namespace_index(struct nvdimm_drvdata *ndd)
+ /*
+ * Per UEFI 2.7, the minimum size of the Label Storage Area is large
+ * enough to hold 2 index blocks and 2 labels. The minimum index
+- * block size is 256 bytes, and the minimum label size is 256 bytes.
++ * block size is 256 bytes. The label size is 128 for namespaces
++ * prior to version 1.2 and at minimum 256 for version 1.2 and later.
+ */
+ nslot = nvdimm_num_label_slots(ndd);
+ space = ndd->nsarea.config_size - nslot * sizeof_namespace_label(ndd);
+
diff --git a/patches.fixes/nvdimm-remove-empty-if-statement.patch b/patches.fixes/nvdimm-remove-empty-if-statement.patch
new file mode 100644
index 0000000000..59914d4a43
--- /dev/null
+++ b/patches.fixes/nvdimm-remove-empty-if-statement.patch
@@ -0,0 +1,38 @@
+From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Date: Wed, 10 Oct 2018 16:39:06 -0700
+Subject: nvdimm: Remove empty if statement
+Git-commit: 19418b024427ec60ba6084addf691a8d93670398
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+This patch removes an empty statement from an if expression and promotes
+the else statement to the if expression with the expression logic reversed.
+
+I feel this is more readable as the empty statement can lead to issues if
+any additional logic was ever added.
+
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/label.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
+index bb813b8e8ace..43bad0d5bdb6 100644
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -261,9 +261,8 @@ int nd_label_validate(struct nvdimm_drvdata *ndd)
+ void nd_label_copy(struct nvdimm_drvdata *ndd, struct nd_namespace_index *dst,
+ struct nd_namespace_index *src)
+ {
+- if (dst && src)
+- /* pass */;
+- else
++ /* just exit if either destination or source is NULL */
++ if (!dst || !src)
+ return;
+
+ memcpy(dst, src, sizeof_namespace_index(ndd));
+
diff --git a/patches.fixes/nvdimm-sanity-check-labeloff.patch b/patches.fixes/nvdimm-sanity-check-labeloff.patch
new file mode 100644
index 0000000000..9b784ab70b
--- /dev/null
+++ b/patches.fixes/nvdimm-sanity-check-labeloff.patch
@@ -0,0 +1,36 @@
+From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Date: Wed, 10 Oct 2018 16:38:41 -0700
+Subject: nvdimm: Sanity check labeloff
+Git-commit: d86d4d63d88861107d3bfc84be7294552231ecd0
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+This patch adds validation for the labeloff field in the indexes.
+
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/label.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
+index 1d28cd656536..1f5842509dbc 100644
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -183,6 +183,13 @@ static int __nd_label_validate(struct nvdimm_drvdata *ndd)
+ __le64_to_cpu(nsindex[i]->otheroff));
+ continue;
+ }
++ if (__le64_to_cpu(nsindex[i]->labeloff)
++ != 2 * sizeof_namespace_index(ndd)) {
++ dev_dbg(dev, "nsindex%d labeloff: %#llx invalid\n",
++ i, (unsigned long long)
++ __le64_to_cpu(nsindex[i]->labeloff));
++ continue;
++ }
+
+ size = __le64_to_cpu(nsindex[i]->mysize);
+ if (size > sizeof_namespace_index(ndd)
+
diff --git a/patches.fixes/nvdimm-split-label-init-out-from-the-logic-for-getting-config-data.patch b/patches.fixes/nvdimm-split-label-init-out-from-the-logic-for-getting-config-data.patch
new file mode 100644
index 0000000000..b74d58adf0
--- /dev/null
+++ b/patches.fixes/nvdimm-split-label-init-out-from-the-logic-for-getting-config-data.patch
@@ -0,0 +1,199 @@
+From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Date: Wed, 10 Oct 2018 16:39:20 -0700
+Subject: nvdimm: Split label init out from the logic for getting config data
+Git-commit: 2d657d17f72d2ae70c02f0d0ea6a04ad0f016b57
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+This patch splits the initialization of the label data into two functions.
+One for doing the init, and another for reading the actual configuration
+data. The idea behind this is that by doing this we create a symmetry
+between the getting and setting of config data in that we have a function
+for both. In addition it will make it easier for us to identify the bits
+that are related to init versus the pieces that are a wrapper for reading
+data from the ACPI interface.
+
+So for example by splitting things out like this it becomes much more
+obvious that we were performing checks that weren't necessarily related to
+the set/get operations such as relying on ndd->data being present when the
+set and get ops should not care about a locally cached copy of the label
+area.
+
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/dimm.c | 2 -
+ drivers/nvdimm/dimm_devs.c | 49 +++++++++++++++++----------------------------
+ drivers/nvdimm/label.c | 38 ++++++++++++++++++++++++++++++++++
+ drivers/nvdimm/label.h | 1
+ drivers/nvdimm/nd.h | 2 +
+ 5 files changed, 61 insertions(+), 31 deletions(-)
+
+--- a/drivers/nvdimm/dimm.c
++++ b/drivers/nvdimm/dimm.c
+@@ -54,7 +54,7 @@ static int nvdimm_probe(struct device *d
+ if (rc)
+ goto err;
+
+- rc = nvdimm_init_config_data(ndd);
++ rc = nd_label_data_init(ndd);
+ if (rc == -EACCES)
+ nvdimm_set_locked(dev);
+ if (rc)
+--- a/drivers/nvdimm/dimm_devs.c
++++ b/drivers/nvdimm/dimm_devs.c
+@@ -84,55 +84,47 @@ int nvdimm_init_nsarea(struct nvdimm_drv
+ return cmd_rc;
+ }
+
+-int nvdimm_init_config_data(struct nvdimm_drvdata *ndd)
++int nvdimm_get_config_data(struct nvdimm_drvdata *ndd, void *buf,
++ size_t offset, size_t len)
+ {
+ struct nvdimm_bus *nvdimm_bus = walk_to_nvdimm_bus(ndd->dev);
++ struct nvdimm_bus_descriptor *nd_desc = nvdimm_bus->nd_desc;
+ int rc = validate_dimm(ndd), cmd_rc = 0;
+ struct nd_cmd_get_config_data_hdr *cmd;
+- struct nvdimm_bus_descriptor *nd_desc;
+- u32 max_cmd_size, config_size;
+- size_t offset;
++ size_t max_cmd_size, buf_offset;
+
+ if (rc)
+ return rc;
+
+- if (ndd->data)
+- return 0;
+-
+- if (ndd->nsarea.status || ndd->nsarea.max_xfer == 0
+- || ndd->nsarea.config_size < ND_LABEL_MIN_SIZE) {
+- dev_dbg(ndd->dev, "failed to init config data area: (%d:%d)\n",
+- ndd->nsarea.max_xfer, ndd->nsarea.config_size);
++ if (offset + len > ndd->nsarea.config_size)
+ return -ENXIO;
+- }
+-
+- ndd->data = kvmalloc(ndd->nsarea.config_size, GFP_KERNEL);
+- if (!ndd->data)
+- return -ENOMEM;
+
+- max_cmd_size = min_t(u32, ndd->nsarea.config_size, ndd->nsarea.max_xfer);
++ max_cmd_size = min_t(u32, len, ndd->nsarea.max_xfer);
+ cmd = kvzalloc(max_cmd_size + sizeof(*cmd), GFP_KERNEL);
+ if (!cmd)
+ return -ENOMEM;
+
+- nd_desc = nvdimm_bus->nd_desc;
+- for (config_size = ndd->nsarea.config_size, offset = 0;
+- config_size; config_size -= cmd->in_length,
+- offset += cmd->in_length) {
+- cmd->in_length = min(config_size, max_cmd_size);
+- cmd->in_offset = offset;
++ for (buf_offset = 0; len;
++ len -= cmd->in_length, buf_offset += cmd->in_length) {
++ size_t cmd_size;
++
++ cmd->in_offset = offset + buf_offset;
++ cmd->in_length = min(max_cmd_size, len);
++
++ cmd_size = sizeof(*cmd) + cmd->in_length;
++
+ rc = nd_desc->ndctl(nd_desc, to_nvdimm(ndd->dev),
+- ND_CMD_GET_CONFIG_DATA, cmd,
+- cmd->in_length + sizeof(*cmd), &cmd_rc);
++ ND_CMD_GET_CONFIG_DATA, cmd, cmd_size, &cmd_rc);
+ if (rc < 0)
+ break;
+ if (cmd_rc < 0) {
+ rc = cmd_rc;
+ break;
+ }
+- memcpy(ndd->data + offset, cmd->out_buf, cmd->in_length);
++
++ /* out_buf should be valid, copy it into our output buffer */
++ memcpy(buf + buf_offset, cmd->out_buf, cmd->in_length);
+ }
+- dev_dbg(ndd->dev, "%s: len: %zu rc: %d\n", __func__, offset, rc);
+ kvfree(cmd);
+
+ return rc;
+@@ -150,9 +142,6 @@ int nvdimm_set_config_data(struct nvdimm
+ if (rc)
+ return rc;
+
+- if (!ndd->data)
+- return -ENXIO;
+-
+ if (offset + len > ndd->nsarea.config_size)
+ return -ENXIO;
+
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -422,6 +422,44 @@ int nd_label_reserve_dpa(struct nvdimm_d
+ return 0;
+ }
+
++int nd_label_data_init(struct nvdimm_drvdata *ndd)
++{
++ size_t config_size, read_size;
++ int rc = 0;
++
++ if (ndd->data)
++ return 0;
++
++ if (ndd->nsarea.status || ndd->nsarea.max_xfer == 0) {
++ dev_dbg(ndd->dev, "failed to init config data area: (%u:%u)\n",
++ ndd->nsarea.max_xfer, ndd->nsarea.config_size);
++ return -ENXIO;
++ }
++
++ /*
++ * We need to determine the maximum index area as this is the section
++ * we must read and validate before we can start processing labels.
++ *
++ * If the area is too small to contain the two indexes and 2 labels
++ * then we abort.
++ *
++ * Start at a label size of 128 as this should result in the largest
++ * possible namespace index size.
++ */
++ ndd->nslabel_size = 128;
++ read_size = sizeof_namespace_index(ndd) * 2;
++ if (!read_size)
++ return -ENXIO;
++
++ /* Allocate config data */
++ config_size = ndd->nsarea.config_size;
++ ndd->data = kvzalloc(config_size, GFP_KERNEL);
++ if (!ndd->data)
++ return -ENOMEM;
++
++ return nvdimm_get_config_data(ndd, ndd->data, 0, config_size);
++}
++
+ int nd_label_active_count(struct nvdimm_drvdata *ndd)
+ {
+ struct nd_namespace_index *nsindex;
+--- a/drivers/nvdimm/label.h
++++ b/drivers/nvdimm/label.h
+@@ -141,6 +141,7 @@ struct nvdimm_drvdata;
+ int nd_label_validate(struct nvdimm_drvdata *ndd);
+ void nd_label_copy(struct nvdimm_drvdata *ndd, struct nd_namespace_index *dst,
+ struct nd_namespace_index *src);
++int nd_label_data_init(struct nvdimm_drvdata *ndd);
+ size_t sizeof_namespace_index(struct nvdimm_drvdata *ndd);
+ int nd_label_active_count(struct nvdimm_drvdata *ndd);
+ struct nd_namespace_label *nd_label_active(struct nvdimm_drvdata *ndd, int n);
+--- a/drivers/nvdimm/nd.h
++++ b/drivers/nvdimm/nd.h
+@@ -247,6 +247,8 @@ struct nvdimm_drvdata *to_ndd(struct nd_
+ int nvdimm_check_config_data(struct device *dev);
+ int nvdimm_init_nsarea(struct nvdimm_drvdata *ndd);
+ int nvdimm_init_config_data(struct nvdimm_drvdata *ndd);
++int nvdimm_get_config_data(struct nvdimm_drvdata *ndd, void *buf,
++ size_t offset, size_t len);
+ int nvdimm_set_config_data(struct nvdimm_drvdata *ndd, size_t offset,
+ void *buf, size_t len);
+ long nvdimm_clear_poison(struct device *dev, phys_addr_t phys,
diff --git a/patches.fixes/nvdimm-use-namespace-index-data-to-reduce-number-of-label-reads-needed.patch b/patches.fixes/nvdimm-use-namespace-index-data-to-reduce-number-of-label-reads-needed.patch
new file mode 100644
index 0000000000..baaf360b8b
--- /dev/null
+++ b/patches.fixes/nvdimm-use-namespace-index-data-to-reduce-number-of-label-reads-needed.patch
@@ -0,0 +1,181 @@
+From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Date: Wed, 10 Oct 2018 16:39:35 -0700
+Subject: nvdimm: Use namespace index data to reduce number of label reads
+ needed
+Git-commit: 7d47aad4570e5e6e9a8162bb417ca9b74132f27c
+Patch-mainline: v4.20-rc1
+References: bsc#1111921, bsc#1113408, FATE#326765, bsc#1113972
+
+This patch adds logic that is meant to make use of the namespace index data
+to reduce the number of reads that are needed to initialize a given
+namespace. The general idea is that once we have enough data to validate
+the namespace index we do so and then proceed to fetch only those labels
+that are not listed as being "free". By doing this I am seeing a total time
+reduction from about 4-5 seconds to 2-3 seconds for 24 NVDIMM modules each
+with 128K of label config area.
+
+Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
+Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/nvdimm/dimm.c | 4 ---
+ drivers/nvdimm/label.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++---
+ drivers/nvdimm/label.h | 3 --
+ 3 files changed, 88 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/nvdimm/dimm.c b/drivers/nvdimm/dimm.c
+index 07bf96948553..9899c97138a3 100644
+--- a/drivers/nvdimm/dimm.c
++++ b/drivers/nvdimm/dimm.c
+@@ -84,10 +84,6 @@ static int nvdimm_probe(struct device *dev)
+ dev_dbg(dev, "config data size: %d\n", ndd->nsarea.config_size);
+
+ nvdimm_bus_lock(dev);
+- ndd->ns_current = nd_label_validate(ndd);
+- ndd->ns_next = nd_label_next_nsindex(ndd->ns_current);
+- nd_label_copy(ndd, to_next_namespace_index(ndd),
+- to_current_namespace_index(ndd));
+ if (ndd->ns_current >= 0) {
+ rc = nd_label_reserve_dpa(ndd);
+ if (rc == 0)
+diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
+index 563f24af01b5..7f03d117824f 100644
+--- a/drivers/nvdimm/label.c
++++ b/drivers/nvdimm/label.c
+@@ -235,7 +235,7 @@ static int __nd_label_validate(struct nvdimm_drvdata *ndd)
+ return -1;
+ }
+
+-int nd_label_validate(struct nvdimm_drvdata *ndd)
++static int nd_label_validate(struct nvdimm_drvdata *ndd)
+ {
+ /*
+ * In order to probe for and validate namespace index blocks we
+@@ -258,8 +258,9 @@ int nd_label_validate(struct nvdimm_drvdata *ndd)
+ return -1;
+ }
+
+-void nd_label_copy(struct nvdimm_drvdata *ndd, struct nd_namespace_index *dst,
+- struct nd_namespace_index *src)
++static void nd_label_copy(struct nvdimm_drvdata *ndd,
++ struct nd_namespace_index *dst,
++ struct nd_namespace_index *src)
+ {
+ /* just exit if either destination or source is NULL */
+ if (!dst || !src)
+@@ -419,7 +420,9 @@ int nd_label_reserve_dpa(struct nvdimm_drvdata *ndd)
+
+ int nd_label_data_init(struct nvdimm_drvdata *ndd)
+ {
+- size_t config_size, read_size;
++ size_t config_size, read_size, max_xfer, offset;
++ struct nd_namespace_index *nsindex;
++ unsigned int i;
+ int rc = 0;
+
+ if (ndd->data)
+@@ -452,7 +455,87 @@ int nd_label_data_init(struct nvdimm_drvdata *ndd)
+ if (!ndd->data)
+ return -ENOMEM;
+
+- return nvdimm_get_config_data(ndd, ndd->data, 0, config_size);
++ /*
++ * We want to guarantee as few reads as possible while conserving
++ * memory. To do that we figure out how much unused space will be left
++ * in the last read, divide that by the total number of reads it is
++ * going to take given our maximum transfer size, and then reduce our
++ * maximum transfer size based on that result.
++ */
++ max_xfer = min_t(size_t, ndd->nsarea.max_xfer, config_size);
++ if (read_size < max_xfer) {
++ /* trim waste */
++ max_xfer -= ((max_xfer - 1) - (config_size - 1) % max_xfer) /
++ DIV_ROUND_UP(config_size, max_xfer);
++ /* make certain we read indexes in exactly 1 read */
++ if (max_xfer < read_size)
++ max_xfer = read_size;
++ }
++
++ /* Make our initial read size a multiple of max_xfer size */
++ read_size = min(DIV_ROUND_UP(read_size, max_xfer) * max_xfer,
++ config_size);
++
++ /* Read the index data */
++ rc = nvdimm_get_config_data(ndd, ndd->data, 0, read_size);
++ if (rc)
++ goto out_err;
++
++ /* Validate index data, if not valid assume all labels are invalid */
++ ndd->ns_current = nd_label_validate(ndd);
++ if (ndd->ns_current < 0)
++ return 0;
++
++ /* Record our index values */
++ ndd->ns_next = nd_label_next_nsindex(ndd->ns_current);
++
++ /* Copy "current" index on top of the "next" index */
++ nsindex = to_current_namespace_index(ndd);
++ nd_label_copy(ndd, to_next_namespace_index(ndd), nsindex);
++
++ /* Determine starting offset for label data */
++ offset = __le64_to_cpu(nsindex->labeloff);
++
++ /* Loop through the free list pulling in any active labels */
++ for (i = 0; i < nsindex->nslot; i++, offset += ndd->nslabel_size) {
++ size_t label_read_size;
++
++ /* zero out the unused labels */
++ if (test_bit_le(i, nsindex->free)) {
++ memset(ndd->data + offset, 0, ndd->nslabel_size);
++ continue;
++ }
++
++ /* if we already read past here then just continue */
++ if (offset + ndd->nslabel_size <= read_size)
++ continue;
++
++ /* if we haven't read in a while reset our read_size offset */
++ if (read_size < offset)
++ read_size = offset;
++
++ /* determine how much more will be read after this next call. */
++ label_read_size = offset + ndd->nslabel_size - read_size;
++ label_read_size = DIV_ROUND_UP(label_read_size, max_xfer) *
++ max_xfer;
++
++ /* truncate last read if needed */
++ if (read_size + label_read_size > config_size)
++ label_read_size = config_size - read_size;
++
++ /* Read the label data */
++ rc = nvdimm_get_config_data(ndd, ndd->data + read_size,
++ read_size, label_read_size);
++ if (rc)
++ goto out_err;
++
++ /* push read_size to next read offset */
++ read_size += label_read_size;
++ }
++
++ dev_dbg(ndd->dev, "len: %zu rc: %d\n", offset, rc);
++out_err:
++ return rc;
+ }
+
+ int nd_label_active_count(struct nvdimm_drvdata *ndd)
+diff --git a/drivers/nvdimm/label.h b/drivers/nvdimm/label.h
+index 685afb3de0fe..e9a2ad3c2150 100644
+--- a/drivers/nvdimm/label.h
++++ b/drivers/nvdimm/label.h
+@@ -138,9 +138,6 @@ static inline int nd_label_next_nsindex(int index)
+ }
+
+ struct nvdimm_drvdata;
+-int nd_label_validate(struct nvdimm_drvdata *ndd);
+-void nd_label_copy(struct nvdimm_drvdata *ndd, struct nd_namespace_index *dst,
+- struct nd_namespace_index *src);
+ int nd_label_data_init(struct nvdimm_drvdata *ndd);
+ size_t sizeof_namespace_index(struct nvdimm_drvdata *ndd);
+ int nd_label_active_count(struct nvdimm_drvdata *ndd);
+
diff --git a/patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n b/patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n
deleted file mode 100644
index 3253b65a10..0000000000
--- a/patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n
+++ /dev/null
@@ -1,66 +0,0 @@
-From: Takashi Iwai <tiwai@suse.de>
-Subject: [PATCH] Revert "drm/nouveau/drm/therm/fan: add a fallback if no fan control is specified in the vbios"
-References: bsc#1103356
-Patch-mainline: Never, a temporary workaround
-
-This reverts commit 800efb4c2857ec543fdc33585bbcb1fd5ef28337.
-Since it is confirmed to be rather harmful, just revert it until the
-problem gets addressed properly in the upstream.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-
----
- .../gpu/drm/nouveau/nvkm/subdev/therm/base.c | 22 +++----------------
- 1 file changed, 3 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
-index 3695cde669f8..699dad03bc5d 100644
---- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
-@@ -65,9 +65,10 @@ nvkm_therm_update_trip(struct nvkm_therm *therm)
- }
-
- static int
--nvkm_therm_compute_linear_duty(struct nvkm_therm *therm, u8 linear_min_temp,
-- u8 linear_max_temp)
-+nvkm_therm_update_linear(struct nvkm_therm *therm)
- {
-+ u8 linear_min_temp = therm->fan->bios.linear_min_temp;
-+ u8 linear_max_temp = therm->fan->bios.linear_max_temp;
- u8 temp = therm->func->temp_get(therm);
- u16 duty;
-
-@@ -85,21 +86,6 @@ nvkm_therm_compute_linear_duty(struct nvkm_therm *therm, u8 linear_min_temp,
- return duty;
- }
-
--static int
--nvkm_therm_update_linear(struct nvkm_therm *therm)
--{
-- u8 min = therm->fan->bios.linear_min_temp;
-- u8 max = therm->fan->bios.linear_max_temp;
-- return nvkm_therm_compute_linear_duty(therm, min, max);
--}
--
--static int
--nvkm_therm_update_linear_fallback(struct nvkm_therm *therm)
--{
-- u8 max = therm->bios_sensor.thrs_fan_boost.temp;
-- return nvkm_therm_compute_linear_duty(therm, 30, max);
--}
--
- static void
- nvkm_therm_update(struct nvkm_therm *therm, int mode)
- {
-@@ -134,8 +120,6 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
- case NVBIOS_THERM_FAN_OTHER:
- if (therm->cstate)
- duty = therm->cstate;
-- else
-- duty = nvkm_therm_update_linear_fallback(therm);
- poll = false;
- break;
- }
---
-2.18.0
-
diff --git a/patches.suse/drm-i915-CFL-NVMe-breakage-workaround.patch b/patches.suse/drm-i915-CFL-NVMe-breakage-workaround.patch
new file mode 100644
index 0000000000..27134da0ae
--- /dev/null
+++ b/patches.suse/drm-i915-CFL-NVMe-breakage-workaround.patch
@@ -0,0 +1,50 @@
+From: Takashi Iwai <tiwai@suse.de>
+Subject: Workaround for mysterious NVMe breakage with i915 CFL
+Patch-mainline: Never, a temporary workaround
+References: bsc#1111040
+
+A temporary workaround for a new CFL that breaks NVMe by some reason
+at detecting the non-existing HDMI-3 port.
+
+This should be removed once when it gets fixed properly in the upstream
+code.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_hdmi.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_hdmi.c
++++ b/drivers/gpu/drm/i915/intel_hdmi.c
+@@ -1629,21 +1629,27 @@ intel_hdmi_set_edid(struct drm_connector
+ static enum drm_connector_status
+ intel_hdmi_detect(struct drm_connector *connector, bool force)
+ {
+- enum drm_connector_status status;
++ enum drm_connector_status status = connector_status_disconnected;
+ struct drm_i915_private *dev_priv = to_i915(connector->dev);
++ struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
++ struct intel_encoder *encoder = &hdmi_to_dig_port(intel_hdmi)->base;
++ struct pci_dev *pdev = dev_priv->drm.pdev;
+
+ DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
+ connector->base.id, connector->name);
+
+ intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
+
++ if (pdev->device == 0x3e98 &&
++ !intel_digital_port_connected(encoder))
++ goto out;
++
+ intel_hdmi_unset_edid(connector);
+
+ if (intel_hdmi_set_edid(connector))
+ status = connector_status_connected;
+- else
+- status = connector_status_disconnected;
+
++out:
+ intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
+
+ return status;
diff --git a/series.conf b/series.conf
index 54422b4a26..c6815bab45 100644
--- a/series.conf
+++ b/series.conf
@@ -5126,6 +5126,7 @@
patches.suse/0003-x86-boot-KASLR-Rename-process_e820_entry-into-proces.patch
patches.suse/efi-Introduce-efi_early_memdesc_ptr-to-get-pointer-t.patch
patches.arch/x86-boot-KASLR-Prefer-mirrored-memory-regions-for-th.patch
+ patches.fixes/0001-x86-boot-KASLR-Work-around-firmware-bugs-by-excludin.patch
patches.arch/x86-cpu-amd-limit-cpu_core_id-fixup-to-families-older-than-f17h.patch
patches.fixes/x86-cpu-amd-derive-l3-shared_cpu_map-from-cpu_llc_shared_mask.patch
patches.arch/0001-x86-nmi-Use-raw-lock.patch
@@ -14963,6 +14964,7 @@
patches.drivers/rtc-hctosys-Ensure-system-time-doesn-t-overflow-time
patches.drivers/rtc-snvs-Fix-usage-of-snvs_rtc_enable
patches.drivers/libnvdimm-label-change-min-label-storage-size-per-uefi-2.7.patch
+ patches.fixes/libnvdimm-label-change-nvdimm_num_label_slots-per-uefi-2-7.patch
patches.drivers/nfit-skip-region-registration-for-incomplete-control-regions.patch
patches.fixes/0001-acpi-nfit-rework-NVDIMM-leaf-method-detection.patch
patches.drivers/nfit-fix-region-registration-vs-block-data-window-ra
@@ -18183,6 +18185,9 @@
patches.fixes/cdrom-fix-improper-type-cast-which-can-leat-to-infor.patch
patches.fixes/nvme_fc-add-nvme_discovery-sysfs-attribute-to-fc-tra.patch
patches.fixes/nvme-call-nvme_complete_rq-when-nvmf_check_ready-fai.patch
+ patches.drivers/spi-bcm-qspi-switch-back-to-reading-flash-using-smal.patch
+ patches.drivers/spi-sh-msiof-fix-deferred-probing.patch
+ patches.drivers/spi-bcm63xx-hsspi-keep-pll-clk-enabled.patch
patches.drivers/ACPI-processor-Fix-the-return-value-of-acpi_processo.patch
patches.drivers/iwlwifi-mvm-send-BCAST-management-frames-to-the-righ.patch
patches.drivers/iwlwifi-dbg-don-t-crash-if-the-firmware-crashes-in-t.patch
@@ -18198,6 +18203,13 @@
patches.fixes/jbd2-fix-use-after-free-in-jbd2_log_do_checkpoint.patch
patches.fixes/Documentation-l1tf-Fix-small-spelling-typo.patch
patches.drivers/mfd-arizona-Correct-calling-of-runtime_put_sync.patch
+ patches.fixes/libnvdimm-dimm-maximize-label-transfer-size.patch
+ patches.fixes/nvdimm-sanity-check-labeloff.patch
+ patches.fixes/nvdimm-clarify-comment-in-sizeof_namespace_index.patch
+ patches.fixes/nvdimm-remove-empty-if-statement.patch
+ patches.fixes/nvdimm-split-label-init-out-from-the-logic-for-getting-config-data.patch
+ patches.fixes/nvdimm-use-namespace-index-data-to-reduce-number-of-label-reads-needed.patch
+ patches.fixes/libnvdimm-label-fix-sparse-warning.patch
patches.drivers/PCI-ASPM-Fix-link_state-teardown-on-device-removal.patch
patches.drivers/scsi-qla2xxx-Fix-process-response-queue-for-ISP26XX-.patch
patches.drivers/scsi-qla2xxx-Fix-incorrect-port-speed-being-set-for-.patch
@@ -18289,10 +18301,17 @@
patches.arch/powerpc-pseries-Disable-CPU-hotplug-across-migration.patch
patches.arch/powerpc-fadump-re-register-firmware-assisted-dump-if.patch
patches.arch/powerpc-rtas-Fix-a-potential-race-between-CPU-Offlin.patch
+ patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch
patches.fixes/0001-drm-cirrus-Use-drm_framebuffer_put-to-avoid-kernel-o.patch
+ patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch
patches.drivers/drm-i915-cfl-Add-a-new-CFL-PCI-ID
+ patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch
+ patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch
+ patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch
+ patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch
patches.drivers/drm-i915-Restore-vblank-interrupts-earlier.patch
patches.drivers/drm-i915-dp-Link-train-Fallback-on-eDP-only-if-fallb.patch
+ patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch
patches.drivers/iio-adc-imx25-gcq-Fix-leak-of-device_node-in-mx25_gc.patch
patches.drivers/iio-adc-at91-fix-acking-DRDY-irq-on-simple-conversio.patch
patches.drivers/iio-adc-at91-fix-wrong-channel-number-in-triggered-b.patch
@@ -18319,15 +18338,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://anongit.freedesktop.org/drm/drm-misc.git drm-misc-next
- patches.fixes/0001-drm-sti-do-not-remove-the-drm_bridge-that-was-never-.patch
- patches.fixes/0001-drm-virtio-fix-bounds-check-in-virtio_gpu_cmd_get_ca.patch
- patches.fixes/0001-drm-i915-audio-Hook-up-component-bindings-even-if-di.patch
- patches.fixes/0001-drm-hisilicon-hibmc-Do-not-carry-error-code-in-HiBMC.patch
- patches.fixes/0001-drm-hisilicon-hibmc-Don-t-overwrite-fb-helper-surfac.patch
- patches.fixes/0001-drm-amdgpu-powerplay-fix-missing-break-in-switch-sta.patch
- patches.fixes/0001-drm-i915-gen9-Fix-initial-readout-for-Y-tiled-frameb.patch
-
# out-of-tree patches
########################################################
# end of sorted patches
@@ -18775,7 +18785,9 @@
patches.arch/drm-hibmc-Use-set_busid-function-from-drm-core.patch
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
+
+ patches.drivers/drm-nouveau-Don-t-disable-polling-in-fallback-mode.patch
+ patches.suse/drm-i915-CFL-NVMe-breakage-workaround.patch
+disable patches.drivers/drm-Add-DRM-client-cap-for-aspect-ratio
+disable patches.drivers/drm-Handle-aspect-ratio-info-in-legacy-modeset-path