Home Home > GIT Browse > SLE12-SP4-AZURE
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Thumshirn <jthumshirn@suse.de>2019-01-11 10:28:06 +0100
committerJohannes Thumshirn <jthumshirn@suse.de>2019-01-11 11:35:16 +0100
commite1e720a6f483bbdc65671b1bd793b098ce768e46 (patch)
treec10b35b93575f0613ba009f42ec7318ed9701bb0
parent457440898ede3bfa1227a103e17709298e417f14 (diff)
parent358a8b1614f23a6469ee3265cfe3f1eb8e3dd737 (diff)
Merge remote-tracking branch 'origin/SLE15' into SLE12-SP4
Conflicts: series.conf
-rw-r--r--patches.arch/kvm-x86-fix-scan-ioapic-use-before-initialization104
-rw-r--r--patches.arch/x86-PCI-Add-additional-VMD-device-root-ports-to-VMD-.patch40
-rw-r--r--patches.arch/x86-PCI-Add-pci-big_root_window-option-for-AMD-64-bi.patch109
-rw-r--r--patches.arch/x86-PCI-Apply-VMD-s-AERSID-fixup-generically.patch48
-rw-r--r--patches.arch/x86-PCI-Avoid-AMD-SB7xx-EHCI-USB-wakeup-defect.patch59
-rw-r--r--patches.arch/x86-PCI-Enable-AMD-64-bit-window-on-resume.patch98
-rw-r--r--patches.arch/x86-PCI-Enable-a-64bit-BAR-on-AMD-Family-15h-Models-.patch121
-rw-r--r--patches.arch/x86-PCI-Fix-infinite-loop-in-search-for-64bit-BAR-pl.patch43
-rw-r--r--patches.arch/x86-PCI-Move-and-shrink-AMD-64-bit-window-to-avoid-c.patch83
-rw-r--r--patches.arch/x86-PCI-Only-enable-a-64bit-BAR-on-single-socket-AMD.patch63
-rw-r--r--patches.arch/x86-PCI-Use-is_vmd-rather-than-relying-on-the-domain.patch35
-rw-r--r--patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch3
-rw-r--r--patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch4
-rw-r--r--patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch4
-rw-r--r--patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch3
-rw-r--r--patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch4
-rw-r--r--patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch4
-rw-r--r--patches.drivers/PCI-Add-ACS-quirk-for-APM-X-Gene-devices.patch59
-rw-r--r--patches.drivers/PCI-Add-ACS-quirk-for-Ampere-root-ports.patch61
-rw-r--r--patches.drivers/PCI-Convert-device-specific-ACS-quirks-from-NULL-ter.patch59
-rw-r--r--patches.drivers/PCI-Delay-after-FLR-of-Intel-DC-P3700-NVMe.patch67
-rw-r--r--patches.drivers/PCI-Disable-Samsung-SM961-PM961-NVMe-before-FLR.patch129
-rw-r--r--patches.drivers/PCI-Export-pcie_has_flr.patch50
-rw-r--r--patches.drivers/PCI-Mark-Ceton-InfiniTV4-INTx-masking-as-broken.patch40
-rw-r--r--patches.drivers/PCI-Mark-Intel-XXV710-NIC-INTx-masking-as-broken.patch41
-rw-r--r--patches.drivers/PCI-Mark-fall-through-switch-cases-before-enabling-W.patch91
-rw-r--r--patches.drivers/PCI-iproc-Activate-PAXC-bridge-quirk-for-more-device.patch34
-rw-r--r--patches.drivers/iommu-amd-fix-amd_iommu-force_isolation52
-rw-r--r--patches.drivers/iommu-vt-d-handle-domain-agaw-being-less-than-iommu-agaw58
-rw-r--r--patches.drivers/revert-iommu-io-pgtable-arm-check-for-v7s-incapable-systems42
-rw-r--r--patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch6
-rw-r--r--patches.drivers/usb-dwc2-host-use-hrtimer-for-nak-retries.patch137
-rw-r--r--patches.drivers/x86-PCI-Move-VMD-quirk-to-x86-fixups.patch76
-rw-r--r--patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch3
-rw-r--r--patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch3
-rw-r--r--patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch3
-rw-r--r--patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch3
-rw-r--r--patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch3
-rw-r--r--patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch3
-rw-r--r--patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch3
-rw-r--r--patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch3
-rw-r--r--patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch3
-rw-r--r--patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch3
-rw-r--r--patches.fixes/nvme-multipath-zero-out-ANA-log-buffer.patch37
-rw-r--r--patches.fixes/nvme-validate-controller-state-before-rescheduling-k.patch67
-rw-r--r--patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch3
-rw-r--r--patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch3
-rw-r--r--patches.kabi/target-se_dev_attrib.emulate_pr-ABI-stability.patch (renamed from patches.fixes/target-se_dev_attrib.emulate_pr-ABI-stability.patch)0
-rw-r--r--patches.suse/0001-rbtree-cache-leftmost-node-internally.patch3
-rw-r--r--patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch3
-rw-r--r--patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch3
-rw-r--r--patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch3
-rw-r--r--patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch3
-rw-r--r--patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch3
-rw-r--r--patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch3
-rw-r--r--patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch3
-rw-r--r--patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch3
-rw-r--r--patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch3
-rw-r--r--patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch3
-rw-r--r--patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch3
-rw-r--r--patches.suse/0013-procfs-use-faster-rb_first_cached.patch3
-rw-r--r--patches.suse/0015-mem-memcg-cache-rightmost-node.patch3
-rw-r--r--patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch3
-rw-r--r--patches.suse/btrfs-run-delayed-items-before-dropping-the-snapshot.patch88
-rw-r--r--patches.suse/crash-export-paddr_vmcoreinfo_note.patch8
-rw-r--r--patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch4
-rw-r--r--patches.suse/sched-numa-remove-unused-nr_running-field.patch4
-rw-r--r--patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch3
-rw-r--r--patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch3
-rw-r--r--patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch3
-rw-r--r--patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch3
-rw-r--r--patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch3
-rw-r--r--patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch3
-rw-r--r--patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch3
-rw-r--r--series.conf150
75 files changed, 2159 insertions, 128 deletions
diff --git a/patches.arch/kvm-x86-fix-scan-ioapic-use-before-initialization b/patches.arch/kvm-x86-fix-scan-ioapic-use-before-initialization
new file mode 100644
index 0000000000..c1f4af46a9
--- /dev/null
+++ b/patches.arch/kvm-x86-fix-scan-ioapic-use-before-initialization
@@ -0,0 +1,104 @@
+From: Wanpeng Li <wanpengli@tencent.com>
+Date: Tue, 20 Nov 2018 16:34:18 +0800
+Subject: KVM: X86: Fix scan ioapic use-before-initialization
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Git-commit: e97f852fd4561e77721bb9a4e0ea9d98305b1e93
+Patch-mainline: v4.20-rc5
+References: CVE-2018-19407 bsc#1116841
+
+Reported by syzkaller:
+
+ BUG: unable to handle kernel NULL pointer dereference at 00000000000001c8
+ PGD 80000003ec4da067 P4D 80000003ec4da067 PUD 3f7bfa067 PMD 0
+ Oops: 0000 [#1] PREEMPT SMP PTI
+ CPU: 7 PID: 5059 Comm: debug Tainted: G OE 4.19.0-rc5 #16
+ RIP: 0010:__lock_acquire+0x1a6/0x1990
+ Call Trace:
+ lock_acquire+0xdb/0x210
+ _raw_spin_lock+0x38/0x70
+ kvm_ioapic_scan_entry+0x3e/0x110 [kvm]
+ vcpu_enter_guest+0x167e/0x1910 [kvm]
+ kvm_arch_vcpu_ioctl_run+0x35c/0x610 [kvm]
+ kvm_vcpu_ioctl+0x3e9/0x6d0 [kvm]
+ do_vfs_ioctl+0xa5/0x690
+ ksys_ioctl+0x6d/0x80
+ __x64_sys_ioctl+0x1a/0x20
+ do_syscall_64+0x83/0x6e0
+ entry_SYSCALL_64_after_hwframe+0x49/0xbe
+
+The reason is that the testcase writes hyperv synic HV_X64_MSR_SINT6 msr
+and triggers scan ioapic logic to load synic vectors into EOI exit bitmap.
+However, irqchip is not initialized by this simple testcase, ioapic/apic
+objects should not be accessed.
+This can be triggered by the following program:
+
+ #define _GNU_SOURCE
+
+ #include <endian.h>
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+
+ uint64_t r[3] = {0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff};
+
+ int main(void)
+ {
+ syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0);
+ long res = 0;
+ memcpy((void*)0x20000040, "/dev/kvm", 9);
+ res = syscall(__NR_openat, 0xffffffffffffff9c, 0x20000040, 0, 0);
+ if (res != -1)
+ r[0] = res;
+ res = syscall(__NR_ioctl, r[0], 0xae01, 0);
+ if (res != -1)
+ r[1] = res;
+ res = syscall(__NR_ioctl, r[1], 0xae41, 0);
+ if (res != -1)
+ r[2] = res;
+ memcpy(
+ (void*)0x20000080,
+ "\x01\x00\x00\x00\x00\x5b\x61\xbb\x96\x00\x00\x40\x00\x00\x00\x00\x01\x00"
+ "\x08\x00\x00\x00\x00\x00\x0b\x77\xd1\x78\x4d\xd8\x3a\xed\xb1\x5c\x2e\x43"
+ "\xaa\x43\x39\xd6\xff\xf5\xf0\xa8\x98\xf2\x3e\x37\x29\x89\xde\x88\xc6\x33"
+ "\xfc\x2a\xdb\xb7\xe1\x4c\xac\x28\x61\x7b\x9c\xa9\xbc\x0d\xa0\x63\xfe\xfe"
+ "\xe8\x75\xde\xdd\x19\x38\xdc\x34\xf5\xec\x05\xfd\xeb\x5d\xed\x2e\xaf\x22"
+ "\xfa\xab\xb7\xe4\x42\x67\xd0\xaf\x06\x1c\x6a\x35\x67\x10\x55\xcb",
+ 106);
+ syscall(__NR_ioctl, r[2], 0x4008ae89, 0x20000080);
+ syscall(__NR_ioctl, r[2], 0xae80, 0);
+ return 0;
+ }
+
+This patch fixes it by bailing out scan ioapic if ioapic is not initialized in
+kernel.
+
+Reported-by: Wei Wu <ww9210@gmail.com>
+Cc: Paolo Bonzini <pbonzini@redhat.com>
+Cc: Radim Krčmář <rkrcmar@redhat.com>
+Cc: Wei Wu <ww9210@gmail.com>
+Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Acked-by: Joerg Roedel <jroedel@suse.de>
+---
+ arch/x86/kvm/x86.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -6925,7 +6925,8 @@ static void vcpu_scan_ioapic(struct kvm_
+ else {
+ if (kvm_x86_ops->sync_pir_to_irr && vcpu->arch.apicv_active)
+ kvm_x86_ops->sync_pir_to_irr(vcpu);
+- kvm_ioapic_scan_entry(vcpu, vcpu->arch.ioapic_handled_vectors);
++ if (ioapic_in_kernel(vcpu->kvm))
++ kvm_ioapic_scan_entry(vcpu, vcpu->arch.ioapic_handled_vectors);
+ }
+ bitmap_or((ulong *)eoi_exit_bitmap, vcpu->arch.ioapic_handled_vectors,
+ vcpu_to_synic(vcpu)->vec_bitmap, 256);
diff --git a/patches.arch/x86-PCI-Add-additional-VMD-device-root-ports-to-VMD-.patch b/patches.arch/x86-PCI-Add-additional-VMD-device-root-ports-to-VMD-.patch
new file mode 100644
index 0000000000..8b4f4bf736
--- /dev/null
+++ b/patches.arch/x86-PCI-Add-additional-VMD-device-root-ports-to-VMD-.patch
@@ -0,0 +1,40 @@
+From a5ad57e6b831a5ea99e128aae4372b5b72323c08 Mon Sep 17 00:00:00 2001
+From: Jon Derrick <jonathan.derrick@intel.com>
+Date: Fri, 18 May 2018 13:28:01 -0600
+Subject: [PATCH] x86/PCI: Add additional VMD device root ports to VMD AER quirk
+Git-commit: a5ad57e6b831a5ea99e128aae4372b5b72323c08
+Patch-mainline: v4.18-rc1
+References: bsc#1120058
+
+VMD devices change the source id of messages from child devices to the
+VMD endpoint. This patch adds additional VMD root port device ids to the
+AER quirk which requires walking the bus to determine which devices were
+throwing the error.
+
+Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 54ef19e90705..13f4485ca388 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -636,6 +636,10 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2030, quirk_no_aersid);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334a, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334b, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334c, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334d, quirk_no_aersid);
+
+ #ifdef CONFIG_PHYS_ADDR_T_64BIT
+
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Add-pci-big_root_window-option-for-AMD-64-bi.patch b/patches.arch/x86-PCI-Add-pci-big_root_window-option-for-AMD-64-bi.patch
new file mode 100644
index 0000000000..fd5c9cf19b
--- /dev/null
+++ b/patches.arch/x86-PCI-Add-pci-big_root_window-option-for-AMD-64-bi.patch
@@ -0,0 +1,109 @@
+From f32ab7547161b9fa7ebfbc4f18ea1eb3fd49fe25 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=3D=3FUTF-8=3Fq=3FChristian=3D20K=3DC3=3DB6nig=3F=3D?= <ckoenig.leichtzumerken@gmail.com>
+Date: Thu, 11 Jan 2018 14:23:29 +0100
+Subject: [PATCH] x86/PCI: Add "pci=big_root_window" option for AMD 64-bit windows
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: f32ab7547161b9fa7ebfbc4f18ea1eb3fd49fe25
+Patch-mainline: v4.15-rc8
+References: bsc#1120058
+
+Only try to enable a 64-bit window on AMD CPUs when "pci=big_root_window"
+is specified.
+
+This taints the kernel because the new 64-bit window uses address space we
+don't know anything about, and it may contain unreported devices or memory
+that would conflict with the window.
+
+The pci_amd_enable_64bit_bar() quirk that enables the window is specific to
+AMD CPUs. The generic solution would be to have the firmware enable the
+window and describe it in the host bridge's _CRS method, or at least
+describe it in the _PRS method so the OS would have the option of enabling
+it.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+[bhelgaas: changelog, extend doc, mention taint in dmesg]
+Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
+ arch/x86/include/asm/pci_x86.h | 1 +
+ arch/x86/pci/common.c | 5 +++++
+ arch/x86/pci/fixup.c | 7 ++++++-
+ 4 files changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
+index 6571fbfdb2a1..619638362416 100644
+--- a/Documentation/admin-guide/kernel-parameters.txt
++++ b/Documentation/admin-guide/kernel-parameters.txt
+@@ -3094,6 +3094,12 @@
+ pcie_scan_all Scan all possible PCIe devices. Otherwise we
+ only look for one device below a PCIe downstream
+ port.
++ big_root_window Try to add a big 64bit memory window to the PCIe
++ root complex on AMD CPUs. Some GFX hardware
++ can resize a BAR to allow access to all VRAM.
++ Adding the window is slightly risky (it may
++ conflict with unreported devices), so this
++ taints the kernel.
+
+ pcie_aspm= [PCIE] Forcibly enable or disable PCIe Active State Power
+ Management.
+diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
+index 7a5d6695abd3..eb66fa9cd0fc 100644
+--- a/arch/x86/include/asm/pci_x86.h
++++ b/arch/x86/include/asm/pci_x86.h
+@@ -38,6 +38,7 @@ do { \
+ #define PCI_NOASSIGN_ROMS 0x80000
+ #define PCI_ROOT_NO_CRS 0x100000
+ #define PCI_NOASSIGN_BARS 0x200000
++#define PCI_BIG_ROOT_WINDOW 0x400000
+
+ extern unsigned int pci_probe;
+ extern unsigned long pirq_table_addr;
+diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
+index 7a5350d08cef..563049c483a1 100644
+--- a/arch/x86/pci/common.c
++++ b/arch/x86/pci/common.c
+@@ -594,6 +594,11 @@ char *__init pcibios_setup(char *str)
+ } else if (!strcmp(str, "nocrs")) {
+ pci_probe |= PCI_ROOT_NO_CRS;
+ return NULL;
++#ifdef CONFIG_PHYS_ADDR_T_64BIT
++ } else if (!strcmp(str, "big_root_window")) {
++ pci_probe |= PCI_BIG_ROOT_WINDOW;
++ return NULL;
++#endif
+ } else if (!strcmp(str, "earlydump")) {
+ pci_early_dump_regs = 1;
+ return NULL;
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index e663d6bf1328..8bad19c7473d 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -667,6 +667,9 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ struct resource *res, *conflict;
+ struct pci_dev *other;
+
++ if (!(pci_probe & PCI_BIG_ROOT_WINDOW))
++ return;
++
+ /* Check that we are the only device of that type */
+ other = pci_get_device(dev->vendor, dev->device, NULL);
+ if (other != dev ||
+@@ -714,7 +717,9 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ res->start = conflict->end + 1;
+ }
+
+- dev_info(&dev->dev, "adding root bus resource %pR\n", res);
++ dev_info(&dev->dev, "adding root bus resource %pR (tainting kernel)\n",
++ res);
++ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
+
+ base = ((res->start >> 8) & AMD_141b_MMIO_BASE_MMIOBASE_MASK) |
+ AMD_141b_MMIO_BASE_RE_MASK | AMD_141b_MMIO_BASE_WE_MASK;
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Apply-VMD-s-AERSID-fixup-generically.patch b/patches.arch/x86-PCI-Apply-VMD-s-AERSID-fixup-generically.patch
new file mode 100644
index 0000000000..9165297924
--- /dev/null
+++ b/patches.arch/x86-PCI-Apply-VMD-s-AERSID-fixup-generically.patch
@@ -0,0 +1,48 @@
+From 4f475e8e0a6d4f5d430350d1f74f7e4899fb1692 Mon Sep 17 00:00:00 2001
+From: Jon Derrick <jonathan.derrick@intel.com>
+Date: Fri, 7 Sep 2018 13:22:30 -0600
+Subject: [PATCH] x86/PCI: Apply VMD's AERSID fixup generically
+Git-commit: 4f475e8e0a6d4f5d430350d1f74f7e4899fb1692
+Patch-mainline: v4.20-rc1
+References: bsc#1120058
+
+A root port Device ID changed between simulation and production. Rather
+than match Device IDs which may not be future-proof if left unmaintained,
+match all root ports which exist in a VMD domain.
+
+Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 13f4485ca388..30a5111ae5fd 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -629,17 +629,11 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8c10, quirk_apple_mbp_poweroff);
+ static void quirk_no_aersid(struct pci_dev *pdev)
+ {
+ /* VMD Domain */
+- if (is_vmd(pdev->bus))
++ if (is_vmd(pdev->bus) && pci_is_root_bus(pdev->bus))
+ pdev->bus->bus_flags |= PCI_BUS_FLAGS_NO_AERSID;
+ }
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2030, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334a, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334b, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334c, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x334d, quirk_no_aersid);
++DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
++ PCI_CLASS_BRIDGE_PCI, 8, quirk_no_aersid);
+
+ #ifdef CONFIG_PHYS_ADDR_T_64BIT
+
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Avoid-AMD-SB7xx-EHCI-USB-wakeup-defect.patch b/patches.arch/x86-PCI-Avoid-AMD-SB7xx-EHCI-USB-wakeup-defect.patch
new file mode 100644
index 0000000000..70aa6cb5c1
--- /dev/null
+++ b/patches.arch/x86-PCI-Avoid-AMD-SB7xx-EHCI-USB-wakeup-defect.patch
@@ -0,0 +1,59 @@
+From 0bf3730bbc41f155543fa63becb4ff436d6a00a9 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Fri, 16 Jun 2017 17:40:54 +0800
+Subject: [PATCH] x86/PCI: Avoid AMD SB7xx EHCI USB wakeup defect
+Git-commit: 0bf3730bbc41f155543fa63becb4ff436d6a00a9
+Patch-mainline: v4.13-rc1
+References: bsc#1120058
+
+On an AMD Carrizo laptop, when EHCI runtime PM is enabled, EHCI ports do
+not assert PME# for device plug/unplug events while in D3.
+
+As Alan Stern points out [1], the PME signal is not enabled when controller
+is in D3, therefore it's not being woken up when new devices get plugged
+in.
+
+Testing shows PME signal works when the EHCI power state is D2.
+
+Clear the PCI_PM_CAP_PME_D3 and PCI_PM_CAP_PME_D3cold bits in
+dev->pme_support to indicate the device will not assert PME# from those
+states.
+
+[1] http://lkml.kernel.org/r/Pine.LNX.4.44L0.1706121010010.2092-100000@iolanthe.rowland.org
+
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=196091
+Link: https://support.amd.com/TechDocs/46837.pdf (Section 23)
+Link: https://support.amd.com/TechDocs/42413.pdf (Appendix A2)
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+[bhelgaas: changelog, add parens in quirk]
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -573,6 +573,21 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x6fc0, pci_invalid_bar);
+
+ /*
++ * Device [1022:7808]
++ * 23. USB Wake on Connect/Disconnect with Low Speed Devices
++ * https://support.amd.com/TechDocs/46837.pdf
++ * Appendix A2
++ * https://support.amd.com/TechDocs/42413.pdf
++ */
++static void pci_fixup_amd_ehci_pme(struct pci_dev *dev)
++{
++ dev_info(&dev->dev, "PME# does not work under D3, disabling it\n");
++ dev->pme_support &= ~((PCI_PM_CAP_PME_D3 | PCI_PM_CAP_PME_D3cold)
++ >> PCI_PM_CAP_PME_SHIFT);
++}
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x7808, pci_fixup_amd_ehci_pme);
++
++/*
+ * Apple MacBook Pro: Avoid [mem 0x7fa00000-0x7fbfffff]
+ *
+ * Using the [mem 0x7fa00000-0x7fbfffff] region, e.g., by assigning it to
diff --git a/patches.arch/x86-PCI-Enable-AMD-64-bit-window-on-resume.patch b/patches.arch/x86-PCI-Enable-AMD-64-bit-window-on-resume.patch
new file mode 100644
index 0000000000..fa1f18c9f5
--- /dev/null
+++ b/patches.arch/x86-PCI-Enable-AMD-64-bit-window-on-resume.patch
@@ -0,0 +1,98 @@
+From 838cda3697073982acd276ac43387b2a0aed04b4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=3D=3FUTF-8=3Fq=3FChristian=3D20K=3DC3=3DB6nig=3F=3D?= <ckoenig.leichtzumerken@gmail.com>
+Date: Tue, 16 Jan 2018 10:43:17 +0100
+Subject: [PATCH] x86/PCI: Enable AMD 64-bit window on resume
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 838cda3697073982acd276ac43387b2a0aed04b4
+Patch-mainline: v4.15
+References: bsc#1120058
+
+Reenable the 64-bit window during resume.
+
+Fixes: fa564ad96366 ("x86/PCI: Enable a 64bit BAR on AMD Family 15h (Models 00-1f, 30-3f, 60-7f)")
+Reported-by: Tom St Denis <tom.stdenis@amd.com>
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 32 ++++++++++++++++++++------------
+ 1 file changed, 20 insertions(+), 12 deletions(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index f6a26e3cb476..54ef19e90705 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -662,11 +662,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
+ */
+ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ {
++ static const char *name = "PCI Bus 0000:00";
++ struct resource *res, *conflict;
+ u32 base, limit, high;
+ struct pci_dev *other;
+- struct resource *res;
+ unsigned i;
+- int r;
+
+ if (!(pci_probe & PCI_BIG_ROOT_WINDOW))
+ return;
+@@ -707,21 +707,26 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ * Allocate a 256GB window directly below the 0xfd00000000 hardware
+ * limit (see AMD Family 15h Models 30h-3Fh BKDG, sec 2.4.6).
+ */
+- res->name = "PCI Bus 0000:00";
++ res->name = name;
+ res->flags = IORESOURCE_PREFETCH | IORESOURCE_MEM |
+ IORESOURCE_MEM_64 | IORESOURCE_WINDOW;
+ res->start = 0xbd00000000ull;
+ res->end = 0xfd00000000ull - 1;
+
+- r = request_resource(&iomem_resource, res);
+- if (r) {
++ conflict = request_resource_conflict(&iomem_resource, res);
++ if (conflict) {
+ kfree(res);
+- return;
+- }
++ if (conflict->name != name)
++ return;
+
+- dev_info(&dev->dev, "adding root bus resource %pR (tainting kernel)\n",
+- res);
+- add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
++ /* We are resuming from suspend; just reenable the window */
++ res = conflict;
++ } else {
++ dev_info(&dev->dev, "adding root bus resource %pR (tainting kernel)\n",
++ res);
++ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
++ pci_bus_add_resource(dev->bus, res, 0);
++ }
+
+ base = ((res->start >> 8) & AMD_141b_MMIO_BASE_MMIOBASE_MASK) |
+ AMD_141b_MMIO_BASE_RE_MASK | AMD_141b_MMIO_BASE_WE_MASK;
+@@ -733,13 +738,16 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ pci_write_config_dword(dev, AMD_141b_MMIO_HIGH(i), high);
+ pci_write_config_dword(dev, AMD_141b_MMIO_LIMIT(i), limit);
+ pci_write_config_dword(dev, AMD_141b_MMIO_BASE(i), base);
+-
+- pci_bus_add_resource(dev->bus, res, 0);
+ }
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1401, pci_amd_enable_64bit_bar);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x141b, pci_amd_enable_64bit_bar);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1571, pci_amd_enable_64bit_bar);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x15b1, pci_amd_enable_64bit_bar);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1601, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1401, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x141b, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1571, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x15b1, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1601, pci_amd_enable_64bit_bar);
+
+ #endif
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Enable-a-64bit-BAR-on-AMD-Family-15h-Models-.patch b/patches.arch/x86-PCI-Enable-a-64bit-BAR-on-AMD-Family-15h-Models-.patch
new file mode 100644
index 0000000000..8b0a4551b1
--- /dev/null
+++ b/patches.arch/x86-PCI-Enable-a-64bit-BAR-on-AMD-Family-15h-Models-.patch
@@ -0,0 +1,121 @@
+From fa564ad9636651fd11ec2c79c48dee844066f73a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Tue, 24 Oct 2017 14:40:29 -0500
+Subject: [PATCH] x86/PCI: Enable a 64bit BAR on AMD Family 15h (Models 00-1f, 30-3f, 60-7f)
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: fa564ad9636651fd11ec2c79c48dee844066f73a
+Patch-mainline: v4.15-rc1
+References: bsc#1120058
+
+Manually enable a 64GB 64-bit BAR so we have enough room for graphics
+devices with large framebuffers.
+
+Most BIOSes don't enable this for compatibility reasons.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 85 ++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 85 insertions(+)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index f2228b150faa..e59378bf37d9 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -635,3 +635,88 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2030, quirk_no_aersid);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
++
++#ifdef CONFIG_PHYS_ADDR_T_64BIT
++
++#define AMD_141b_MMIO_BASE(x) (0x80 + (x) * 0x8)
++#define AMD_141b_MMIO_BASE_RE_MASK BIT(0)
++#define AMD_141b_MMIO_BASE_WE_MASK BIT(1)
++#define AMD_141b_MMIO_BASE_MMIOBASE_MASK GENMASK(31,8)
++
++#define AMD_141b_MMIO_LIMIT(x) (0x84 + (x) * 0x8)
++#define AMD_141b_MMIO_LIMIT_MMIOLIMIT_MASK GENMASK(31,8)
++
++#define AMD_141b_MMIO_HIGH(x) (0x180 + (x) * 0x4)
++#define AMD_141b_MMIO_HIGH_MMIOBASE_MASK GENMASK(7,0)
++#define AMD_141b_MMIO_HIGH_MMIOLIMIT_SHIFT 16
++#define AMD_141b_MMIO_HIGH_MMIOLIMIT_MASK GENMASK(23,16)
++
++/*
++ * The PCI Firmware Spec, rev 3.2, notes that ACPI should optionally allow
++ * configuring host bridge windows using the _PRS and _SRS methods.
++ *
++ * But this is rarely implemented, so we manually enable a large 64bit BAR for
++ * PCIe device on AMD Family 15h (Models 00h-1fh, 30h-3fh, 60h-7fh) Processors
++ * here.
++ */
++static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
++{
++ unsigned i;
++ u32 base, limit, high;
++ struct resource *res, *conflict;
++
++ for (i = 0; i < 8; i++) {
++ pci_read_config_dword(dev, AMD_141b_MMIO_BASE(i), &base);
++ pci_read_config_dword(dev, AMD_141b_MMIO_HIGH(i), &high);
++
++ /* Is this slot free? */
++ if (!(base & (AMD_141b_MMIO_BASE_RE_MASK |
++ AMD_141b_MMIO_BASE_WE_MASK)))
++ break;
++
++ base >>= 8;
++ base |= high << 24;
++
++ /* Abort if a slot already configures a 64bit BAR. */
++ if (base > 0x10000)
++ return;
++ }
++ if (i == 8)
++ return;
++
++ res = kzalloc(sizeof(*res), GFP_KERNEL);
++ if (!res)
++ return;
++
++ res->name = "PCI Bus 0000:00";
++ res->flags = IORESOURCE_PREFETCH | IORESOURCE_MEM |
++ IORESOURCE_MEM_64 | IORESOURCE_WINDOW;
++ res->start = 0x100000000ull;
++ res->end = 0xfd00000000ull - 1;
++
++ /* Just grab the free area behind system memory for this */
++ while ((conflict = request_resource_conflict(&iomem_resource, res)))
++ res->start = conflict->end + 1;
++
++ dev_info(&dev->dev, "adding root bus resource %pR\n", res);
++
++ base = ((res->start >> 8) & AMD_141b_MMIO_BASE_MMIOBASE_MASK) |
++ AMD_141b_MMIO_BASE_RE_MASK | AMD_141b_MMIO_BASE_WE_MASK;
++ limit = ((res->end + 1) >> 8) & AMD_141b_MMIO_LIMIT_MMIOLIMIT_MASK;
++ high = ((res->start >> 40) & AMD_141b_MMIO_HIGH_MMIOBASE_MASK) |
++ ((((res->end + 1) >> 40) << AMD_141b_MMIO_HIGH_MMIOLIMIT_SHIFT)
++ & AMD_141b_MMIO_HIGH_MMIOLIMIT_MASK);
++
++ pci_write_config_dword(dev, AMD_141b_MMIO_HIGH(i), high);
++ pci_write_config_dword(dev, AMD_141b_MMIO_LIMIT(i), limit);
++ pci_write_config_dword(dev, AMD_141b_MMIO_BASE(i), base);
++
++ pci_bus_add_resource(dev->bus, res, 0);
++}
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1401, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x141b, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1571, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x15b1, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1601, pci_amd_enable_64bit_bar);
++
++#endif
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Fix-infinite-loop-in-search-for-64bit-BAR-pl.patch b/patches.arch/x86-PCI-Fix-infinite-loop-in-search-for-64bit-BAR-pl.patch
new file mode 100644
index 0000000000..6185c80525
--- /dev/null
+++ b/patches.arch/x86-PCI-Fix-infinite-loop-in-search-for-64bit-BAR-pl.patch
@@ -0,0 +1,43 @@
+From 470195f82e4ea550b7c37736a12bf3fa565295ea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Wed, 29 Nov 2017 15:12:27 +0100
+Subject: [PATCH] x86/PCI: Fix infinite loop in search for 64bit BAR placement
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 470195f82e4ea550b7c37736a12bf3fa565295ea
+Patch-mainline: v4.15-rc4
+References: bsc#1120058
+
+Break the loop if we can't find some address space for a 64bit BAR.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 1e996df687a3..5328e86f73eb 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -696,8 +696,13 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ res->end = 0xfd00000000ull - 1;
+
+ /* Just grab the free area behind system memory for this */
+- while ((conflict = request_resource_conflict(&iomem_resource, res)))
++ while ((conflict = request_resource_conflict(&iomem_resource, res))) {
++ if (conflict->end >= res->end) {
++ kfree(res);
++ return;
++ }
+ res->start = conflict->end + 1;
++ }
+
+ dev_info(&dev->dev, "adding root bus resource %pR\n", res);
+
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Move-and-shrink-AMD-64-bit-window-to-avoid-c.patch b/patches.arch/x86-PCI-Move-and-shrink-AMD-64-bit-window-to-avoid-c.patch
new file mode 100644
index 0000000000..943b0c556b
--- /dev/null
+++ b/patches.arch/x86-PCI-Move-and-shrink-AMD-64-bit-window-to-avoid-c.patch
@@ -0,0 +1,83 @@
+From 03a551734cfc2b93f83950a595974e3c9cbd82fd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=3D=3FUTF-8=3Fq=3FChristian=3D20K=3DC3=3DB6nig=3F=3D?= <ckoenig.leichtzumerken@gmail.com>
+Date: Thu, 11 Jan 2018 14:23:30 +0100
+Subject: [PATCH] x86/PCI: Move and shrink AMD 64-bit window to avoid conflict
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 03a551734cfc2b93f83950a595974e3c9cbd82fd
+Patch-mainline: v4.15-rc8
+References: bsc#1120058
+
+Avoid problems with BIOS implementations which don't report all used
+resources to the OS by only allocating a 256GB window directly below the
+hardware limit (from the BKDG, sec 2.4.6).
+
+Fixes a silent reboot loop reported by Aaro Koskinen <aaro.koskinen@iki.fi>
+on an AMD-based MSI MS-7699/760GA-P43(FX) system. This was apparently
+caused by RAM or other unreported hardware that conflicted with the new
+window.
+
+Link: https://support.amd.com/TechDocs/49125_15h_Models_30h-3Fh_BKDG.pdf
+Link: https://lkml.kernel.org/r/20180105220412.fzpwqe4zljdawr36@darkstar.musicnaut.iki.fi
+Fixes: fa564ad96366 ("x86/PCI: Enable a 64bit BAR on AMD Family 15h (Models 00-1f, 30-3f, 60-7f)")
+Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
+Signed-off-by: Christian König <christian.koenig@amd.com>
+[bhelgaas: changelog, comment, Fixes:]
+Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 22 ++++++++++++----------
+ 1 file changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 8bad19c7473d..f6a26e3cb476 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -662,10 +662,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
+ */
+ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ {
+- unsigned i;
+ u32 base, limit, high;
+- struct resource *res, *conflict;
+ struct pci_dev *other;
++ struct resource *res;
++ unsigned i;
++ int r;
+
+ if (!(pci_probe & PCI_BIG_ROOT_WINDOW))
+ return;
+@@ -702,19 +703,20 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ if (!res)
+ return;
+
++ /*
++ * Allocate a 256GB window directly below the 0xfd00000000 hardware
++ * limit (see AMD Family 15h Models 30h-3Fh BKDG, sec 2.4.6).
++ */
+ res->name = "PCI Bus 0000:00";
+ res->flags = IORESOURCE_PREFETCH | IORESOURCE_MEM |
+ IORESOURCE_MEM_64 | IORESOURCE_WINDOW;
+- res->start = 0x100000000ull;
++ res->start = 0xbd00000000ull;
+ res->end = 0xfd00000000ull - 1;
+
+- /* Just grab the free area behind system memory for this */
+- while ((conflict = request_resource_conflict(&iomem_resource, res))) {
+- if (conflict->end >= res->end) {
+- kfree(res);
+- return;
+- }
+- res->start = conflict->end + 1;
++ r = request_resource(&iomem_resource, res);
++ if (r) {
++ kfree(res);
++ return;
+ }
+
+ dev_info(&dev->dev, "adding root bus resource %pR (tainting kernel)\n",
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Only-enable-a-64bit-BAR-on-single-socket-AMD.patch b/patches.arch/x86-PCI-Only-enable-a-64bit-BAR-on-single-socket-AMD.patch
new file mode 100644
index 0000000000..de3e040660
--- /dev/null
+++ b/patches.arch/x86-PCI-Only-enable-a-64bit-BAR-on-single-socket-AMD.patch
@@ -0,0 +1,63 @@
+From a19e2696135efb471981c1ae1ec3cb2b70c41a2e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Wed, 29 Nov 2017 15:12:28 +0100
+Subject: [PATCH] x86/PCI: Only enable a 64bit BAR on single-socket AMD Family 15h
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: a19e2696135efb471981c1ae1ec3cb2b70c41a2e
+Patch-mainline: v4.15-rc4
+References: bsc#1120058
+
+When we have a multi-socket system, each CPU core needs the same setup.
+Since this is tricky to do in the fixup code, don't enable a 64bit BAR on
+multi-socket systems for now.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 5328e86f73eb..e663d6bf1328 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -665,6 +665,16 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+ unsigned i;
+ u32 base, limit, high;
+ struct resource *res, *conflict;
++ struct pci_dev *other;
++
++ /* Check that we are the only device of that type */
++ other = pci_get_device(dev->vendor, dev->device, NULL);
++ if (other != dev ||
++ (other = pci_get_device(dev->vendor, dev->device, other))) {
++ /* This is a multi-socket system, don't touch it for now */
++ pci_dev_put(other);
++ return;
++ }
+
+ for (i = 0; i < 8; i++) {
+ pci_read_config_dword(dev, AMD_141b_MMIO_BASE(i), &base);
+@@ -719,10 +729,10 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
+
+ pci_bus_add_resource(dev->bus, res, 0);
+ }
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1401, pci_amd_enable_64bit_bar);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x141b, pci_amd_enable_64bit_bar);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1571, pci_amd_enable_64bit_bar);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x15b1, pci_amd_enable_64bit_bar);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1601, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1401, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x141b, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1571, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x15b1, pci_amd_enable_64bit_bar);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1601, pci_amd_enable_64bit_bar);
+
+ #endif
+--
+2.20.1
+
diff --git a/patches.arch/x86-PCI-Use-is_vmd-rather-than-relying-on-the-domain.patch b/patches.arch/x86-PCI-Use-is_vmd-rather-than-relying-on-the-domain.patch
new file mode 100644
index 0000000000..61919e25bb
--- /dev/null
+++ b/patches.arch/x86-PCI-Use-is_vmd-rather-than-relying-on-the-domain.patch
@@ -0,0 +1,35 @@
+From c37f23d44e866d079d30399cb358dd19617562a1 Mon Sep 17 00:00:00 2001
+From: Jon Derrick <jonathan.derrick@intel.com>
+Date: Thu, 17 Aug 2017 12:10:13 -0600
+Subject: [PATCH] x86/PCI: Use is_vmd() rather than relying on the domain number
+Git-commit: c37f23d44e866d079d30399cb358dd19617562a1
+Patch-mainline: v4.14-rc1
+References: bsc#1120058
+
+Use the is_vmd() predicate to identify devices below a VMD host rather than
+relying on the domain number.
+
+Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 4c2e318845ba..f2228b150faa 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -628,7 +628,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8c10, quirk_apple_mbp_poweroff);
+ static void quirk_no_aersid(struct pci_dev *pdev)
+ {
+ /* VMD Domain */
+- if (pdev->bus->sysdata && pci_domain_nr(pdev->bus) >= 0x10000)
++ if (is_vmd(pdev->bus))
+ pdev->bus->bus_flags |= PCI_BUS_FLAGS_NO_AERSID;
+ }
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2030, quirk_no_aersid);
+--
+2.20.1
+
diff --git a/patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch b/patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch
index 800cc6622e..0f1a6ad611 100644
--- a/patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch
+++ b/patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch
@@ -3,8 +3,7 @@ Date: Fri, 27 Jul 2018 07:36:20 -0500
Subject: ipmi:ssif: Add support for multi-part transmit messages > 2 parts
Git-commit: 10042504ed92c06077b8a20a4edd67ba784847d4
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
+Patch-mainline: v4.20-rc1
References: bsc#1103308
The spec was fairly confusing about how multi-part transmit messages
diff --git a/patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch b/patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch
index 55474079d0..a166b1dbb2 100644
--- a/patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch
+++ b/patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch
@@ -3,14 +3,14 @@ From: David Disseldorp <ddiss@suse.de>
Date: Mon, 8 Oct 2018 13:53:29 +0200
Subject: [PATCH 1/5] target: use ISCSI_IQN_LEN in iscsi_target_stat
References: bsc#1095805
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
+Patch-mainline: v4.20-rc1
Git-commit: df711553f4440e16af5b731ed41841dee1e2abb4
Move the ISCSI_IQN_LEN definition up, so that it can be used in more
places instead of a hardcoded value.
Signed-off-by: David Disseldorp <ddiss@suse.de>
+
---
drivers/target/iscsi/iscsi_target_stat.c | 4 ++--
include/target/iscsi/iscsi_target_core.h | 6 +++---
diff --git a/patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch b/patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch
index 3080ade3c6..bd79b96894 100644
--- a/patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch
+++ b/patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch
@@ -3,14 +3,14 @@ From: David Disseldorp <ddiss@suse.de>
Date: Mon, 8 Oct 2018 14:15:17 +0200
Subject: [PATCH 2/5] target: log Data-Out timeouts as errors
References: bsc#1095805
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
+Patch-mainline: v4.20-rc1
Git-commit: d9a771fd42712cd530544674b04bc3e42cc7927a
Data-Out timeouts resulting in connection outages should be logged as
errors. Include the I_T Nexus in the message to aid path identification.
Signed-off-by: David Disseldorp <ddiss@suse.de>
+
---
drivers/target/iscsi/iscsi_target_erl1.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch b/patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch
index 9ac0514e66..61e423eff7 100644
--- a/patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch
+++ b/patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch
@@ -3,8 +3,7 @@ From: David Disseldorp <ddiss@suse.de>
Date: Mon, 8 Oct 2018 14:23:27 +0200
Subject: [PATCH 3/5] target: log NOP ping timeouts as errors
References: bsc#1095805
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
+Patch-mainline: v4.20-rc1
Git-commit: c62ae3005b3551078a8cf959de8018a2852708bd
Events resulting in connection outages like this should be logged as
diff --git a/patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch b/patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch
index 07cfab785b..b996efc7c7 100644
--- a/patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch
+++ b/patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch
@@ -3,13 +3,13 @@ From: David Disseldorp <ddiss@suse.de>
Date: Thu, 11 Oct 2018 11:02:49 +0200
Subject: [PATCH 4/5] target: split out helper for cxn timeout error stashing
References: bsc#1095805
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
+Patch-mainline: v4.20-rc1
Git-commit: dce6190ca78adf7cf6fe794833653e4cb1cb2b73
Replace existing nested code blocks with helper function calls.
Signed-off-by: David Disseldorp <ddiss@suse.de>
+
---
drivers/target/iscsi/iscsi_target_erl0.c | 15 +------------
drivers/target/iscsi/iscsi_target_util.c | 36 ++++++++++++++++++--------------
diff --git a/patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch b/patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch
index 4decbfe2b1..7880eaaa3f 100644
--- a/patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch
+++ b/patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch
@@ -3,8 +3,7 @@ From: David Disseldorp <ddiss@suse.de>
Date: Mon, 8 Oct 2018 14:17:53 +0200
Subject: [PATCH 5/5] target: stash sess_err_stats on Data-Out timeout
References: bsc#1095805
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
+Patch-mainline: v4.20-rc1
Git-commit: 33b3f8ca510a2181574d6dcbd312c2b07dd9f0fa
sess_err_stats are currently filled on NOP ping timeout, but not
@@ -12,6 +11,7 @@ Data-Out timeout. Stash details of Data-Out timeouts using a
ISCSI_SESS_ERR_CXN_TIMEOUT value for last_sess_failure_type.
Signed-off-by: David Disseldorp <ddiss@suse.de>
+
---
drivers/target/iscsi/iscsi_target_erl1.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/patches.drivers/PCI-Add-ACS-quirk-for-APM-X-Gene-devices.patch b/patches.drivers/PCI-Add-ACS-quirk-for-APM-X-Gene-devices.patch
new file mode 100644
index 0000000000..829cc833b2
--- /dev/null
+++ b/patches.drivers/PCI-Add-ACS-quirk-for-APM-X-Gene-devices.patch
@@ -0,0 +1,59 @@
+From a0418aa262dfbe4011df85c8d40993bf21d53cd2 Mon Sep 17 00:00:00 2001
+From: Feng Kan <fkan@apm.com>
+Date: Thu, 10 Aug 2017 16:06:33 -0500
+Subject: [PATCH] PCI: Add ACS quirk for APM X-Gene devices
+Git-commit: a0418aa262dfbe4011df85c8d40993bf21d53cd2
+Patch-mainline: v4.14-rc1
+References: bsc#1120058
+
+The APM X-Gene PCIe root port does not support ACS at this point. However,
+the hardware provides isolation and source validation through the SMMU.
+The stream ID generated by the PCIe ports contain both the bus/device/
+function number as well as the port ID in its 3 most significant bits.
+Turn on ACS but disable all the peer-to-peer features.
+
+Signed-off-by: Feng Kan <fkan@apm.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
+Acked-by: Tanmay Inamdar <tinamdar@apm.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index 15ee4e9af633..92bea8accc35 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -4137,6 +4137,18 @@ static int pci_quirk_cavium_acs(struct pci_dev *dev, u16 acs_flags)
+ return acs_flags ? 0 : 1;
+ }
+
++static int pci_quirk_xgene_acs(struct pci_dev *dev, u16 acs_flags)
++{
++ /*
++ * X-Gene root matching this quirk do not allow peer-to-peer
++ * transactions with others, allowing masking out these bits as if they
++ * were unimplemented in the ACS capability.
++ */
++ acs_flags &= ~(PCI_ACS_SV | PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_UF);
++
++ return acs_flags ? 0 : 1;
++}
++
+ /*
+ * Many Intel PCH root ports do provide ACS-like features to disable peer
+ * transactions and validate bus numbers in requests, but do not provide an
+@@ -4385,6 +4397,8 @@ static const struct pci_dev_acs_enabled {
+ { 0x10df, 0x720, pci_quirk_mf_endpoint_acs }, /* Emulex Skyhawk-R */
+ /* Cavium ThunderX */
+ { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
++ /* APM X-Gene */
++ { PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
+ { 0 }
+ };
+
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-Add-ACS-quirk-for-Ampere-root-ports.patch b/patches.drivers/PCI-Add-ACS-quirk-for-Ampere-root-ports.patch
new file mode 100644
index 0000000000..6035cc7ba9
--- /dev/null
+++ b/patches.drivers/PCI-Add-ACS-quirk-for-Ampere-root-ports.patch
@@ -0,0 +1,61 @@
+From 4ef76ad0462cf25ce948541c8724eaa8a8365e1d Mon Sep 17 00:00:00 2001
+From: Feng Kan <fkan@apm.com>
+Date: Tue, 20 Feb 2018 19:19:27 -0800
+Subject: [PATCH] PCI: Add ACS quirk for Ampere root ports
+Git-commit: 4ef76ad0462cf25ce948541c8724eaa8a8365e1d
+Patch-mainline: v4.17-rc1
+References: bsc#1120058
+
+The Ampere Computing PCIe root port does not support ACS at this point.
+However, the hardware provides isolation and source validation through the
+SMMU. The stream ID generated by the PCIe ports contain both the
+bus/device/function number as well as the port ID in its 3 most significant
+bits. Turn on ACS but disable all the peer-to-peer features.
+
+APM is being rebranded to Ampere. The Vendor and Device IDs change, but
+the functionality stays the same.
+
+Signed-off-by: Feng Kan <fkan@apm.com>
+Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 9 +++++++++
+ include/linux/pci_ids.h | 1 +
+ 2 files changed, 10 insertions(+)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index fc734014206f..57748a3b83f0 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -4514,6 +4514,15 @@ static const struct pci_dev_acs_enabled {
+ { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
+ /* APM X-Gene */
+ { PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
++ /* Ampere Computing */
++ { PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE007, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE008, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE009, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE00A, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE00B, pci_quirk_xgene_acs },
++ { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs },
+ { 0 }
+ };
+
+diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
+index a6b30667a331..c875d4223f44 100644
+--- a/include/linux/pci_ids.h
++++ b/include/linux/pci_ids.h
+@@ -1333,6 +1333,7 @@
+ #define PCI_DEVICE_ID_IMS_TT3D 0x9135
+
+ #define PCI_VENDOR_ID_AMCC 0x10e8
++#define PCI_VENDOR_ID_AMPERE 0x1def
+
+ #define PCI_VENDOR_ID_INTERG 0x10ea
+ #define PCI_DEVICE_ID_INTERG_1682 0x1682
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-Convert-device-specific-ACS-quirks-from-NULL-ter.patch b/patches.drivers/PCI-Convert-device-specific-ACS-quirks-from-NULL-ter.patch
new file mode 100644
index 0000000000..17928e5c0e
--- /dev/null
+++ b/patches.drivers/PCI-Convert-device-specific-ACS-quirks-from-NULL-ter.patch
@@ -0,0 +1,59 @@
+From 3b269185c19268027ac79388b03c9d7322518e4c Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Thu, 9 Aug 2018 16:45:47 -0500
+Subject: [PATCH] PCI: Convert device-specific ACS quirks from NULL termination to ARRAY_SIZE
+Git-commit: 3b269185c19268027ac79388b03c9d7322518e4c
+Patch-mainline: v4.19-rc1
+References: bsc#1120058
+
+Convert the search for device-specific ACS enable quirks from searching a
+NULL-terminated array to iterating through the array, which is always
+fixed-size anyway. No functional change intended.
+
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+[bhelgaas: changelog, split to separate patch for reviewability]
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index f439de848658..823d8e4b4b37 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -4560,20 +4560,20 @@ static const struct pci_dev_enable_acs {
+ } pci_dev_enable_acs[] = {
+ { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_pch_acs },
+ { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_spt_pch_acs },
+- { 0 }
+ };
+
+ int pci_dev_specific_enable_acs(struct pci_dev *dev)
+ {
+- const struct pci_dev_enable_acs *i;
+- int ret;
++ const struct pci_dev_enable_acs *p;
++ int i, ret;
+
+- for (i = pci_dev_enable_acs; i->enable_acs; i++) {
+- if ((i->vendor == dev->vendor ||
+- i->vendor == (u16)PCI_ANY_ID) &&
+- (i->device == dev->device ||
+- i->device == (u16)PCI_ANY_ID)) {
+- ret = i->enable_acs(dev);
++ for (i = 0; i < ARRAY_SIZE(pci_dev_enable_acs); i++) {
++ p = &pci_dev_enable_acs[i];
++ if ((p->vendor == dev->vendor ||
++ p->vendor == (u16)PCI_ANY_ID) &&
++ (p->device == dev->device ||
++ p->device == (u16)PCI_ANY_ID)) {
++ ret = p->enable_acs(dev);
+ if (ret >= 0)
+ return ret;
+ }
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-Delay-after-FLR-of-Intel-DC-P3700-NVMe.patch b/patches.drivers/PCI-Delay-after-FLR-of-Intel-DC-P3700-NVMe.patch
new file mode 100644
index 0000000000..37a3c9b43d
--- /dev/null
+++ b/patches.drivers/PCI-Delay-after-FLR-of-Intel-DC-P3700-NVMe.patch
@@ -0,0 +1,67 @@
+From 51ba09452d11b17248d80c740c2fd14c9fdc2c99 Mon Sep 17 00:00:00 2001
+From: Alex Williamson <alex.williamson@redhat.com>
+Date: Thu, 9 Aug 2018 14:04:31 -0600
+Subject: [PATCH] PCI: Delay after FLR of Intel DC P3700 NVMe
+Git-commit: 51ba09452d11b17248d80c740c2fd14c9fdc2c99
+Patch-mainline: v4.19-rc1
+References: bsc#1120058
+
+Add a device-specific reset for Intel DC P3700 NVMe device which exhibits a
+timeout failure in drivers waiting for the ready status to update after
+NVMe enable if the driver interacts with the device too soon after FLR. As
+this has been observed in device assignment scenarios, resolve this with a
+device-specific reset quirk to add an additional, heuristically determined,
+delay after the FLR completes.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1592654
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index e249676fbf04..deb051583eda 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -3746,6 +3746,27 @@ static int nvme_disable_and_flr(struct pci_dev *dev, int probe)
+ return 0;
+ }
+
++/*
++ * Intel DC P3700 NVMe controller will timeout waiting for ready status
++ * to change after NVMe enable if the driver starts interacting with the
++ * device too soon after FLR. A 250ms delay after FLR has heuristically
++ * proven to produce reliably working results for device assignment cases.
++ */
++static int delay_250ms_after_flr(struct pci_dev *dev, int probe)
++{
++ if (!pcie_has_flr(dev))
++ return -ENOTTY;
++
++ if (probe)
++ return 0;
++
++ pcie_flr(dev);
++
++ msleep(250);
++
++ return 0;
++}
++
+ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF,
+ reset_intel_82599_sfp_virtfn },
+@@ -3754,6 +3775,7 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IVB_M2_VGA,
+ reset_ivb_igd },
+ { PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr },
++ { PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr },
+ { PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID,
+ reset_chelsio_generic_dev },
+ { 0 }
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-Disable-Samsung-SM961-PM961-NVMe-before-FLR.patch b/patches.drivers/PCI-Disable-Samsung-SM961-PM961-NVMe-before-FLR.patch
new file mode 100644
index 0000000000..2acee583d2
--- /dev/null
+++ b/patches.drivers/PCI-Disable-Samsung-SM961-PM961-NVMe-before-FLR.patch
@@ -0,0 +1,129 @@
+From ffb0863426eb91a14101376051cfafa5527e665d Mon Sep 17 00:00:00 2001
+From: Alex Williamson <alex.williamson@redhat.com>
+Date: Thu, 9 Aug 2018 15:18:33 -0500
+Subject: [PATCH] PCI: Disable Samsung SM961/PM961 NVMe before FLR
+Git-commit: ffb0863426eb91a14101376051cfafa5527e665d
+Patch-mainline: v4.19-rc1
+References: bsc#1120058
+
+The Samsung SM961/PM961 (960 EVO) sometimes fails to return from FLR with
+the PCI config space reading back as -1. A reproducible instance of this
+behavior is resolved by clearing the enable bit in the NVMe configuration
+register and waiting for the ready status to clear (disabling the NVMe
+controller) prior to FLR.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1542494
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 83 insertions(+)
+
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -25,6 +25,7 @@
+ #include <linux/sched.h>
+ #include <linux/ktime.h>
+ #include <linux/mm.h>
++#include <linux/nvme.h>
+ #include <asm/dma.h> /* isa_dma_bridge_buggy */
+ #include "pci.h"
+
+@@ -3832,6 +3833,87 @@ static int reset_chelsio_generic_dev(str
+ #define PCI_DEVICE_ID_INTEL_IVB_M_VGA 0x0156
+ #define PCI_DEVICE_ID_INTEL_IVB_M2_VGA 0x0166
+
++/*
++ * The Samsung SM961/PM961 controller can sometimes enter a fatal state after
++ * FLR where config space reads from the device return -1. We seem to be
++ * able to avoid this condition if we disable the NVMe controller prior to
++ * FLR. This quirk is generic for any NVMe class device requiring similar
++ * assistance to quiesce the device prior to FLR.
++ *
++ * NVMe specification: https://nvmexpress.org/resources/specifications/
++ * Revision 1.0e:
++ * Chapter 2: Required and optional PCI config registers
++ * Chapter 3: NVMe control registers
++ * Chapter 7.3: Reset behavior
++ */
++static int nvme_disable_and_flr(struct pci_dev *dev, int probe)
++{
++ void __iomem *bar;
++ u16 cmd;
++ u32 cfg;
++
++ if (dev->class != PCI_CLASS_STORAGE_EXPRESS ||
++ !pcie_has_flr(dev) || !pci_resource_start(dev, 0))
++ return -ENOTTY;
++
++ if (probe)
++ return 0;
++
++ bar = pci_iomap(dev, 0, NVME_REG_CC + sizeof(cfg));
++ if (!bar)
++ return -ENOTTY;
++
++ pci_read_config_word(dev, PCI_COMMAND, &cmd);
++ pci_write_config_word(dev, PCI_COMMAND, cmd | PCI_COMMAND_MEMORY);
++
++ cfg = readl(bar + NVME_REG_CC);
++
++ /* Disable controller if enabled */
++ if (cfg & NVME_CC_ENABLE) {
++ u32 cap = readl(bar + NVME_REG_CAP);
++ unsigned long timeout;
++
++ /*
++ * Per nvme_disable_ctrl() skip shutdown notification as it
++ * could complete commands to the admin queue. We only intend
++ * to quiesce the device before reset.
++ */
++ cfg &= ~(NVME_CC_SHN_MASK | NVME_CC_ENABLE);
++
++ writel(cfg, bar + NVME_REG_CC);
++
++ /*
++ * Some controllers require an additional delay here, see
++ * NVME_QUIRK_DELAY_BEFORE_CHK_RDY. None of those are yet
++ * supported by this quirk.
++ */
++
++ /* Cap register provides max timeout in 500ms increments */
++ timeout = ((NVME_CAP_TIMEOUT(cap) + 1) * HZ / 2) + jiffies;
++
++ for (;;) {
++ u32 status = readl(bar + NVME_REG_CSTS);
++
++ /* Ready status becomes zero on disable complete */
++ if (!(status & NVME_CSTS_RDY))
++ break;
++
++ msleep(100);
++
++ if (time_after(jiffies, timeout)) {
++ dev_warn(&dev->dev, "Timeout waiting for NVMe ready status to clear after disable\n");
++ break;
++ }
++ }
++ }
++
++ pci_iounmap(dev, bar);
++
++ pcie_flr(dev);
++
++ return 0;
++}
++
+ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF,
+ reset_intel_82599_sfp_virtfn },
+@@ -3839,6 +3921,7 @@ static const struct pci_dev_reset_method
+ reset_ivb_igd },
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IVB_M2_VGA,
+ reset_ivb_igd },
++ { PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr },
+ { PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID,
+ reset_chelsio_generic_dev },
+ { 0 }
diff --git a/patches.drivers/PCI-Export-pcie_has_flr.patch b/patches.drivers/PCI-Export-pcie_has_flr.patch
new file mode 100644
index 0000000000..92031d6b49
--- /dev/null
+++ b/patches.drivers/PCI-Export-pcie_has_flr.patch
@@ -0,0 +1,50 @@
+From 2d2917f7747805a1f4188672f308d82a8ba01700 Mon Sep 17 00:00:00 2001
+From: Alex Williamson <alex.williamson@redhat.com>
+Date: Thu, 9 Aug 2018 14:04:14 -0600
+Subject: [PATCH] PCI: Export pcie_has_flr()
+Git-commit: 2d2917f7747805a1f4188672f308d82a8ba01700
+Patch-mainline: v4.19-rc1
+References: bsc#1120058
+
+pcie_flr() suggests pcie_has_flr() to ensure that PCIe FLR support is
+present prior to calling. pcie_flr() is exported while pcie_has_flr()
+is not. Resolve this.
+
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/pci.c | 3 ++-
+ include/linux/pci.h | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -4050,7 +4050,7 @@ static void pci_flr_wait(struct pci_dev
+ * Returns true if the device advertises support for PCIe function level
+ * resets.
+ */
+-static bool pcie_has_flr(struct pci_dev *dev)
++bool pcie_has_flr(struct pci_dev *dev)
+ {
+ u32 cap;
+
+@@ -4060,6 +4060,7 @@ static bool pcie_has_flr(struct pci_dev
+ pcie_capability_read_dword(dev, PCI_EXP_DEVCAP, &cap);
+ return cap & PCI_EXP_DEVCAP_FLR;
+ }
++EXPORT_SYMBOL_GPL(pcie_has_flr);
+
+ /**
+ * pcie_flr - initiate a PCIe function level reset
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -1062,6 +1062,7 @@ int pcie_get_mps(struct pci_dev *dev);
+ int pcie_set_mps(struct pci_dev *dev, int mps);
+ int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
+ enum pcie_link_width *width);
++bool pcie_has_flr(struct pci_dev *dev);
+ void pcie_flr(struct pci_dev *dev);
+ int __pci_reset_function(struct pci_dev *dev);
+ int __pci_reset_function_locked(struct pci_dev *dev);
diff --git a/patches.drivers/PCI-Mark-Ceton-InfiniTV4-INTx-masking-as-broken.patch b/patches.drivers/PCI-Mark-Ceton-InfiniTV4-INTx-masking-as-broken.patch
new file mode 100644
index 0000000000..3fb2cb1f52
--- /dev/null
+++ b/patches.drivers/PCI-Mark-Ceton-InfiniTV4-INTx-masking-as-broken.patch
@@ -0,0 +1,40 @@
+From 7c1efb686817881d7dc0b06572785ec8f17d2823 Mon Sep 17 00:00:00 2001
+From: Bjorn Helgaas <bhelgaas@google.com>
+Date: Fri, 15 Dec 2017 14:51:44 -0600
+Subject: [PATCH] PCI: Mark Ceton InfiniTV4 INTx masking as broken
+Git-commit: 7c1efb686817881d7dc0b06572785ec8f17d2823
+Patch-mainline: v4.16-rc1
+References: bsc#1120058
+
+PCI_COMMAND_INTX_DISABLE is writable on the Ceton InfiniTV4, indicating
+that the device supports disabling the INTx# signal, but it apparently
+doesn't work.
+
+Mark the device so we know we can't use PCI_COMMAND_INTX_DISABLE to disable
+its interrupts.
+
+Link: https://lkml.kernel.org/r/92a65068-60b2-c1a8-9e17-ac41fe3c5c93@code.jackst.com
+Reported-by: John Strader <strader.john@code.jackst.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index 10684b17d0bd..bb9737ec64b5 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -3215,6 +3215,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CHELSIO, 0x0030,
+ quirk_broken_intx_masking);
+ DECLARE_PCI_FIXUP_FINAL(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
+ quirk_broken_intx_masking);
++DECLARE_PCI_FIXUP_FINAL(0x1b7c, 0x0004, /* Ceton InfiniTV4 */
++ quirk_broken_intx_masking);
+
+ /*
+ * Realtek RTL8169 PCI Gigabit Ethernet Controller (rev 10)
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-Mark-Intel-XXV710-NIC-INTx-masking-as-broken.patch b/patches.drivers/PCI-Mark-Intel-XXV710-NIC-INTx-masking-as-broken.patch
new file mode 100644
index 0000000000..c3e86c6820
--- /dev/null
+++ b/patches.drivers/PCI-Mark-Intel-XXV710-NIC-INTx-masking-as-broken.patch
@@ -0,0 +1,41 @@
+From d40b7fd2cbcbeeff36e52aef2aa44e03a2ab7345 Mon Sep 17 00:00:00 2001
+From: Alex Williamson <alex.williamson@redhat.com>
+Date: Wed, 7 Jun 2017 13:00:48 -0600
+Subject: [PATCH] PCI: Mark Intel XXV710 NIC INTx masking as broken
+Git-commit: d40b7fd2cbcbeeff36e52aef2aa44e03a2ab7345
+Patch-mainline: v4.13-rc1
+References: bsc#1120058
+
+Just like the other XL710 and X710 variants, the XXV710 device IDs appear
+to have the same hardware bug, the status register doesn't report pending
+interrupts resulting in "irq xx: nobody cared..." errors from the spurious
+interrupt handler when we try to use it with device assignment.
+
+Reported-by: Stefan Assmann <sassmann@redhat.com>
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index 085fb787aa9e..fb8214938c0d 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -3236,6 +3236,10 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1588,
+ quirk_broken_intx_masking);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1589,
+ quirk_broken_intx_masking);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x158a,
++ quirk_broken_intx_masking);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x158b,
++ quirk_broken_intx_masking);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d0,
+ quirk_broken_intx_masking);
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d1,
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-Mark-fall-through-switch-cases-before-enabling-W.patch b/patches.drivers/PCI-Mark-fall-through-switch-cases-before-enabling-W.patch
new file mode 100644
index 0000000000..6ebdd97a44
--- /dev/null
+++ b/patches.drivers/PCI-Mark-fall-through-switch-cases-before-enabling-W.patch
@@ -0,0 +1,91 @@
+From d6488ac19aabcc6c85a74b69eaf1b7301124c323 Mon Sep 17 00:00:00 2001
+From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
+Date: Thu, 5 Jul 2018 09:56:00 -0500
+Subject: [PATCH] PCI: Mark fall-through switch cases before enabling -Wimplicit-fallthrough
+Git-commit: d6488ac19aabcc6c85a74b69eaf1b7301124c323
+Patch-mainline: v4.19-rc1
+References: bsc#1120058
+
+In preparation to enabling -Wimplicit-fallthrough, mark switch cases where
+we are expecting to fall through.
+
+Warning level 2 was used: -Wimplicit-fallthrough=2
+
+Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/hotplug/pciehp_ctrl.c | 2 ++
+ drivers/pci/hotplug/shpchp_ctrl.c | 2 ++
+ drivers/pci/pci.c | 1 +
+ drivers/pci/quirks.c | 1 +
+ 4 files changed, 6 insertions(+)
+
+diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
+index c684faa43387..cfc46e82ceca 100644
+--- a/drivers/pci/hotplug/pciehp_ctrl.c
++++ b/drivers/pci/hotplug/pciehp_ctrl.c
+@@ -436,6 +436,7 @@ int pciehp_sysfs_enable_slot(struct slot *p_slot)
+ switch (p_slot->state) {
+ case BLINKINGON_STATE:
+ cancel_delayed_work(&p_slot->work);
++ /* fall through */
+ case STATIC_STATE:
+ p_slot->state = POWERON_STATE;
+ mutex_unlock(&p_slot->lock);
+@@ -473,6 +474,7 @@ int pciehp_sysfs_disable_slot(struct slot *p_slot)
+ switch (p_slot->state) {
+ case BLINKINGOFF_STATE:
+ cancel_delayed_work(&p_slot->work);
++ /* fall through */
+ case STATIC_STATE:
+ p_slot->state = POWEROFF_STATE;
+ mutex_unlock(&p_slot->lock);
+diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c
+index 1047b56e5730..1267dcc5a531 100644
+--- a/drivers/pci/hotplug/shpchp_ctrl.c
++++ b/drivers/pci/hotplug/shpchp_ctrl.c
+@@ -654,6 +654,7 @@ int shpchp_sysfs_enable_slot(struct slot *p_slot)
+ switch (p_slot->state) {
+ case BLINKINGON_STATE:
+ cancel_delayed_work(&p_slot->work);
++ /* fall through */
+ case STATIC_STATE:
+ p_slot->state = POWERON_STATE;
+ mutex_unlock(&p_slot->lock);
+@@ -689,6 +690,7 @@ int shpchp_sysfs_disable_slot(struct slot *p_slot)
+ switch (p_slot->state) {
+ case BLINKINGOFF_STATE:
+ cancel_delayed_work(&p_slot->work);
++ /* fall through */
+ case STATIC_STATE:
+ p_slot->state = POWEROFF_STATE;
+ mutex_unlock(&p_slot->lock);
+diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
+index 97acba712e4e..f5c6ab14fb31 100644
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -2045,6 +2045,7 @@ static pci_power_t pci_target_state(struct pci_dev *dev, bool wakeup)
+ case PCI_D2:
+ if (pci_no_d1d2(dev))
+ break;
++ /* else: fall through */
+ default:
+ target_state = state;
+ }
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index f439de848658..502275c092ae 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -2105,6 +2105,7 @@ static void quirk_netmos(struct pci_dev *dev)
+ if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM &&
+ dev->subsystem_device == 0x0299)
+ return;
++ /* else: fall through */
+ case PCI_DEVICE_ID_NETMOS_9735:
+ case PCI_DEVICE_ID_NETMOS_9745:
+ case PCI_DEVICE_ID_NETMOS_9845:
+--
+2.20.1
+
diff --git a/patches.drivers/PCI-iproc-Activate-PAXC-bridge-quirk-for-more-device.patch b/patches.drivers/PCI-iproc-Activate-PAXC-bridge-quirk-for-more-device.patch
new file mode 100644
index 0000000000..cca837ed4d
--- /dev/null
+++ b/patches.drivers/PCI-iproc-Activate-PAXC-bridge-quirk-for-more-device.patch
@@ -0,0 +1,34 @@
+From b95e2cd021938d2c3455fd2fce69b4845de0b85f Mon Sep 17 00:00:00 2001
+From: Ray Jui <ray.jui@broadcom.com>
+Date: Mon, 11 Jun 2018 17:21:03 -0700
+Subject: [PATCH] PCI: iproc: Activate PAXC bridge quirk for more devices
+Git-commit: b95e2cd021938d2c3455fd2fce69b4845de0b85f
+Patch-mainline: v4.19-rc1
+References: bsc#1120058
+
+Activate PAXC bridge quirk for more PAXC based PCIe root complex with
+the following PCIe device ID:
+0xd750, 0xd802, 0xd804
+
+Signed-off-by: Ray Jui <ray.jui@broadcom.com>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+Reviewed-by: Oza Pawandeep <poza@codeaurora.org>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/pci/quirks.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -2298,6 +2298,9 @@ static void quirk_paxc_bridge(struct pci
+ }
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16cd, quirk_paxc_bridge);
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x16f0, quirk_paxc_bridge);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd750, quirk_paxc_bridge);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd802, quirk_paxc_bridge);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0xd804, quirk_paxc_bridge);
+ #endif
+
+ /* Originally in EDAC sources for i82875P:
diff --git a/patches.drivers/iommu-amd-fix-amd_iommu-force_isolation b/patches.drivers/iommu-amd-fix-amd_iommu-force_isolation
new file mode 100644
index 0000000000..6a5ec7bb67
--- /dev/null
+++ b/patches.drivers/iommu-amd-fix-amd_iommu-force_isolation
@@ -0,0 +1,52 @@
+From: Yu Zhao <yuzhao@google.com>
+Date: Thu, 6 Dec 2018 14:39:15 -0700
+Subject: iommu/amd: Fix amd_iommu=force_isolation
+Git-commit: c12b08ebbe16f0d3a96a116d86709b04c1ee8e74
+Patch-mainline: v5.0-rc1
+References: bsc#1106105
+
+The parameter is still there but it's ignored. We need to check its
+value before deciding to go into passthrough mode for AMD IOMMU v2
+capable device.
+
+We occasionally use this parameter to force v2 capable device into
+translation mode to debug memory corruption that we suspect is
+caused by DMA writes.
+
+To address the following comment from Joerg Roedel on the first
+version, v2 capability of device is completely ignored.
+> This breaks the iommu_v2 use-case, as it needs a direct mapping for the
+> devices that support it.
+
+And from Documentation/admin-guide/kernel-parameters.txt:
+ This option does not override iommu=pt
+
+Fixes: aafd8ba0ca74 ("iommu/amd: Implement add_device and remove_device")
+
+Signed-off-by: Yu Zhao <yuzhao@google.com>
+Signed-off-by: Joerg Roedel <jroedel@suse.de>
+---
+ drivers/iommu/amd_iommu.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
+index c5d78c87248a..49a669b1ce11 100644
+--- a/drivers/iommu/amd_iommu.c
++++ b/drivers/iommu/amd_iommu.c
+@@ -440,7 +440,14 @@ static int iommu_init_device(struct device *dev)
+
+ dev_data->alias = get_alias(dev);
+
+- if (dev_is_pci(dev) && pci_iommuv2_capable(to_pci_dev(dev))) {
++ /*
++ * By default we use passthrough mode for IOMMUv2 capable device.
++ * But if amd_iommu=force_isolation is set (e.g. to debug DMA to
++ * invalid address), we ignore the capability for the device so
++ * it'll be forced to go into translation mode.
++ */
++ if ((iommu_pass_through || !amd_iommu_force_isolation) &&
++ dev_is_pci(dev) && pci_iommuv2_capable(to_pci_dev(dev))) {
+ struct amd_iommu *iommu;
+
+ iommu = amd_iommu_rlookup_table[dev_data->devid];
+
diff --git a/patches.drivers/iommu-vt-d-handle-domain-agaw-being-less-than-iommu-agaw b/patches.drivers/iommu-vt-d-handle-domain-agaw-being-less-than-iommu-agaw
new file mode 100644
index 0000000000..5ea5bb81ef
--- /dev/null
+++ b/patches.drivers/iommu-vt-d-handle-domain-agaw-being-less-than-iommu-agaw
@@ -0,0 +1,58 @@
+From: Sohil Mehta <sohil.mehta@intel.com>
+Date: Wed, 21 Nov 2018 15:29:33 -0800
+Subject: iommu/vt-d: Handle domain agaw being less than iommu agaw
+Git-commit: 3569dd07aaad71920c5ea4da2d5cc9a167c1ffd4
+Patch-mainline: v5.0-rc1
+References: bsc#1106105
+
+The Intel IOMMU driver opportunistically skips a few top level page
+tables from the domain paging directory while programming the IOMMU
+context entry. However there is an implicit assumption in the code that
+domain's adjusted guest address width (agaw) would always be greater
+than IOMMU's agaw.
+
+The IOMMU capabilities in an upcoming platform cause the domain's agaw
+to be lower than IOMMU's agaw. The issue is seen when the IOMMU supports
+both 4-level and 5-level paging. The domain builds a 4-level page table
+based on agaw of 2. However the IOMMU's agaw is set as 3 (5-level). In
+this case the code incorrectly tries to skip page page table levels.
+This causes the IOMMU driver to avoid programming the context entry. The
+fix handles this case and programs the context entry accordingly.
+
+Fixes: de24e55395698 ("iommu/vt-d: Simplify domain_context_mapping_one")
+Cc: <stable@vger.kernel.org>
+Cc: Ashok Raj <ashok.raj@intel.com>
+Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
+Cc: Lu Baolu <baolu.lu@linux.intel.com>
+Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
+Reported-by: Ramos Falcon, Ernesto R <ernesto.r.ramos.falcon@intel.com>
+Tested-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
+Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>
+Signed-off-by: Joerg Roedel <jroedel@suse.de>
+---
+ drivers/iommu/intel-iommu.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
+index f3ccf025108b..fdf79baf1d79 100644
+--- a/drivers/iommu/intel-iommu.c
++++ b/drivers/iommu/intel-iommu.c
+@@ -2044,7 +2044,7 @@ static int domain_context_mapping_one(struct dmar_domain *domain,
+ * than default. Unnecessary for PT mode.
+ */
+ if (translation != CONTEXT_TT_PASS_THROUGH) {
+- for (agaw = domain->agaw; agaw != iommu->agaw; agaw--) {
++ for (agaw = domain->agaw; agaw > iommu->agaw; agaw--) {
+ ret = -ENOMEM;
+ pgd = phys_to_virt(dma_pte_addr(pgd));
+ if (!dma_pte_present(pgd))
+@@ -2058,7 +2058,7 @@ static int domain_context_mapping_one(struct dmar_domain *domain,
+ translation = CONTEXT_TT_MULTI_LEVEL;
+
+ context_set_address_root(context, virt_to_phys(pgd));
+- context_set_address_width(context, iommu->agaw);
++ context_set_address_width(context, agaw);
+ } else {
+ /*
+ * In pass through mode, AW must be programmed to
+
diff --git a/patches.drivers/revert-iommu-io-pgtable-arm-check-for-v7s-incapable-systems b/patches.drivers/revert-iommu-io-pgtable-arm-check-for-v7s-incapable-systems
new file mode 100644
index 0000000000..19c4bdcb84
--- /dev/null
+++ b/patches.drivers/revert-iommu-io-pgtable-arm-check-for-v7s-incapable-systems
@@ -0,0 +1,42 @@
+From: Yong Wu <yong.wu@mediatek.com>
+Date: Thu, 13 Dec 2018 17:19:48 +0800
+Subject: Revert "iommu/io-pgtable-arm: Check for v7s-incapable systems"
+Git-commit: 2713fe37153efb90b7a8427a2f53fa49216faf5c
+Patch-mainline: v5.0-rc1
+References: bsc#1106105
+
+This reverts commit 82db33dc5e49fb625262d81125625d07a0d6184e.
+
+After the commit 29859aeb8a6e ("iommu/io-pgtable-arm-v7s: Abort
+allocation when table address overflows the PTE"), v7s will return fail
+if the page table allocation isn't expected. this PHYS_OFFSET check
+is unnecessary now.
+
+And this check may lead to fail. For example, If CONFIG_RANDOMIZE_BASE
+is enabled, the "memstart_addr" will be updated randomly, then the
+PHYS_OFFSET may be random.
+
+Reported-by: CK Hu <ck.hu@mediatek.com>
+Signed-off-by: Yong Wu <yong.wu@mediatek.com>
+Reviewed-by: Robin Murphy <robin.murphy@arm.com>
+Signed-off-by: Joerg Roedel <jroedel@suse.de>
+---
+ drivers/iommu/io-pgtable-arm-v7s.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
+index 445c3bde0480..cec29bf45c9b 100644
+--- a/drivers/iommu/io-pgtable-arm-v7s.c
++++ b/drivers/iommu/io-pgtable-arm-v7s.c
+@@ -709,10 +709,6 @@ static struct io_pgtable *arm_v7s_alloc_pgtable(struct io_pgtable_cfg *cfg,
+ {
+ struct arm_v7s_io_pgtable *data;
+
+-#ifdef PHYS_OFFSET
+- if (upper_32_bits(PHYS_OFFSET))
+- return NULL;
+-#endif
+ if (cfg->ias > ARM_V7S_ADDR_BITS || cfg->oas > ARM_V7S_ADDR_BITS)
+ return NULL;
+
+
diff --git a/patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch b/patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch
index d4f8eb36df..2f665250f4 100644
--- a/patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch
+++ b/patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch
@@ -5,9 +5,8 @@ To: rui.zhang@intel.com, edubezval@gmail.com, daniel.lezcano@linaro.org,
stefan.wahren@i2se.com
Subject: [PATCH] thermal: bcm2835: enable hwmon explicitly
Date: Sun, 21 Oct 2018 23:58:48 +0200
-Patch-mainline: Queued
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
-Git-commit: 306b0b5978c0d64e2c331c2447d812c15b9d6e22
+Patch-mainline: v5.0-rc1
+Git-commit: d56c19d07e0bc3ceff366a49b7d7a2440c967b1b
References: bsc#1108468
From: Matthias Brugger <mbrugger@suse.com>
@@ -18,6 +17,7 @@ through the common hwmon sysfs.
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+
---
drivers/thermal/broadcom/bcm2835_thermal.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/patches.drivers/usb-dwc2-host-use-hrtimer-for-nak-retries.patch b/patches.drivers/usb-dwc2-host-use-hrtimer-for-nak-retries.patch
new file mode 100644
index 0000000000..3e397603aa
--- /dev/null
+++ b/patches.drivers/usb-dwc2-host-use-hrtimer-for-nak-retries.patch
@@ -0,0 +1,137 @@
+From: Terin Stock <terin@terinstock.com>
+Date: Sun, 9 Sep 2018 21:24:31 -0700
+Subject: usb: dwc2: host: use hrtimer for NAK retries
+Git-commit: 6ed30a7d8ec29d3aba46e47aa8b4a44f077dda4e
+Patch-mainline: v5.0-rc1
+References: git-fixes
+
+Modify the wait delay utilize the high resolution timer API to allow for
+more precisely scheduled callbacks.
+
+A previous commit added a 1ms retry delay after multiple consecutive
+NAKed transactions using jiffies. On systems with a low timer interrupt
+frequency, this delay may be significantly longer than specified,
+resulting in misbehavior with some USB devices.
+
+This scenario was reached on a Raspberry Pi 3B with a Macally FDD-USB
+floppy drive (identified as 0424:0fdc Standard Microsystems Corp.
+Floppy, based on the USB97CFDC USB FDC). With the relay delay, the drive
+would be unable to mount a disk, replying with NAKs until the device was
+reset.
+
+Using ktime, the delta between starting the timer (in dwc2_hcd_qh_add)
+and the callback function can be determined. With the original delay
+implementation, this value was consistently approximately 12ms. (output
+in us).
+
+ <idle>-0 [000] ..s. 1600.559974: dwc2_wait_timer_fn: wait_timer delta: 11976
+ <idle>-0 [000] ..s. 1600.571974: dwc2_wait_timer_fn: wait_timer delta: 11977
+ <idle>-0 [000] ..s. 1600.583974: dwc2_wait_timer_fn: wait_timer delta: 11976
+ <idle>-0 [000] ..s. 1600.595974: dwc2_wait_timer_fn: wait_timer delta: 11977
+
+After converting the relay delay to using a higher resolution timer, the
+delay was much closer to 1ms.
+
+ <idle>-0 [000] d.h. 1956.553017: dwc2_wait_timer_fn: wait_timer delta: 1002
+ <idle>-0 [000] d.h. 1956.554114: dwc2_wait_timer_fn: wait_timer delta: 1002
+ <idle>-0 [000] d.h. 1957.542660: dwc2_wait_timer_fn: wait_timer delta: 1004
+ <idle>-0 [000] d.h. 1957.543701: dwc2_wait_timer_fn: wait_timer delta: 1002
+
+The floppy drive operates properly with delays up to approximately 5ms,
+and sends NAKs for any delays that are longer.
+
+Fixes: 38d2b5fb75c1 ("usb: dwc2: host: Don't retry NAKed transactions right away")
+Cc: <stable@vger.kernel.org>
+Reviewed-by: Douglas Anderson <dianders@chromium.org>
+Acked-by: Minas Harutyunyan <hminas@synopsys.com>
+Signed-off-by: Terin Stock <terin@terinstock.com>
+Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
+Acked-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+---
+ drivers/usb/dwc2/hcd.h | 2 +-
+ drivers/usb/dwc2/hcd_queue.c | 19 ++++++++++++-------
+ 2 files changed, 13 insertions(+), 8 deletions(-)
+
+--- a/drivers/usb/dwc2/hcd.h
++++ b/drivers/usb/dwc2/hcd.h
+@@ -357,7 +357,7 @@ struct dwc2_qh {
+ u32 desc_list_sz;
+ u32 *n_bytes;
+ struct timer_list unreserve_timer;
+- struct timer_list wait_timer;
++ struct hrtimer wait_timer;
+ struct dwc2_tt *dwc_tt;
+ int ttport;
+ unsigned tt_buffer_dirty:1;
+--- a/drivers/usb/dwc2/hcd_queue.c
++++ b/drivers/usb/dwc2/hcd_queue.c
+@@ -58,7 +58,7 @@
+ #define DWC2_UNRESERVE_DELAY (msecs_to_jiffies(5))
+
+ /* If we get a NAK, wait this long before retrying */
+-#define DWC2_RETRY_WAIT_DELAY (msecs_to_jiffies(1))
++#define DWC2_RETRY_WAIT_DELAY 1*1E6L
+
+ /**
+ * dwc2_periodic_channel_available() - Checks that a channel is available for a
+@@ -1462,10 +1462,12 @@ static void dwc2_deschedule_periodic(str
+ * qh back to the "inactive" list, then queues transactions.
+ *
+ * @t: Pointer to wait_timer in a qh.
++ *
++ * Return: HRTIMER_NORESTART to not automatically restart this timer.
+ */
+-static void dwc2_wait_timer_fn(unsigned long data)
++static enum hrtimer_restart dwc2_wait_timer_fn(struct hrtimer *t)
+ {
+- struct dwc2_qh *qh = (struct dwc2_qh *)data;
++ struct dwc2_qh *qh = container_of(t, struct dwc2_qh, wait_timer);
+ struct dwc2_hsotg *hsotg = qh->hsotg;
+ unsigned long flags;
+
+@@ -1489,6 +1491,7 @@ static void dwc2_wait_timer_fn(unsigned
+ }
+
+ spin_unlock_irqrestore(&hsotg->lock, flags);
++ return HRTIMER_NORESTART;
+ }
+
+ /**
+@@ -1520,7 +1523,8 @@ static void dwc2_qh_init(struct dwc2_hso
+ qh->hsotg = hsotg;
+ setup_timer(&qh->unreserve_timer, dwc2_unreserve_timer_fn,
+ (unsigned long)qh);
+- setup_timer(&qh->wait_timer, dwc2_wait_timer_fn, (unsigned long)qh);
++ hrtimer_init(&qh->wait_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
++ qh->wait_timer.function = &dwc2_wait_timer_fn;
+ qh->ep_type = ep_type;
+ qh->ep_is_in = ep_is_in;
+
+@@ -1689,7 +1693,7 @@ void dwc2_hcd_qh_free(struct dwc2_hsotg
+ * won't do anything anyway, but we want it to finish before we free
+ * memory.
+ */
+- del_timer_sync(&qh->wait_timer);
++ hrtimer_cancel(&qh->wait_timer);
+
+ dwc2_host_put_tt_info(hsotg, qh->dwc_tt);
+
+@@ -1712,6 +1716,7 @@ int dwc2_hcd_qh_add(struct dwc2_hsotg *h
+ {
+ int status;
+ u32 intr_mask;
++ ktime_t delay;
+
+ if (dbg_qh(qh))
+ dev_vdbg(hsotg->dev, "%s()\n", __func__);
+@@ -1730,8 +1735,8 @@ int dwc2_hcd_qh_add(struct dwc2_hsotg *h
+ list_add_tail(&qh->qh_list_entry,
+ &hsotg->non_periodic_sched_waiting);
+ qh->wait_timer_cancel = false;
+- mod_timer(&qh->wait_timer,
+- jiffies + DWC2_RETRY_WAIT_DELAY + 1);
++ delay = ktime_set(0, DWC2_RETRY_WAIT_DELAY);
++ hrtimer_start(&qh->wait_timer, delay, HRTIMER_MODE_REL);
+ } else {
+ list_add_tail(&qh->qh_list_entry,
+ &hsotg->non_periodic_sched_inactive);
diff --git a/patches.drivers/x86-PCI-Move-VMD-quirk-to-x86-fixups.patch b/patches.drivers/x86-PCI-Move-VMD-quirk-to-x86-fixups.patch
new file mode 100644
index 0000000000..0c6f73aa85
--- /dev/null
+++ b/patches.drivers/x86-PCI-Move-VMD-quirk-to-x86-fixups.patch
@@ -0,0 +1,76 @@
+From f1b0e54e16b3db7882b4158ab4a26b87841753fd Mon Sep 17 00:00:00 2001
+From: Jon Derrick <jonathan.derrick@intel.com>
+Date: Thu, 17 Aug 2017 12:10:12 -0600
+Subject: [PATCH] x86/PCI: Move VMD quirk to x86 fixups
+Git-commit: f1b0e54e16b3db7882b4158ab4a26b87841753fd
+Patch-mainline: v4.14-rc1
+References: bsc#1120058
+
+VMD currently only exists for Intel x86 products, so move the VMD quirk to
+arch/x86.
+
+Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ arch/x86/pci/fixup.c | 17 +++++++++++++++++
+ drivers/pci/quirks.c | 17 -----------------
+ 2 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
+index 11e407489db0..4c2e318845ba 100644
+--- a/arch/x86/pci/fixup.c
++++ b/arch/x86/pci/fixup.c
+@@ -618,3 +618,20 @@ static void quirk_apple_mbp_poweroff(struct pci_dev *pdev)
+ dev_info(dev, "can't work around MacBook Pro poweroff issue\n");
+ }
+ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x8c10, quirk_apple_mbp_poweroff);
++
++/*
++ * VMD-enabled root ports will change the source ID for all messages
++ * to the VMD device. Rather than doing device matching with the source
++ * ID, the AER driver should traverse the child device tree, reading
++ * AER registers to find the faulting device.
++ */
++static void quirk_no_aersid(struct pci_dev *pdev)
++{
++ /* VMD Domain */
++ if (pdev->bus->sysdata && pci_domain_nr(pdev->bus) >= 0x10000)
++ pdev->bus->bus_flags |= PCI_BUS_FLAGS_NO_AERSID;
++}
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2030, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid);
++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index 6967c6b4cf6b..0b0a2ae9a853 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -4657,23 +4657,6 @@ static void quirk_intel_qat_vf_cap(struct pci_dev *pdev)
+ }
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap);
+
+-/*
+- * VMD-enabled root ports will change the source ID for all messages
+- * to the VMD device. Rather than doing device matching with the source
+- * ID, the AER driver should traverse the child device tree, reading
+- * AER registers to find the faulting device.
+- */
+-static void quirk_no_aersid(struct pci_dev *pdev)
+-{
+- /* VMD Domain */
+- if (pdev->bus->sysdata && pci_domain_nr(pdev->bus) >= 0x10000)
+- pdev->bus->bus_flags |= PCI_BUS_FLAGS_NO_AERSID;
+-}
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2030, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid);
+-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
+-
+ /* FLR may cause some 82579 devices to hang. */
+ static void quirk_intel_no_flr(struct pci_dev *dev)
+ {
+--
+2.20.1
+
diff --git a/patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch b/patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch
index 95eb48f8b2..76fb16f22e 100644
--- a/patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch
+++ b/patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch
@@ -3,7 +3,8 @@ From: Michal Hocko <mhocko@suse.com>
Date: Mon, 3 Dec 2018 10:27:18 +0100
Subject: [RFC PATCH] hwpoison, memory_hotplug: allow hwpoisoned pages to be
offlined
-Patch-mainline: not yet, under discussion
+Git-commit: b15c87263a69272423771118c653e9a1d0672caa
+Patch-mainline: v5.0-rc1
References: bnc#1116336
We have received a bug report that an injected MCE about faulty memory
diff --git a/patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch b/patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch
index 194ec32835..8040acb18f 100644
--- a/patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch
+++ b/patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch
@@ -2,7 +2,8 @@ From e9779d3f6c4fae7ed59921a8f8ca8b2875aafbf0 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@suse.com>
Date: Wed, 7 Nov 2018 09:45:00 +0100
Subject: [PATCH 1/5] mm: print more information about mapping in __dump_page
-Patch-mainline: not yet in mmotm tree
+Git-commit: 1c6fb1d89e73cd3bbfae7c400f1c615272aa435f
+Patch-mainline: v5.0-rc1
References: generic hotplug debugability
__dump_page prints the mapping pointer but that is quite unhelpful
diff --git a/patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch b/patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch
index d0ef7351aa..eafb010294 100644
--- a/patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch
+++ b/patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch
@@ -2,8 +2,7 @@ From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Mon, 19 Mar 2018 14:07:45 +0300
Subject: [PATCH] staging: ncpfs: memory corruption in ncp_read_kernel()
Git-commit: 4c41aa24baa4ed338241d05494f2c595c885af8f
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
+Patch-mainline: v4.16-rc7
References: bsc#1086162, CVE-2018-8822
If the server is malicious then *bytes_read could be larger than the
diff --git a/patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch b/patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch
index e791ddc17f..d7d8db5029 100644
--- a/patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch
+++ b/patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch
@@ -4,8 +4,7 @@ Date: Tue, 13 Nov 2018 19:49:10 +0100
Subject: [PATCH] x86/speculation/l1tf: Drop the swap storage limit restriction
when l1tf=off
Git-commit: 5b5e4d623ec8a34689df98e42d038a3b594d2ff9
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
-Patch-mainline: queued in subsystem tree
+Patch-mainline: v5.0-rc1
References: bnc#1114871
Swap storage is restricted to max_swapfile_size (~16TB on x86_64) whenever
diff --git a/patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch b/patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch
index a5707b56a7..a8ba509c0e 100644
--- a/patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch
+++ b/patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch
@@ -2,7 +2,8 @@ From 794ce735ecc954e12a9a901051309772b519c699 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@suse.com>
Date: Wed, 7 Nov 2018 09:52:56 +0100
Subject: [PATCH 2/5] mm: lower the printk loglevel for __dump_page messages
-Patch-mainline: not yet in mmotm tree
+Git-commit: e0392cf7c53a2c03dbda93de4073c78609b88c51
+Patch-mainline: v5.0-rc1
References: generic hotplug debugability
__dump_page messages use KERN_EMERG resp. KERN_ALERT loglevel (this is
diff --git a/patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch b/patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch
index 211904f799..c1e06bb2c9 100644
--- a/patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch
+++ b/patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch
@@ -3,7 +3,8 @@ From: Michal Hocko <mhocko@suse.com>
Date: Wed, 7 Nov 2018 10:46:20 +0100
Subject: [PATCH 3/5] mm, memory_hotplug: drop pointless block alignment checks
from __offline_pages
-Patch-mainline: not yet in mmotm tree
+Git-commit: 6cc2baf600eca841549e182b471d5c7b8c4143c3
+Patch-mainline: v5.0-rc1
References: generic hotplug debugability
This function is never called from a context which would provide
diff --git a/patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch b/patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch
index a620a604aa..f660c30421 100644
--- a/patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch
+++ b/patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch
@@ -3,7 +3,8 @@ From: Michal Hocko <mhocko@suse.com>
Date: Wed, 7 Nov 2018 10:51:09 +0100
Subject: [PATCH 4/5] mm, memory_hotplug: print reason for the offlining
failure
-Patch-mainline: not yet in mmotm tree
+Git-commit: 7960509329c24a2bf0bc4929636614a1b7bb4443
+Patch-mainline: v5.0-rc1
References: generic hotplug debugability
The memory offlining failure reporting is inconsistent and insufficient.
diff --git a/patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch b/patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch
index e05bdabef1..0b54f7d754 100644
--- a/patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch
+++ b/patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch
@@ -3,7 +3,8 @@ From: Michal Hocko <mhocko@suse.com>
Date: Wed, 7 Nov 2018 10:26:07 +0100
Subject: [PATCH 5/5] mm, memory_hotplug: be more verbose for memory offline
failures
-Patch-mainline: not yet in mmotm tree
+Git-commit: 2932c8b05056d4ba702f70f4deebe1c97600e62b
+Patch-mainline: v5.0-rc1
References: generic hotplug debugability
There is only very limited information printed when the memory offlining
diff --git a/patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch b/patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch
index ba00d1d2bf..e72261a11d 100644
--- a/patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch
+++ b/patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch
@@ -2,7 +2,8 @@ From: Hannes Reinecke <hare@suse.de>
Date: Mon, 26 Feb 2018 11:50:01 +0100
Subject: [PATCH] block: copy ioprio in __bio_clone_fast()
References: bsc#1082653
-Patch-Mainline: submitted linux-block 2018/08/01
+Git-commit: ca474b73896bf6e0c1eb8787eb217b0f80221610
+Patch-Mainline: v4.20-rc3
We need to copy the io priority, too; otherwise the clone will run
with a different priority than the original one.
diff --git a/patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch b/patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
index 260d9054cb..d76ea5efab 100644
--- a/patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
+++ b/patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
@@ -1,7 +1,8 @@
Date: Mon, 26 Nov 2018 11:27:07 -0800 (PST)
From: Hugh Dickins <hughd@google.com>
Subject: [PATCH v2] mm: put_and_wait_on_page_locked() while page is migrated
-Patch-mainline: not yet, in mmotm tree
+Git-commit: 9a1ea439b16b92002e0a6fceebc5d1794906e297
+Patch-mainline: v5.0-rc1
References: bnc#1109272
Waiting on a page migration entry has used wait_on_page_locked() all
diff --git a/patches.fixes/nvme-multipath-zero-out-ANA-log-buffer.patch b/patches.fixes/nvme-multipath-zero-out-ANA-log-buffer.patch
new file mode 100644
index 0000000000..eed3476854
--- /dev/null
+++ b/patches.fixes/nvme-multipath-zero-out-ANA-log-buffer.patch
@@ -0,0 +1,37 @@
+From: Hannes Reinecke <hare@suse.de>
+Date: Tue, 8 Jan 2019 12:44:51 +0100
+Subject: [PATCH] nvme-multipath: zero out ANA log buffer
+Patch-Mainline: submitted linux-nvme 2019/01/08
+References: bsc#1105168
+
+When nvme_init_identify() fails the ANA log buffer is deallocated
+but _not_ set to NULL. This can cause double free oops when this
+controller is deleted without ever being reconnected.
+
+Signed-off-by: Hannes Reinecke <hare@suse.com>
+---
+ drivers/nvme/host/multipath.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
+index 183ec17ba067..df4b3a6db51b 100644
+--- a/drivers/nvme/host/multipath.c
++++ b/drivers/nvme/host/multipath.c
+@@ -570,6 +570,7 @@ int nvme_mpath_init(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)
+ return 0;
+ out_free_ana_log_buf:
+ kfree(ctrl->ana_log_buf);
++ ctrl->ana_log_buf = NULL;
+ out:
+ return -ENOMEM;
+ }
+@@ -577,5 +578,6 @@ int nvme_mpath_init(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)
+ void nvme_mpath_uninit(struct nvme_ctrl *ctrl)
+ {
+ kfree(ctrl->ana_log_buf);
++ ctrl->ana_log_buf = NULL;
+ }
+
+--
+2.16.4
+
diff --git a/patches.fixes/nvme-validate-controller-state-before-rescheduling-k.patch b/patches.fixes/nvme-validate-controller-state-before-rescheduling-k.patch
new file mode 100644
index 0000000000..50f0cf031a
--- /dev/null
+++ b/patches.fixes/nvme-validate-controller-state-before-rescheduling-k.patch
@@ -0,0 +1,67 @@
+From: James Smart <jsmart2021@gmail.com>
+Date: Tue, 27 Nov 2018 17:04:44 -0800
+Subject: [PATCH] nvme: validate controller state before rescheduling keep
+ alive
+Git-commit: 86880d646122240596d6719b642fee3213239994
+Patch-mainline: v4.20-rc6
+References: bsc#1103257
+
+Delete operations are seeing NULL pointer references in call_timer_fn.
+Tracking these back, the timer appears to be the keep alive timer.
+
+nvme_keep_alive_work() which is tied to the timer that is cancelled
+by nvme_stop_keep_alive(), simply starts the keep alive io but doesn't
+wait for it's completion. So nvme_stop_keep_alive() only stops a timer
+when it's pending. When a keep alive is in flight, there is no timer
+running and the nvme_stop_keep_alive() will have no affect on the keep
+alive io. Thus, if the io completes successfully, the keep alive timer
+will be rescheduled. In the failure case, delete is called, the
+controller state is changed, the nvme_stop_keep_alive() is called while
+the io is outstanding, and the delete path continues on. The keep
+alive happens to successfully complete before the delete paths mark it
+as aborted as part of the queue termination, so the timer is restarted.
+The delete paths then tear down the controller, and later on the timer
+code fires and the timer entry is now corrupt.
+
+Fix by validating the controller state before rescheduling the keep
+alive. Testing with the fix has confirmed the condition above was hit.
+
+Signed-off-by: James Smart <jsmart2021@gmail.com>
+Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Acked-by: Hannes Reinecke <hare@suse.com>
+---
+ drivers/nvme/host/core.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
+index 3cf1b773158e..962012135b62 100644
+--- a/drivers/nvme/host/core.c
++++ b/drivers/nvme/host/core.c
+@@ -831,6 +831,8 @@ static int nvme_submit_user_cmd(struct request_queue *q,
+ static void nvme_keep_alive_end_io(struct request *rq, blk_status_t status)
+ {
+ struct nvme_ctrl *ctrl = rq->end_io_data;
++ unsigned long flags;
++ bool startka = false;
+
+ blk_mq_free_request(rq);
+
+@@ -841,7 +843,13 @@ static void nvme_keep_alive_end_io(struct request *rq, blk_status_t status)
+ return;
+ }
+
+- schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
++ spin_lock_irqsave(&ctrl->lock, flags);
++ if (ctrl->state == NVME_CTRL_LIVE ||
++ ctrl->state == NVME_CTRL_CONNECTING)
++ startka = true;
++ spin_unlock_irqrestore(&ctrl->lock, flags);
++ if (startka)
++ schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
+ }
+
+ static int nvme_keep_alive(struct nvme_ctrl *ctrl)
+--
+2.16.4
+
diff --git a/patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch b/patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch
index cd82c21318..c42e34499c 100644
--- a/patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch
+++ b/patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch
@@ -1,8 +1,9 @@
From: Vasily Averin <vvs@virtuozzo.com>
Date: Mon, 24 Dec 2018 14:44:42 +0300
Subject: [PATCH] sunrpc: use SVC_NET() in svcauth_gss_* functions
-Patch-mainline: Submitted, Mon, 24 Dec 2018 14:44:42 +0300 - linux-nfs@vger.kernel.org
+Patch-mainline: v5.0-rc1
References: bsc#1119946 CVE-2018-16884
+Git-commit: b8be5674fa9a6f3677865ea93f7803c4212f3e10
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: NeilBrown <neilb@suse.com>
diff --git a/patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch b/patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch
index 6ee55378c7..354c999606 100644
--- a/patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch
+++ b/patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch
@@ -1,7 +1,8 @@
From: Vasily Averin <vvs@virtuozzo.com>
Date: Mon, 24 Dec 2018 14:44:52 +0300
Subject: [PATCH] sunrpc: use-after-free in svc_process_common()
-Patch-mainline: Submitted, Mon, 24 Dec 2018 14:44:42 +0300 - linux-nfs@vger.kernel.org
+Git-commit: d4b09acf924b84bae77cad090a9d108e70b43643
+Patch-mainline: v5.0-rc1
References: bsc#1119946 CVE-2018-16884
if node have NFSv41+ mounts inside several net namespaces
diff --git a/patches.fixes/target-se_dev_attrib.emulate_pr-ABI-stability.patch b/patches.kabi/target-se_dev_attrib.emulate_pr-ABI-stability.patch
index fe7d061bbc..fe7d061bbc 100644
--- a/patches.fixes/target-se_dev_attrib.emulate_pr-ABI-stability.patch
+++ b/patches.kabi/target-se_dev_attrib.emulate_pr-ABI-stability.patch
diff --git a/patches.suse/0001-rbtree-cache-leftmost-node-internally.patch b/patches.suse/0001-rbtree-cache-leftmost-node-internally.patch
index 99849b5577..6cf7078223 100644
--- a/patches.suse/0001-rbtree-cache-leftmost-node-internally.patch
+++ b/patches.suse/0001-rbtree-cache-leftmost-node-internally.patch
@@ -2,7 +2,8 @@ From be09d466c258e0f5a23ea56e6304ee1749592bb5 Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:37:58 +1000
Subject: [PATCH 01/17] rbtree: cache leftmost node internally
-Patch-mainline: No, submitted https://patchwork.kernel.org/patch/9850263/
+Git-commit: cd9e61ed1eebbcd5dfad59475d41ec58d9b64b6a
+Patch-mainline: v4.14-rc1
References: bsc#1052639
Patch series "rbtree: Cache leftmost node internally", v4.
diff --git a/patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch b/patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch
index 9e01fe0424..13de710e3f 100644
--- a/patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch
+++ b/patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch
@@ -1,9 +1,8 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Fri, 18 May 2018 08:47:08 +0200
Subject: x86/stacktrace: Do not unwind after user regs
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git#x86/asm
Git-commit: 0797a8d0d79769574550caa5ca5d89c237723250
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.19-rc1
References: bnc#1058115
Josh pointed out, that there is no way a frame can be after user regs.
diff --git a/patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch b/patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch
index 53358725d0..a0e0078ddf 100644
--- a/patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch
+++ b/patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch
@@ -2,7 +2,8 @@ From 6a1afa5448f1afc8f0c75985f61772394587a8f6 Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:37:58 +1000
Subject: [PATCH 02/17] rbtree: optimize root-check during rebalancing loop
-Patch-mainline: No, submitted
+Git-commit: 2aadf7fc7df9e70c99786ffb8452ccdd83d49e59
+Patch-mainline: v4.14-rc1
References: bsc#1052639
The only times the nil-parent (root node) condition is true is when the
diff --git a/patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch b/patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch
index c42d885671..1c59708d3d 100644
--- a/patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch
+++ b/patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch
@@ -1,9 +1,8 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Fri, 18 May 2018 08:47:09 +0200
Subject: x86/stacktrace: Remove STACKTRACE_DUMP_ONCE
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git#x86/asm
Git-commit: 17426923b03f098da83b8c1e044934a34959f69b
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.19-rc1
References: bnc#1058115
The stack unwinding can sometimes fail yet. Especially with the
diff --git a/patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch b/patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch
index ccf07fda19..ea1da2cf32 100644
--- a/patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch
+++ b/patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch
@@ -2,7 +2,8 @@ From c0c82fb30e9331c5ea1055e94e4057d51a35d570 Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:37:59 +1000
Subject: [PATCH 03/17] rbtree: add some additional comments for rebalancing cases
-Patch-mainline: No, submitted
+Git-commit: 35dc67d7d922b2c9a1adb006c7a0f370eeb5c114
+Patch-mainline: v4.14-rc1
References: bsc#1052639
While overall the code is very nicely commented, it might not be
diff --git a/patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch b/patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch
index e94774049d..d856e1447e 100644
--- a/patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch
+++ b/patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch
@@ -1,9 +1,8 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Fri, 18 May 2018 08:47:10 +0200
Subject: x86/stacktrace: Clarify the reliable success paths
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git#x86/asm
Git-commit: 441ccc3580f45340715fd8f5c4db795b06326404
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.19-rc1
References: bnc#1058115
Make clear which path is for user tasks and for kthreads and idle
diff --git a/patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch b/patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch
index 6c3a28f13f..5db3c34d9d 100644
--- a/patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch
+++ b/patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch
@@ -1,9 +1,8 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Fri, 18 May 2018 08:47:11 +0200
Subject: x86/stacktrace: Do not fail for ORC with regs on stack
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git#x86/asm
Git-commit: 0c414367c04eeb00c3ebfee0b74c9e7f3b95fd62
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.19-rc1
References: bnc#1058115
save_stack_trace_reliable now returns "non reliable" when there are
diff --git a/patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch b/patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch
index 0563d038f9..5e5500fab4 100644
--- a/patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch
+++ b/patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch
@@ -1,9 +1,8 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Fri, 18 May 2018 08:47:13 +0200
Subject: x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE for the ORC unwinder
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git#x86/asm
Git-commit: 6415b38bae2641ab6e173ffa4ff6a453b60ba99b
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.19-rc1
References: bnc#1058115
In SUSE, we need a reliable stack unwinder for kernel live patching, but
diff --git a/patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch b/patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch
index 91bc6f6d6c..77ef68e90c 100644
--- a/patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch
+++ b/patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch
@@ -2,7 +2,8 @@ From bddb71a9edf874b20cff2cb90f9c38e361e4bfdd Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:00 +1000
Subject: [PATCH 08/17] sched/deadline: replace earliest dl and rq leftmost caching
-Patch-mainline: No, submitted
+Git-commit: 2161573ecd6931565936cb66793b2d2bf805c088
+Patch-mainline: v4.14-rc1
References: bsc#1052639
... with the generic rbtree flavor instead. No changes
diff --git a/patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch b/patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch
index f599bf2784..1691e164de 100644
--- a/patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch
+++ b/patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch
@@ -2,7 +2,8 @@ From 3dc597f83d0e6794b75796015cb308a7ba0db8a0 Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:00 +1000
Subject: [PATCH 09/17] locking/rtmutex: replace top-waiter and pi_waiters leftmost caching
-Patch-mainline: No, submitted
+Git-commit: a23ba907d5e65d6aeea3e59c82fda9cd206a7aad
+Patch-mainline: v4.14-rc1
References: bsc#1052639
... with the generic rbtree flavor instead. No changes
diff --git a/patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch b/patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch
index 087d9407bf..a3cffc8c16 100644
--- a/patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch
+++ b/patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch
@@ -2,7 +2,8 @@ From 82ec0603ed9c315089df1bdad8dbb377cf0a2b14 Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:00 +1000
Subject: [PATCH 10/17] block/cfq: replace cfq_rb_root leftmost caching
-Patch-mainline: No, submitted
+Git-commit: 09663c86e24953556ff8696efa023557901f2b66
+Patch-mainline: v4.14-rc1
References: bsc#1052639
... with the generic rbtree flavor instead. No changes
diff --git a/patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch b/patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch
index 1f093926c0..0b15d47758 100644
--- a/patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch
+++ b/patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch
@@ -2,7 +2,8 @@ From 45a553e6164c27545141d5c76f617fcc52f936bc Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:01 +1000
Subject: [PATCH 12/17] lib/interval-tree: correct comment wrt generic flavor
-Patch-mainline: No, submitted
+Git-commit: f2686bb48618718c7141f117e2d607594e959bfc
+Patch-mainline: v4.14-rc1
References: bsc#1052639
interval_tree.h _is_ the generic flavor.
diff --git a/patches.suse/0013-procfs-use-faster-rb_first_cached.patch b/patches.suse/0013-procfs-use-faster-rb_first_cached.patch
index d5aabdc704..819e29e26d 100644
--- a/patches.suse/0013-procfs-use-faster-rb_first_cached.patch
+++ b/patches.suse/0013-procfs-use-faster-rb_first_cached.patch
@@ -2,7 +2,8 @@ From f817f3ff4080335362e43b01c1af5bd002668bf8 Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:01 +1000
Subject: [PATCH 13/17] procfs: use faster rb_first_cached()
-Patch-mainline: No, submitted
+Git-commit: 410bd5ecb276593e7ec1552014083215d4a43c3a
+Patch-mainline: v4.14-rc1
References: bsc#1052639
... such that we can avoid the tree walks to get the node with the
diff --git a/patches.suse/0015-mem-memcg-cache-rightmost-node.patch b/patches.suse/0015-mem-memcg-cache-rightmost-node.patch
index 27bd3a4e49..ea69eb117d 100644
--- a/patches.suse/0015-mem-memcg-cache-rightmost-node.patch
+++ b/patches.suse/0015-mem-memcg-cache-rightmost-node.patch
@@ -2,7 +2,8 @@ From d052f4d91cbae5f6aa01d783760825f8c668289e Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:02 +1000
Subject: [PATCH 15/17] mem/memcg: cache rightmost node
-Patch-mainline: No, submitted
+Git-commit: fa90b2fd300f38cc7b3e416974116c83f3953465
+Patch-mainline: v4.14-rc1
References: bsc#1052639
Such that we can optimize __mem_cgroup_largest_soft_limit_node(). The
diff --git a/patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch b/patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch
index 3a34b5428c..5e72a211ca 100644
--- a/patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch
+++ b/patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch
@@ -2,7 +2,8 @@ From 906db4ac5482d4a560c58b945fab389ace2205da Mon Sep 17 00:00:00 2001
From: Davidlohr Bueso <dave@stgolabs.net>
Date: Wed, 2 Aug 2017 10:38:02 +1000
Subject: [PATCH 16/16] block/cfq: cache rightmost rb_node
-Patch-mainline: No, submitted
+Git-commit: f0f1a45f95e85a8ac28c4d62bf2a84db0799efab
+Patch-mainline: v4.14-rc1
References: bsc#1052639
For the same reasons we already cache the leftmost pointer, apply the same
diff --git a/patches.suse/btrfs-run-delayed-items-before-dropping-the-snapshot.patch b/patches.suse/btrfs-run-delayed-items-before-dropping-the-snapshot.patch
new file mode 100644
index 0000000000..4210c6c7b4
--- /dev/null
+++ b/patches.suse/btrfs-run-delayed-items-before-dropping-the-snapshot.patch
@@ -0,0 +1,88 @@
+From: Josef Bacik <jbacik@fb.com>
+Date: Fri, 30 Nov 2018 11:52:14 -0500
+Patch-mainline: 5.0-rc1
+Git-commit: 0568e82dbe2510fc1fa664f58e5c997d3f1e649e
+Subject: [PATCH] btrfs: run delayed items before dropping the snapshot
+References: bsc#1121263, bsc#1111188
+
+With my delayed refs patches in place we started seeing a large amount
+of aborts in __btrfs_free_extent:
+
+ BTRFS error (device sdb1): unable to find ref byte nr 91947008 parent 0 root 35964 owner 1 offset 0
+ Call Trace:
+ ? btrfs_merge_delayed_refs+0xaf/0x340
+ __btrfs_run_delayed_refs+0x6ea/0xfc0
+ ? btrfs_set_path_blocking+0x31/0x60
+ btrfs_run_delayed_refs+0xeb/0x180
+ btrfs_commit_transaction+0x179/0x7f0
+ ? btrfs_check_space_for_delayed_refs+0x30/0x50
+ ? should_end_transaction.isra.19+0xe/0x40
+ btrfs_drop_snapshot+0x41c/0x7c0
+ btrfs_clean_one_deleted_snapshot+0xb5/0xd0
+ cleaner_kthread+0xf6/0x120
+ kthread+0xf8/0x130
+ ? btree_invalidatepage+0x90/0x90
+ ? kthread_bind+0x10/0x10
+ ret_from_fork+0x35/0x40
+
+This was because btrfs_drop_snapshot depends on the root not being
+modified while it's dropping the snapshot. It will unlock the root node
+(and really every node) as it walks down the tree, only to re-lock it
+when it needs to do something. This is a problem because if we modify
+the tree we could cow a block in our path, which frees our reference to
+that block. Then once we get back to that shared block we'll free our
+reference to it again, and get ENOENT when trying to lookup our extent
+reference to that block in __btrfs_free_extent.
+
+This is ultimately happening because we have delayed items left to be
+processed for our deleted snapshot _after_ all of the inodes are closed
+for the snapshot. We only run the delayed inode item if we're deleting
+the inode, and even then we do not run the delayed insertions or delayed
+removals. These can be run at any point after our final inode does its
+last iput, which is what triggers the snapshot deletion. We can end up
+with the snapshot deletion happening and then have the delayed items run
+on that file system, resulting in the above problem.
+
+This problem has existed forever, however my patches made it much easier
+to hit as I wake up the cleaner much more often to deal with delayed
+iputs, which made us more likely to start the snapshot dropping work
+before the transaction commits, which is when the delayed items would
+generally be run. Before, generally speaking, we would run the delayed
+items, commit the transaction, and wakeup the cleaner thread to start
+deleting snapshots, which means we were less likely to hit this problem.
+You could still hit it if you had multiple snapshots to be deleted and
+ended up with lots of delayed items, but it was definitely harder.
+
+Fix for now by simply running all the delayed items before starting to
+drop the snapshot. We could make this smarter in the future by making
+the delayed items per-root, and then simply drop any delayed items for
+roots that we are going to delete. But for now just a quick and easy
+solution is the safest.
+
+CC: stable@vger.kernel.org # 4.4+
+Reviewed-by: Filipe Manana <fdmanana@suse.com>
+Signed-off-by: Josef Bacik <josef@toxicpanda.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Filipe Manana <fdmanana@suse.com>
+---
+ fs/btrfs/extent-tree.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
+index 6ed8e2516dbb..71d7f9c4b747 100644
+--- a/fs/btrfs/extent-tree.c
++++ b/fs/btrfs/extent-tree.c
+@@ -9022,6 +9022,10 @@ int btrfs_drop_snapshot(struct btrfs_root *root,
+ goto out_free;
+ }
+
++ err = btrfs_run_delayed_items(trans, fs_info);
++ if (err)
++ goto out_end_trans;
++
+ if (block_rsv)
+ trans->block_rsv = block_rsv;
+
+--
+2.19.0
+
diff --git a/patches.suse/crash-export-paddr_vmcoreinfo_note.patch b/patches.suse/crash-export-paddr_vmcoreinfo_note.patch
index 3165d28be5..40fd394d57 100644
--- a/patches.suse/crash-export-paddr_vmcoreinfo_note.patch
+++ b/patches.suse/crash-export-paddr_vmcoreinfo_note.patch
@@ -12,10 +12,10 @@ The following patch is going to use the symbol from the fw_cfg module,
to call the function and write the note location details in the
vmcoreinfo entry, so qemu can produce dumps with the vmcoreinfo note.
-CC: Andrew Morton <akpm@linux-foundation.org>
-CC: Hari Bathini <hbathini@linux.vnet.ibm.com>
-CC: Tony Luck <tony.luck@intel.com>
-CC: Vivek Goyal <vgoyal@redhat.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
+Cc: Tony Luck <tony.luck@intel.com>
+Cc: Vivek Goyal <vgoyal@redhat.com>
Acked-by: Baoquan He <bhe@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
diff --git a/patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch b/patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch
index 7e8cc8c23b..347d5f6d54 100644
--- a/patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch
+++ b/patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch
@@ -2,9 +2,9 @@ From d3daf8bd5744d11e4fb30b13f1792b5996f08d77 Mon Sep 17 00:00:00 2001
From: Vincent Guittot <vincent.guittot@linaro.org>
Date: Wed, 29 Aug 2018 15:19:09 +0200
Subject: [PATCH] sched/numa: remove unused code from update_numa_stats()
-
+Git-commit: d90707ebebe03596e19de3abbf79b766e72a3465
+Patch-mainline: v4.20-rc1
References: bnc#1101669 optimise numa balancing for fast migrate
-Patch-mainline: No, queued in subsystem maintainer tree
With :
commit 2d4056fafa19 ("sched/numa: Remove numa_has_capacity()")
diff --git a/patches.suse/sched-numa-remove-unused-nr_running-field.patch b/patches.suse/sched-numa-remove-unused-nr_running-field.patch
index f1f8041d7a..d20310f715 100644
--- a/patches.suse/sched-numa-remove-unused-nr_running-field.patch
+++ b/patches.suse/sched-numa-remove-unused-nr_running-field.patch
@@ -2,9 +2,9 @@ From 5fd752c3df444c08009dbfef716135d9863e9d53 Mon Sep 17 00:00:00 2001
From: Vincent Guittot <vincent.guittot@linaro.org>
Date: Wed, 29 Aug 2018 15:19:10 +0200
Subject: [PATCH] sched/numa: remove unused nr_running field
-
+Git-commit: 7477a3504e619768c9e972dafe2907e6b8ed9823
+Patch-mainline: v4.20-rc1
References: bnc#1101669 optimise numa balancing for fast migrate
-Patch-mainline: No, queued in subsystem maintainer tree
nr_running in struct numa_stats is not used anywhere in the code.
diff --git a/patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch b/patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch
index b1f79dcb3e..6fe0f86eed 100644
--- a/patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch
+++ b/patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch
@@ -1,7 +1,8 @@
From: Dmitry Safonov <dima@arista.com>
Date: Thu, 1 Nov 2018 00:24:48 +0000
Subject: tty: Don't block on IO when ldisc change is pending
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: c96cf923a98d1b094df9f0cf97a83e118817e31b
+Patch-mainline: v5.0-rc1
References: bnc#1105428
There might be situations where tty_ldisc_lock() has blocked, but there
diff --git a/patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch b/patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch
index ac0f33d9da..27a38ecc23 100644
--- a/patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch
+++ b/patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch
@@ -1,7 +1,8 @@
From: Dmitry Safonov <dima@arista.com>
Date: Thu, 1 Nov 2018 00:24:47 +0000
Subject: tty: Hold tty_ldisc_lock() during tty_reopen()
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: 83d817f41070c48bc3eb7ec18e43000a548fca5c
+Patch-mainline: v5.0-rc1
References: bnc#1105428
tty_ldisc_reinit() doesn't race with neither tty_ldisc_hangup()
diff --git a/patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch b/patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch
index b7f96cf5f2..325da9772f 100644
--- a/patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch
+++ b/patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch
@@ -1,7 +1,8 @@
From: Dmitry Safonov <dima@arista.com>
Date: Thu, 1 Nov 2018 00:24:49 +0000
Subject: tty: Simplify tty->count math in tty_reopen()
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: cf62a1a13749db0d32b5cdd800ea91a4087319de
+Patch-mainline: v5.0-rc1
References: bnc#1105428
As notted by Jiri, tty_ldisc_reinit() shouldn't rely on tty counter.
diff --git a/patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch b/patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch
index fd8e3ba344..a46a5793fb 100644
--- a/patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch
+++ b/patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch
@@ -1,7 +1,8 @@
From: Dmitry Safonov <dima@arista.com>
Date: Thu, 1 Nov 2018 00:24:51 +0000
Subject: tty/ldsem: Add lockdep asserts for ldisc_sem
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: 110b89282f658593a5a4a96a300d5aa51f1bf88f
+Patch-mainline: v5.0-rc1
References: bnc#1105428
Make sure under CONFIG_LOCKDEP that each change to line discipline
diff --git a/patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch b/patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch
index 6221c2c46f..fa6e0232dc 100644
--- a/patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch
+++ b/patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch
@@ -1,7 +1,8 @@
From: Peter Zijlstra <peterz@infradead.org>
Date: Thu, 1 Nov 2018 00:24:50 +0000
Subject: tty/ldsem: Convert to regular lockdep annotations
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: c18ad0cf9cb0792f448b911eb3b268a35cc6934c
+Patch-mainline: v5.0-rc1
References: bnc#1105428
For some reason ldsem has its own lockdep wrappers, make them go away.
diff --git a/patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch b/patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch
index 886d0a9fa8..a747febd05 100644
--- a/patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch
+++ b/patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch
@@ -1,7 +1,8 @@
From: Dmitry Safonov <dima@arista.com>
Date: Thu, 1 Nov 2018 00:24:52 +0000
Subject: tty/ldsem: Decrement wait_readers on timeouted down_read()
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: 2f588cee24caf01c1ac08fff90d67c6af555e7c7
+Patch-mainline: v5.0-rc1
References: bnc#1105428
It seems like when ldsem_down_read() fails with timeout, it misses
diff --git a/patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch b/patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch
index 6d272541a5..1f6364d033 100644
--- a/patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch
+++ b/patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch
@@ -1,7 +1,8 @@
From: Dmitry Safonov <dima@arista.com>
Date: Thu, 1 Nov 2018 00:24:46 +0000
Subject: tty/ldsem: Wake up readers after timed out down_write()
-Patch-mainline: Submitted on 2018/11/1
+Git-commit: 231f8fd0cca078bd4396dd7e380db813ac5736e2
+Patch-mainline: v5.0-rc1
References: bnc#1105428
ldsem_down_read() will sleep if there is pending writer in the queue.
diff --git a/series.conf b/series.conf
index 6e47d5711b..a023d5abd5 100644
--- a/series.conf
+++ b/series.conf
@@ -2959,8 +2959,10 @@
patches.suse/0001-efi-fb-Correct-PCI_STD_RESOURCE_END-usage.patch
patches.drivers/pci-correct-pci_std_resource_end-usage
patches.drm/drm-radeon-make-MacBook-Pro-d3_delay-quirk-more-gene
+ patches.arch/x86-PCI-Avoid-AMD-SB7xx-EHCI-USB-wakeup-defect.patch
patches.drivers/pci-cache-pri-and-pasid-bits-in-pci_dev
patches.drivers/pci-restore-pri-and-pasid-state-after-function-level-reset
+ patches.drivers/PCI-Mark-Intel-XXV710-NIC-INTx-masking-as-broken.patch
patches.drivers/PCI-Split-reset_notify-method-into-reset_prepare-and.patch
patches.drivers/pci-dwc-dra7xx-use-rw1c-for-irqstatus_msi-and-irqstatus_main
patches.suse/msft-hv-1398-PCI-hv-Fix-comment-formatting-and-use-proper-integer.patch
@@ -6528,10 +6530,13 @@
patches.drivers/pci-vmd-assign-vector-zero-to-all-bridges
patches.drivers/PCI-vmd-Free-up-IRQs-on-suspend-path.patch
patches.drivers/PCI-vmd-Remove-IRQ-affinity-so-we-can-allocate-more-.patch
+ patches.drivers/x86-PCI-Move-VMD-quirk-to-x86-fixups.patch
+ patches.arch/x86-PCI-Use-is_vmd-rather-than-relying-on-the-domain.patch
patches.drivers/pci-mark-broadcom-ht2100-root-port-extended-tags-as-broken
patches.drivers/PCI-shpchp-Enable-bridge-bus-mastering-if-MSI-is-ena
patches.drivers/pci-pciehp-report-power-fault-only-once-until-we-clear-it
patches.drivers/pci-mark-amd-stoney-gpu-ats-as-broken
+ patches.drivers/PCI-Add-ACS-quirk-for-APM-X-Gene-devices.patch
patches.suse/hmm-heterogeneous-memory-management-documentation.patch
patches.suse/mm-hmm-heterogeneous-memory-management-hmm-for-short.patch
patches.suse/mm-hmm-mirror-mirror-process-address-space-on-device-with-hmm-helpers.patch
@@ -6559,6 +6564,17 @@
patches.fixes/mm-sparse-c-fix-typo-in-online_mem_sections.patch
patches.fixes/mm-page_alloc-c-apply-gfp_allowed_mask-before-the-first-allocation-attempt.patch
patches.arch/treewide-make-nr_cpu_ids-unsigned.patch
+ patches.suse/0001-rbtree-cache-leftmost-node-internally.patch
+ patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch
+ patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch
+ patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch
+ patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch
+ patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch
+ patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch
+ patches.suse/0013-procfs-use-faster-rb_first_cached.patch
+ patches.suse/0014-fs-epoll-use-faster-rb_first_cached.patch
+ patches.suse/0015-mem-memcg-cache-rightmost-node.patch
+ patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch
patches.fixes/checkpatch-add-6-missing-types-to-list-types
patches.suse/0001-ipc-sem-drop-sem_checkid-helper.patch
patches.suse/0002-ipc-sem-play-nicer-with-large-nsops-allocations.patch
@@ -9332,6 +9348,7 @@
patches.drivers/PCI-Add-PCI-resource-type-mask-define
patches.drivers/PCI-Add-resizable-BAR-infrastructure
patches.drivers/PCI-Add-pci_resize_resource-for-resizing-BARs
+ patches.arch/x86-PCI-Enable-a-64bit-BAR-on-AMD-Family-15h-Models-.patch
patches.arch/PCI-Remove-reset-argument-from-pci_iov_-add-remove-_.patch
patches.drivers/PCI-Create-SR-IOV-virtfn-physfn-links-before-attachi
patches.drivers/0005-PCI-Set-Cavium-ACS-capability-quirk-flags-to-assert-.patch
@@ -10379,6 +10396,7 @@
patches.fixes/mm-madvise.c-fix-madvise-infinite-loop-under-special.patch
patches.fixes/kmemleak-add-scheduling-point-to-kmemleak_scan.patch
patches.fixes/fs-fat-inode.c-fix-sb_rdonly-change.patch
+ patches.fixes/0001-autofs-revert-autofs-take-more-care-to-not-update-la.patch
patches.fixes/mm-hugetlb-fix-NULL-pointer-dereference-on-5-level-p.patch
patches.fixes/fs-hugetlbfs-inode-c-change-put_page-unlock_page-order-in-hugetlbfs_fallocate.patch
patches.arch/s390-zcrypt-fix-wrong-comparison-leading-to-strange-load-balancing.patch
@@ -10703,6 +10721,8 @@
patches.fixes/mm-frame_vector.c-release-a-semaphore-in-get_vaddr_f.patch
patches.fixes/0001-kernel-make-groups_sort-calling-a-responsibility-gro.patch
patches.fixes/mm-oom_reaper-fix-memory-corruption.patch
+ patches.arch/x86-PCI-Fix-infinite-loop-in-search-for-64bit-BAR-pl.patch
+ patches.arch/x86-PCI-Only-enable-a-64bit-BAR-on-single-socket-AMD.patch
patches.suse/sched-rt-Do-not-pull-from-current-CPU-if-only-one-CPU-to-pull.patch
patches.arch/x86-smpboot-do-not-use-smp_num_siblings-in-_max_logical_packages-calculation.patch
patches.arch/x86-boot-compressed-64-print-error-if-5-level-paging-is-not-supported
@@ -11202,6 +11222,8 @@
patches.fixes/x86-microcode-intel-extend-bdw-late-loading-with-a-revision-check.patch
patches.fixes/kdump-write-correct-address-of-mem_section-into-vmco.patch
patches.suse/tools-objtool-Makefile-don-t-assume-sync-check.sh-is.patch
+ patches.arch/x86-PCI-Add-pci-big_root_window-option-for-AMD-64-bi.patch
+ patches.arch/x86-PCI-Move-and-shrink-AMD-64-bit-window-to-avoid-c.patch
patches.fixes/Bluetooth-Prevent-stack-info-leak-from-the-EFS-element.patch
patches.fixes/0001-usbip-fix-vudc_rx-harden-CMD_SUBMIT-path-to-handle-m.patch
patches.fixes/0001-usbip-remove-kernel-addresses-from-usb-device-and-ur.patch
@@ -11383,6 +11405,7 @@
patches.fixes/gso-validate-gso_type-in-GSO-handlers.patch
patches.suse/net-igmp-fix-source-address-check-for-IGMPv3-reports.patch
patches.drivers/be2net-restore-properly-promisc-mode-after-queues-re.patch
+ patches.arch/x86-PCI-Enable-AMD-64-bit-window-on-resume.patch
patches.suse/x86-ftrace-Fix-ORC-unwinding-from-ftrace-handlers.patch
patches.suse/0001-ftrace-orc-x86-Handle-ftrace-dynamically-allocated-t.patch
patches.suse/0002-tracing-Update-stack-trace-skipping-for-ORC-unwinder.patch
@@ -13090,6 +13113,7 @@
patches.drivers/PCI-pciehp-Assume-NoCompl-for-Thunderbolt-ports
patches.drivers/PCI-Disable-MSI-for-HiSilicon-Hip06-Hip07-only-in-Ro
patches.drivers/vgacon-Set-VGA-struct-resource-types
+ patches.drivers/PCI-Mark-Ceton-InfiniTV4-INTx-masking-as-broken.patch
patches.drivers/PCI-Add-function-1-DMA-alias-quirk-for-Marvell-9128
patches.drivers/PCI-iproc-Fix-NULL-pointer-dereference-for-BCMA
patches.drivers/PCI-exynos-Fix-a-potential-init_clk_resources-NULL-p
@@ -14237,11 +14261,13 @@
patches.drivers/ALSA-aloop-Fix-access-to-not-yet-ready-substream-via
patches.suse/msft-hv-1609-Drivers-hv-vmbus-Fix-ring-buffer-signaling.patch
patches.drivers/iio-st_pressure-st_accel-pass-correct-platform-data-
+ patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch
patches.suse/0001-mtd-nand-fsl_ifc-Fix-eccstat-array-overflow-for-IFC-.patch
patches.suse/0001-tracing-probeevent-Fix-to-support-minus-offset-from-.patch
patches.drivers/tty-vt-fix-up-tabstops-properly
patches.arch/perf-x86-intel-don-t-accidentally-clear-high-bits-in-bdw_limit_period
patches.arch/perf-x86-intel-uncore-fix-multi-domain-pci-cha-enumeration-bug-on-skylake-servers.patch
+ patches.suse/posix-timers-Protect-posix-clock-array-access-agains.patch
patches.suse/x86-build-64-Force-the-linker-to-use-2MB-page-size.patch
patches.arch/x86-boot-64-verify-alignment-of-the-load-segment
patches.fixes/x86-vsyscall-64-use-proper-accessor-to-update-p4d-entry.patch
@@ -15100,6 +15126,7 @@
patches.drivers/pci-dpc-do-not-enable-dpc-if-aer-control-is-not-allowed-by-the-bios
patches.drivers/0012-PCI-Probe-for-device-reset-support-during-enumeratio.patch
patches.drivers/0013-PCI-Remove-redundant-probes-for-device-reset-support.patch
+ patches.drivers/PCI-Add-ACS-quirk-for-Ampere-root-ports.patch
patches.drivers/PCI-Add-function-1-DMA-alias-quirk-for-Marvell-88SE9
patches.drivers/PCI-altera-Fix-bool-initialization-in-tlp_read_packe
patches.drivers/PCI-endpoint-Fix-kernel-panic-after-put_device
@@ -15108,6 +15135,16 @@
patches.suse/msft-hv-1628-PCI-hv-Fix-a-comment-typo-in-_hv_pcifront_read_confi.patch
patches.suse/msft-hv-1629-PCI-hv-Remove-the-bogus-test-in-hv_eject_device_work.patch
patches.suse/msft-hv-1630-PCI-hv-Only-queue-new-work-items-in-hv_pci_devices_p.patch
+ patches.suse/fw_cfg-fix-sparse-warnings-in-fw_cfg_sel_endianness.patch
+ patches.suse/fw_cfg-fix-sparse-warnings-with-fw_cfg_file.patch
+ patches.suse/fw_cfg-fix-sparse-warning-reading-FW_CFG_ID.patch
+ patches.suse/fw_cfg-fix-sparse-warnings-around-FW_CFG_FILE_DIR-re.patch
+ patches.suse/fw_cfg-remove-inline-from-fw_cfg_read_blob.patch
+ patches.suse/fw_cfg-handle-fw_cfg_read_blob-error.patch
+ patches.suse/fw_cfg-add-a-public-uapi-header.patch
+ patches.suse/fw_cfg-add-DMA-register.patch
+ patches.suse/crash-export-paddr_vmcoreinfo_note.patch
+ patches.suse/fw_cfg-write-vmcoreinfo-details.patch
patches.fixes/0001-fscache-Pass-the-correct-cancelled-indications-to-fs.patch
patches.fixes/fscache-Fix-hanging-wait-on-page-discarded-by-writeb.patch
patches.arch/powerpc-mm-slice-Remove-intermediate-bitmap-copy.patch
@@ -16767,6 +16804,7 @@
patches.drivers/PCI-Add-ACS-quirk-for-Intel-300-series
patches.suse/msft-hv-1673-PCI-hv-Make-sure-the-bus-domain-is-really-unique.patch
patches.drivers/pci-hv-do-not-wait-forever-on-a-device-that-has-disappeared
+ patches.arch/x86-PCI-Add-additional-VMD-device-root-ports-to-VMD-.patch
patches.drivers/RDMA-qedr-fix-spelling-mistake-failes-fails.patch
patches.drivers/RDMA-hns-Drop-local-zgid-in-favor-of-core-defined-va.patch
patches.drivers/IB-hfi1-Prevent-LNI-hang-when-LCB-can-t-obtain-lanes.patch
@@ -17737,6 +17775,11 @@
patches.arch/kprobes-x86-fix-p-uses-in-error-messages
patches.fixes/posix-timers-Sanitize-overrun-handling.patch
patches.fixes/alarmtimer-Prevent-overflow-for-relative-nanosleep.patch
+ patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch
+ patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch
+ patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch
+ patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch
+ patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch
patches.arch/x86-entry-64-add-two-more-instruction-suffixes
patches.arch/x86-numa_emulation-fix-emulated-to-physical-node-mapping
patches.arch/x86-platform-uv-mark-memblock-related-init-code-and-data-correctly
@@ -18190,9 +18233,15 @@
patches.drivers/PCI-hotplug-Don-t-leak-pci_slot-on-registration-fail
patches.drivers/PCI-pciehp-Fix-use-after-free-on-unplug
patches.fixes/PCI-pciehp-Fix-unprotected-list-iteration-in-IRQ-han.patch
+ patches.drivers/PCI-Mark-fall-through-switch-cases-before-enabling-W.patch
+ patches.drivers/PCI-Convert-device-specific-ACS-quirks-from-NULL-ter.patch
patches.drivers/PCI-Restore-resized-BAR-state-on-resume
patches.drivers/PCI-Cleanup-PCI_REBAR_CTRL_BAR_SHIFT-handling
+ patches.drivers/PCI-Export-pcie_has_flr.patch
+ patches.drivers/PCI-Disable-Samsung-SM961-PM961-NVMe-before-FLR.patch
+ patches.drivers/PCI-Delay-after-FLR-of-Intel-DC-P3700-NVMe.patch
patches.fixes/pci-aardvark-size-bridges-before-resources-allocation
+ patches.drivers/PCI-iproc-Activate-PAXC-bridge-quirk-for-more-device.patch
patches.drivers/PCI-mvebu-Fix-I-O-space-end-address-calculation.patch
patches.drivers/pci-vmd-white-list-for-fast-interrupt-handlers
patches.fixes/Replace-magic-for-trusting-the-secondary-keyring-wit.patch
@@ -18998,6 +19047,7 @@
patches.drivers/pinctrl-at91-pio4-fix-has_config-check-in-atmel_pctl.patch
patches.drivers/pinctrl-qcom-spmi-mpp-Fix-err-handling-of-pmic_mpp_s.patch
patches.drivers/gpio-davinci-remove-unused-member-of-davinci_gpio_controller.patch
+ patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch
patches.drivers/ipmi-Fix-timer-race-with-module-unload.patch
patches.drivers/pcmcia-Implement-CLKRUN-protocol-disabling-for-Ricoh.patch
patches.arch/x86-hibernate-fix-nosave_regions-setup-for-hibernation
@@ -19006,6 +19056,8 @@
patches.drivers/ACPI-processor-Fix-the-return-value-of-acpi_processo.patch
patches.drivers/mailbox-PCC-handle-parse-error.patch
patches.fixes/0001-xen-swiotlb-use-actually-allocated-size-on-check-phy.patch
+ patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch
+ patches.suse/sched-numa-remove-unused-nr_running-field.patch
patches.arch/x86-corruption-check-fix-panic-in-memory_corruption_check-when-boot-option-without-value-is-provided
patches.fixes/0001-x86-xen-Fix-boot-loader-version-reported-for-PVH-gue.patch
patches.arch/x86-kexec-correct-kexec_backup_src_end-off-by-one-error.patch
@@ -19113,6 +19165,7 @@
patches.drivers/PCI-ASPM-Do-not-initialize-link-state-when-aspm_disa.patch
patches.drivers/PCI-Add-Device-IDs-for-Intel-GPU-spurious-interrupt-.patch
patches.drivers/PCI-MSI-Warn-and-return-error-if-driver-enables-MSI-.patch
+ patches.arch/x86-PCI-Apply-VMD-s-AERSID-fixup-generically.patch
patches.drivers/pci-iproc-remove-paxc-slot-check-to-allow-vf-support
patches.drivers/pci-vmd-detach-resources-after-stopping-root-bus
patches.drivers/scsi-qla2xxx-Fix-process-response-queue-for-ISP26XX-.patch
@@ -19183,6 +19236,11 @@
patches.fixes/scsi-core-Allow-state-transitions-from-OFFLINE-to-BL.patch
patches.fixes/scsi-libfc-check-fc_frame_payload_get-return-value-f.patch
patches.fixes/scsi-libfc-retry-PRLI-if-we-cannot-analyse-the-paylo.patch
+ patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch
+ patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch
+ patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch
+ patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch
+ patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch
patches.drivers/ALSA-hda-fix-unused-variable-warning.patch
patches.drivers/ALSA-usb-audio-update-quirk-for-B-W-PX-to-remove-mic.patch
patches.drivers/ALSA-hda-Add-quirk-for-ASUS-G751-laptop.patch
@@ -19430,6 +19488,7 @@
patches.fixes/fuse-fix-possibly-missed-wake-up-after-abort.patch
patches.fixes/fuse-fix-use-after-free-in-fuse_direct_IO.patch
patches.drivers/floppy-fix-race-condition-in-__floppy_read_block_0.patch
+ patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch
patches.drm/drm-dp_mst-Check-if-primary-mstb-is-null.patch
patches.drm/drm-i915-execlists-Force-write-serialisation-into-co.patch
patches.fixes/crypto-simd-correctly-take-reqsize-of-wrapped-skciph.patch
@@ -19513,6 +19572,7 @@
patches.drivers/hwmon-ina2xx-Fix-current-value-calculation.patch
patches.drivers/hwmon-w83795-temp4_type-has-writable-permission.patch
patches.arch/kvm-vmx-re-add-ple_gap-module-parameter
+ patches.arch/kvm-x86-fix-scan-ioapic-use-before-initialization
patches.arch/kvm-x86-fix-kernel-info-leak-in-kvm_hc_clock_pairing-hypercall
patches.fixes/kvm-svm-ensure-an-ibpb-on-all-affected-cpus-when-freeing-a-vmcb.patch
patches.suse/btrfs-always-try-all-copies-when-reading-extent-buffers.patch
@@ -19637,6 +19697,7 @@
patches.drm/0001-drm-amdgpu-gmc8-update-MC-firmware-for-polaris.patch
patches.drivers/i2c-axxia-properly-handle-master-timeout.patch
patches.drivers/i2c-scmi-Fix-probe-error-on-devices-with-an-empty-SM.patch
+ patches.fixes/nvme-validate-controller-state-before-rescheduling-k.patch
patches.drivers/Revert-PCI-ASPM-Do-not-initialize-link-state-when-as.patch
patches.fixes/vhost-vsock-fix-use-after-free-in-network-stack-call.patch
patches.fixes/splice-dont-read-more-than-available-pipe-space.patch
@@ -19725,6 +19786,7 @@
patches.drivers/spi-bcm2835-Unbreak-the-build-of-esoteric-configs.patch
patches.drivers/device-property-fix-fwnode_graph_get_next_endpoint-d.patch
patches.drivers/platform-msi-Free-descriptors-in-platform_msi_domain.patch
+ patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch
patches.arch/powerpc-pkeys-Fix-handling-of-pkey-state-across-fork.patch
patches.drivers/can-flexcan-flexcan_irq-fix-indention.patch
patches.drivers/wlcore-Fix-the-return-value-in-case-of-error-in-wlco.patch
@@ -19740,6 +19802,7 @@
patches.fixes/gfs2-Fix-loop-in-gfs2_rbm_find.patch
patches.suse/0001-Btrfs-fix-fsync-of-files-with-multiple-hard-links-in.patch
patches.suse/btrfs-fix-error-handling-in-btrfs_cleanup_ordered_extents.patch
+ patches.suse/btrfs-run-delayed-items-before-dropping-the-snapshot.patch
patches.fixes/xfs-Align-compat-attrlist_by_handle-with-native-impl.patch
patches.fixes/ext4-fix-possible-use-after-free-in-ext4_quota_enabl.patch
patches.fixes/ext4-missing-unlock-put_page-in-ext4_try_to_write_in.patch
@@ -19776,17 +19839,38 @@
patches.drivers/Revert-scsi-lpfc-ls_rjt-erroneus-FLOGIs.patch
patches.drivers/scsi-lpfc-Enable-Management-features-for-IF_TYPE-6.patch
patches.drivers/mmc-bcm2835-reset-host-on-timeout.patch
+ patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch
+ patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch
+ patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch
+ patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch
+ patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch
+ patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
+ patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch
patches.drivers/gpiolib-Fix-return-value-of-gpio_to_desc-stub-if-GPI.patch
patches.drivers/power-supply-olpc_battery-correct-the-temperature-un.patch
+ patches.drivers/usb-dwc2-host-use-hrtimer-for-nak-retries.patch
+ patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch
+ patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch
+ patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch
+ patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch
+ patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch
+ patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch
+ patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch
patches.drivers/staging-bcm2835-camera-Abort-probe-if-there-is-no-ca.patch
patches.drivers/staging-wilc1000-fix-missing-read_write-setting-when.patch
patches.drivers/intel_th-msu-Fix-an-off-by-one-in-attribute-store.patch
patches.suse/sched-fair-Fix-infinite-loop-in-update_blocked_averages-by-reverting-a9e7f6544b9c.patch
patches.drivers/rtc-m41t80-Correct-alarm-month-range-with-RTC-reads.patch
+ patches.drivers/revert-iommu-io-pgtable-arm-check-for-v7s-incapable-systems
+ patches.drivers/iommu-vt-d-handle-domain-agaw-being-less-than-iommu-agaw
+ patches.drivers/iommu-amd-fix-amd_iommu-force_isolation
+ patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch
+ patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch
patches.drivers/Input-nomadik-ske-keypad-fix-a-loop-timeout-test.patch
patches.drivers/ALSA-hda-realtek-Enable-the-headset-mic-auto-detecti.patch
patches.drivers/ALSA-hda-tegra-clear-pending-irq-handlers.patch
patches.fixes/xfs-xfs_buf-drop-useless-LIST_HEAD.patch
+ patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch
patches.fixes/0001-fbdev-fbmem-behave-better-with-small-rotated-display.patch
patches.fixes/0001-fbdev-fbcon-Fix-unregister-crash-when-more-than-one-.patch
@@ -19800,14 +19884,8 @@
# out-of-tree patches
patches.fixes/ext4-close-race-between-direct-IO-and-ext4_break_layouts.patch
- patches.suse/tty-ldsem-Wake-up-readers-after-timed-out-down_write.patch
- patches.suse/tty-Hold-tty_ldisc_lock-during-tty_reopen.patch
- patches.suse/tty-Don-t-block-on-IO-when-ldisc-change-is-pending.patch
- patches.suse/tty-Simplify-tty-count-math-in-tty_reopen.patch
- patches.suse/tty-ldsem-Convert-to-regular-lockdep-annotations.patch
- patches.suse/tty-ldsem-Add-lockdep-asserts-for-ldisc_sem.patch
- patches.suse/tty-ldsem-Decrement-wait_readers-on-timeouted-down_r.patch
patches.arch/powerpc-pseries-Track-LMB-nid-instead-of-using-devic.patch
+ patches.fixes/nvme-multipath-zero-out-ANA-log-buffer.patch
########################################################
# end of sorted patches
@@ -19878,7 +19956,6 @@
########################################################
patches.suse/setuid-dumpable-wrongdir
patches.suse/sched-fair-Enable-SIS_AVG_CPU-by-default.patch
- patches.suse/posix-timers-Protect-posix-clock-array-access-agains.patch
patches.suse/0001-x86-speculation-Add-basic-IBRS-support-infrastructur.patch
patches.suse/0002-x86-speculation-Add-inlines-to-control-Indirect-Bran.patch
@@ -19904,8 +19981,6 @@
# This patch used to be of benefit on older hardware with an earlier
+mgorman patches.suse/sched-Further-improve-spurious-CPU_IDLE-active-migrations.patch
- patches.fixes/0001-x86-speculation-l1tf-Drop-the-swap-storage-limit-res.patch
-
########################################################
# x86_64/4096CPUS - from SGI
########################################################
@@ -19939,24 +20014,12 @@
patches.fixes/d-lookup-fairness.fix
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
# bnc#1102831
- patches.suse/sched-numa-remove-unused-code-from-update_numa_stats.patch
- patches.suse/sched-numa-remove-unused-nr_running-field.patch
patches.kabi/mm-numa-Remove-rate-limiting-of-automatic-numa-balancing-migration-kabi.patch
patches.kabi/sched-numa-Stop-multiple-tasks-from-moving-to-the-CPU-at-the-same-time-kabi.patch
patches.kabi/sched-numa-Pass-destination-CPU-as-a-parameter-to-migrate_task_rq-kabi.patch
- patches.fixes/0001-mm-print-more-information-about-mapping-in-__dump_pa.patch
- patches.fixes/0002-mm-lower-the-printk-loglevel-for-__dump_page-message.patch
- patches.fixes/0003-mm-memory_hotplug-drop-pointless-block-alignment-che.patch
- patches.fixes/0004-mm-memory_hotplug-print-reason-for-the-offlining-fai.patch
- patches.fixes/0005-mm-memory_hotplug-be-more-verbose-for-memory-offline.patch
-
- patches.fixes/mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
-
- patches.fixes/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be.patch
patches.kabi/0001-hwpoison-memory_hotplug-allow-hwpoisoned-pages-to-be-kabi.patch
########################################################
@@ -19967,22 +20030,10 @@
patches.suse/0002-ipc-sem-introduce-semctl-SEM_STAT_ANY.patch
patches.suse/0003-ipc-msg-introduce-msgctl-MSG_STAT_ANY.patch
patches.suse/kbd-ignore-gfx.patch
- patches.fixes/0001-staging-ncpfs-memory-corruption-in-ncp_read_kernel.patch
########################################################
# general lib/ optimizations
########################################################
- patches.suse/0001-rbtree-cache-leftmost-node-internally.patch
- patches.suse/0002-rbtree-optimize-root-check-during-rebalancing-loop.patch
- patches.suse/0003-rbtree-add-some-additional-comments-for-rebalancing-.patch
- patches.suse/0008-sched-deadline-replace-earliest-dl-and-rq-leftmost-c.patch
- patches.suse/0009-locking-rtmutex-replace-top-waiter-and-pi_waiters-le.patch
- patches.suse/0010-block-cfq-replace-cfq_rb_root-leftmost-caching.patch
- patches.suse/0012-lib-interval-tree-correct-comment-wrt-generic-flavor.patch
- patches.suse/0013-procfs-use-faster-rb_first_cached.patch
- patches.suse/0014-fs-epoll-use-faster-rb_first_cached.patch
- patches.suse/0015-mem-memcg-cache-rightmost-node.patch
- patches.suse/0016-block-cfq-cache-rightmost-rb_node.patch
########################################################
# CPUFREQ
@@ -20075,21 +20126,6 @@
patches.drivers/0001-ahci-thunderx2-stop-engine-fix-update.patch
patches.drivers/0001-ahci-thunderx2-update-stop-engine-errata-delay-value.patch
- patches.suse/fw_cfg-fix-sparse-warnings-in-fw_cfg_sel_endianness.patch
- patches.suse/fw_cfg-fix-sparse-warnings-with-fw_cfg_file.patch
- patches.suse/fw_cfg-fix-sparse-warning-reading-FW_CFG_ID.patch
- patches.suse/fw_cfg-fix-sparse-warnings-around-FW_CFG_FILE_DIR-re.patch
- patches.suse/fw_cfg-remove-inline-from-fw_cfg_read_blob.patch
- patches.suse/fw_cfg-handle-fw_cfg_read_blob-error.patch
- patches.suse/fw_cfg-add-a-public-uapi-header.patch
- patches.suse/fw_cfg-add-DMA-register.patch
- patches.suse/crash-export-paddr_vmcoreinfo_note.patch
- patches.suse/fw_cfg-write-vmcoreinfo-details.patch
-
- patches.drivers/0001-ipmi-ssif-Add-support-for-multi-part-transmit-messag.patch
-
- patches.drivers/thermal-bcm2835-enable-hwmon-explicitly.patch
-
########################################################
# Filesystem
########################################################
@@ -20139,8 +20175,6 @@
patches.fixes/0001-NFSv4-handle-EINVAL-from-EXCHANGE_ID-better.patch
patches.kabi/0001-NFS-Ensure-we-commit-after-writeback-is-complete.kabi
- patches.fixes/sunrpc-use-SVC_NET-in-svcauth_gss_-functions.patch
- patches.fixes/sunrpc-use-after-free-in-svc_process_common.patch
patches.kabi/sunrpc-use-after-free-in-svc_process_common.patch
########################################################
@@ -20175,14 +20209,7 @@
patches.drivers/qla2xxx-Enable-T10-DIF-with-FC-NVMe-enabled.patch
- patches.drivers/0001-target-use-ISCSI_IQN_LEN-in-iscsi_target_stat.patch
- patches.drivers/0002-target-log-Data-Out-timeouts-as-errors.patch
- patches.drivers/0003-target-log-NOP-ping-timeouts-as-errors.patch
- patches.drivers/0004-target-split-out-helper-for-cxn-timeout-error-stashi.patch
- patches.drivers/0005-target-stash-sess_err_stats-on-Data-Out-timeout.patch
- patches.fixes/target-se_dev_attrib.emulate_pr-ABI-stability.patch
-
- patches.fixes/block-copy-ioprio-in-__bio_clone_fast.patch
+ patches.kabi/target-se_dev_attrib.emulate_pr-ABI-stability.patch
########################################################
# DRM/Video
@@ -20408,12 +20435,7 @@
########################################################
patches.suse/crasher.patch
- patches.suse/0001-x86-stacktrace-Do-not-unwind-after-user-regs.patch
- patches.suse/0002-x86-stacktrace-Remove-STACKTRACE_DUMP_ONCE.patch
- patches.suse/0003-x86-stacktrace-Clarify-the-reliable-success-paths.patch
- patches.suse/0004-x86-stacktrace-Do-not-fail-for-ORC-with-regs-on-stac.patch
+kabi patches.suse/0005-x86-unwind-orc-Detect-the-end-of-the-stack.patch
- patches.suse/0006-x86-stacktrace-Enable-HAVE_RELIABLE_STACKTRACE-for-t.patch
patches.suse/x86-cpu_entry_area-Map-also-trace_idt_table.patch